--- /dev/null
+#!/bin/sh
+
+EXPECT_FAIL=1
+EXPECT_PASS=0
+
+cd tests
+
+for t in uns_test psx_test libcap_launch_test cap_test exploit noexploit; do
+ output=$("./$t" 2>&1 )
+ status=$?
+
+ expected="$EXPECT_PASS"
+
+ if [ $t = 'exploit' ]; then
+ expected="$EXPECT_FAIL"
+ fi
+
+ if [ "$status" -eq "$expected" ]; then
+ echo "PASS: $t"
+ else
+ echo "FAIL: $t"
+ echo "$output"
+ fi
+done
+
"
DEPENDS = "hostperl-runtime-native gperf-native"
+RDEPENDS:${PN}-ptest += "bash"
SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz"
SRC_URI:append:class-nativesdk = " \
file://0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch \
"
+SRC_URI:append = " \
+ file://run-ptest \
+ "
SRC_URI[sha256sum] = "0d621e562fd932ccf67b9660fb018e468a683d7b827541df27813228c996bb11"
UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/"
-inherit lib_package
+inherit lib_package ptest
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam"
fi
}
+LIBCAP_PTEST_TESTS = " \
+ uns_test \
+ psx_test \
+ libcap_psx_test \
+ noop \
+ libcap_launch_test \
+ exploit \
+ noexploit \
+"
+
+do_compile_ptest() {
+ oe_runmake -C tests ${LIBCAP_PTEST_TESTS} \
+ AR="${AR}" \
+ CC="${CC}" \
+ RANLIB="${RANLIB}" \
+ OBJCOPY="${OBJCOPY}"
+ oe_runmake -C libcap cap_test \
+ AR="${AR}" \
+ CC="${CC}" \
+ RANLIB="${RANLIB}" \
+ OBJCOPY="${OBJCOPY}"
+ oe_runmake -C progs tcapsh-static \
+ AR="${AR}" \
+ RANLIB="${RANLIB}" \
+ OBJCOPY="${OBJCOPY}" \
+ CC="${CC}"
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests ${D}${PTEST_PATH}/progs
+
+ for f in ${LIBCAP_PTEST_TESTS}; do
+ install -m 0755 ${B}/tests/${f} ${D}${PTEST_PATH}/tests
+ done
+ install -m 0755 ${B}/libcap/cap_test ${D}${PTEST_PATH}/tests
+ install -m 0755 ${B}/progs/tcapsh-static ${D}${PTEST_PATH}/progs
+}
+
# pam files
FILES:${PN} += "${base_libdir}/security/*.so"