summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/ptest_wrapper.sh16
-rw-r--r--dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/run-ptest42
-rw-r--r--dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc_0.25.0.bb13
3 files changed, 70 insertions, 1 deletions
diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/ptest_wrapper.sh b/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/ptest_wrapper.sh
new file mode 100644
index 0000000..92d0156
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/ptest_wrapper.sh
@@ -0,0 +1,16 @@
1#!/bin/sh
2# Simple OE specific wrapper for bcc python tests
3
4name=$1
5kind=$2
6cmd=$3
7shift 3
8
9case $kind in
10 simple|sudo)
11 $cmd "$@"
12 ;;
13 *)
14 echo "Invalid kind $kind of test $name"
15 exit 1
16esac
diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/run-ptest b/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/run-ptest
new file mode 100644
index 0000000..a27f697
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc/run-ptest
@@ -0,0 +1,42 @@
1#!/bin/sh
2
3cd tests || exit 1
4
5PASS_CNT=0
6FAIL_CNT=0
7FAILED=""
8
9print_test_result() {
10 if [ $? -eq 0 ]; then
11 echo PASS: "$1"
12 PASS_CNT=$((PASS_CNT + 1))
13 else
14 echo FAIL: "$1"
15 FAIL_CNT=$((FAIL_CNT + 1))
16 FAILED="$FAILED $1;"
17 fi
18}
19
20# Run CC tests, set IFS as test names have spaces
21IFS=$(printf '\n\t')
22for test_name in $(./cc/test_libbcc_no_libbpf --list-test-names-only); do
23 ./cc/test_libbcc_no_libbpf "$test_name" > /dev/null 2>&1
24 print_test_result "cc $test_name"
25done
26unset IFS
27
28# Run python tests, skip namespace tests as they currently don't work
29if cmake -DCMAKE_TESTING_ENABLED=ON -DTEST_WRAPPER="$(pwd)/ptest_wrapper.sh" python > /dev/null 2>&1; then
30 for test_name in $(awk -F '[( ]' '/^add_test/ && !/namespace/ {print $2}' CTestTestfile.cmake); do
31 ctest -Q -R "$test_name"
32 print_test_result "python $test_name"
33 done
34else
35 print_test_result "cmake error, couldn't start python tests"
36fi
37
38echo "#### bcc tests summary ####"
39echo "# TOTAL: $((PASS_CNT + FAIL_CNT))"
40echo "# PASS: $PASS_CNT"
41echo "# FAIL: $FAIL_CNT ($FAILED)"
42echo "###########################"
diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc_0.25.0.bb b/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc_0.25.0.bb
index 31ef5c2..cdacbb2 100644
--- a/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc_0.25.0.bb
+++ b/dynamic-layers/openembedded-layer/recipes-devtools/bcc/bcc_0.25.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/iovisor/bcc"
3LICENSE = "Apache-2.0" 3LICENSE = "Apache-2.0"
4LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e3fc50a88d0a364313df4b21ef20c29e" 4LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e3fc50a88d0a364313df4b21ef20c29e"
5 5
6inherit cmake python3native manpages 6inherit cmake python3native manpages ptest
7 7
8DEPENDS += "bison-native \ 8DEPENDS += "bison-native \
9 flex-native \ 9 flex-native \
@@ -20,12 +20,15 @@ LUAJIT:powerpc64 = ""
20LUAJIT:riscv64 = "" 20LUAJIT:riscv64 = ""
21 21
22RDEPENDS:${PN} += "bash python3 python3-core python3-setuptools xz" 22RDEPENDS:${PN} += "bash python3 python3-core python3-setuptools xz"
23RDEPENDS:${PN}-ptest = "cmake python3 python3-distutils python3-netaddr python3-pyroute2"
23 24
24SRC_URI = "gitsm://github.com/iovisor/bcc;branch=master;protocol=https \ 25SRC_URI = "gitsm://github.com/iovisor/bcc;branch=master;protocol=https \
25 file://0001-python-CMakeLists.txt-Remove-check-for-host-etc-debi.patch \ 26 file://0001-python-CMakeLists.txt-Remove-check-for-host-etc-debi.patch \
26 file://0001-tools-trace.py-Fix-failing-to-exit.patch \ 27 file://0001-tools-trace.py-Fix-failing-to-exit.patch \
27 file://0001-CMakeLists.txt-override-the-PY_CMD_ESCAPED.patch \ 28 file://0001-CMakeLists.txt-override-the-PY_CMD_ESCAPED.patch \
28 file://0001-Vendor-just-enough-extra-headers-to-allow-libbpf-to-.patch \ 29 file://0001-Vendor-just-enough-extra-headers-to-allow-libbpf-to-.patch \
30 file://run-ptest \
31 file://ptest_wrapper.sh \
29 " 32 "
30 33
31SRCREV = "711f03024d776d174874b1f833dac0597f22a49a" 34SRCREV = "711f03024d776d174874b1f833dac0597f22a49a"
@@ -54,6 +57,14 @@ do_install:append() {
54 -i $(find ${D}${datadir}/${PN} -type f) 57 -i $(find ${D}${datadir}/${PN} -type f)
55} 58}
56 59
60do_install_ptest() {
61 install -d ${D}${PTEST_PATH}/tests/cc
62 install ${B}/tests/cc/test_libbcc_no_libbpf ${B}/tests/cc/libusdt_test_lib.so ${D}${PTEST_PATH}/tests/cc
63 cp -rf ${S}/tests/python ${D}${PTEST_PATH}/tests/python
64 install ${WORKDIR}/ptest_wrapper.sh ${D}${PTEST_PATH}/tests
65 install ${S}/examples/networking/simulation.py ${D}${PTEST_PATH}/tests/python
66}
67
57FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}" 68FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}"
58FILES:${PN}-doc += "${datadir}/${PN}/man" 69FILES:${PN}-doc += "${datadir}/${PN}/man"
59 70