cjson: Add ptest

cjson use pure CMake test framework named CTest.
CMake generate CTestTestfile.cmake containing fully defined path.
This path need to be altered on install step to match the ptest directory.

The json_patch_tests doesn't works because of file access and is skip.

Signed-off-by: David Pierret <david.pierret@smile.fr>
Reviewed-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
David Pierret 2023-10-16 14:37:25 +02:00 committed by Khem Raj
parent 35bcd8c6dd
commit 4079e92284
3 changed files with 31 additions and 2 deletions

View File

@ -36,6 +36,7 @@ PTESTS_FAST_META_OE = "\
uthash \
xmlsec1 \
zeromq \
cjson \
"
PTESTS_FAST_META_OE:append:x86 = " mcelog"
PTESTS_FAST_META_OE:append:x86-64 = " mcelog"

View File

@ -0,0 +1,8 @@
#!/bin/sh
# exclude json_patch_tests
if ctest -E 'json_patch_tests' ; then
echo "PASS: cjson"
else
echo "FAIL: cjson"
fi

View File

@ -4,12 +4,32 @@ SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=218947f77e8cb8e2fa02918dc41c50d0"
SRC_URI = "git://github.com/DaveGamble/cJSON.git;branch=master;protocol=https"
SRC_URI = "git://github.com/DaveGamble/cJSON.git;branch=master;protocol=https \
file://run-ptest \
"
SRCREV = "d348621ca93571343a56862df7de4ff3bc9b5667"
S = "${WORKDIR}/git"
inherit cmake pkgconfig
inherit cmake pkgconfig ptest
RDEPENDS:${PN}-ptest += "cmake"
do_install_ptest() {
# create directories
install -d ${D}${PTEST_PATH} ${D}${PTEST_PATH}/tests ${D}${PTEST_PATH}/fuzzing
install -d ${D}${PTEST_PATH}/tests/inputs ${D}${PTEST_PATH}/tests/json-patch-tests
# CTestTestfiles.cmake contain fully defined path generated by cmake.
# Change the fully defined path to ptest path on the target
sed s#${B}#${PTEST_PATH}# ${B}/CTestTestfile.cmake > ${D}${PTEST_PATH}/CTestTestfile.cmake
sed s#${B}#${PTEST_PATH}# ${B}/tests/CTestTestfile.cmake > ${D}${PTEST_PATH}/tests/CTestTestfile.cmake
sed s#${B}#${PTEST_PATH}# ${B}/fuzzing/CTestTestfile.cmake > ${D}${PTEST_PATH}/fuzzing/CTestTestfile.cmake
# install test artifacts
install ${B}/cJSON_test ${D}${PTEST_PATH}
install ${B}/tests/cjson_add ${B}/tests/*_tests ${B}/tests/parse_* ${B}/tests/print_* ${B}/tests/readme_examples ${D}${PTEST_PATH}/tests/
install ${B}/tests/inputs/* ${D}${PTEST_PATH}/tests/inputs
install ${B}/fuzzing/fuzz_main ${D}${PTEST_PATH}/fuzzing
}
EXTRA_OECMAKE += "\
-DENABLE_CJSON_UTILS=On \