#!/bin/sh
set -e

export AUTOPKGTEST_TMP=${AUTOPKGTEST_TMP:-/tmp/adt-libbpfcc-dev-smoke}
mkdir -p "$AUTOPKGTEST_TMP"

failed=0

check() {
    if [ $1 -eq 0 ]; then
        echo "  PASS: $2"
    else
        echo "  FAIL: $2 (exit $1)"
        failed=$((failed + 1))
    fi
}

echo "bpfcc autopkgtest — libbpfcc-dev smoke test"
echo "============================================"

# 1. Headers exist
if [ -d /usr/include/bcc ]; then
    echo "  PASS: /usr/include/bcc exists"
    # Check for at least one header
    if find /usr/include/bcc -type f -name "*.h" 2>/dev/null | head -1 | grep -q .; then
        echo "  PASS: bcc headers found"
    else
        echo "  SKIP: no bcc headers found (may be empty)"
    fi
else
    echo "  SKIP: /usr/include/bcc not found (dev package may not be installed)"
fi

# 2. pkg-config file exists
PC_FILE=$(find /usr/lib -name "libbcc.pc" -type f 2>/dev/null | head -1)
if [ -n "$PC_FILE" ] && [ -f "$PC_FILE" ]; then
    echo "  PASS: pkg-config file found at $PC_FILE"
else
    echo "  SKIP: libbcc.pc not found (dev package may not be installed)"
fi

# 3. pkg-config cflags
if command -v pkg-config >/dev/null 2>&1; then
    if pkg-config --exists libbcc 2>/dev/null; then
        CFLAGS=$(pkg-config --cflags libbcc 2>/dev/null || true)
        if [ -n "$CFLAGS" ]; then
            echo "  PASS: pkg-config --cflags libbcc returns non-empty"
        else
            echo "  SKIP: pkg-config --cflags libbcc returns empty"
        fi
        # Check modversion
        pkg-config --modversion libbcc >/dev/null 2>&1
        check $? "pkg-config --modversion libbcc"
    else
        echo "  SKIP: pkg-config libbcc not found"
    fi
else
    echo "  SKIP: pkg-config not available"
fi

# 4. Development libraries
LIB_STATIC=$(find /usr/lib -name "libbcc*.a" -type f 2>/dev/null | head -1)
if [ -n "$LIB_STATIC" ]; then
    echo "  PASS: static library found at $LIB_STATIC"
else
    echo "  SKIP: static library not found (may not be installed)"
fi

echo "============================================"
if [ $failed -gt 0 ]; then
    echo "FAILED: $failed test(s)"
    exit 1
else
    echo "ALL SMOKE TESTS PASSED"
fi

echo "libbpfcc-dev-smoke: PASS"
