From f946444879576d8833493a27a22244530b8644d4 Mon Sep 17 00:00:00 2001 From: Armin Kuster Date: Mon, 28 Sep 2020 07:15:59 -0700 Subject: cmocka: add recipe includes ptest and bundling of examples that can be used for testing Signed-off-by: Armin Kuster Signed-off-by: Khem Raj --- meta-oe/recipes-test/cmocka/cmocka_1.1.5.bb | 39 ++++++++++++++++ .../cmocka/files/cmocka-uintptr_t.patch | 53 ++++++++++++++++++++++ meta-oe/recipes-test/cmocka/files/run-ptest | 10 ++++ 3 files changed, 102 insertions(+) create mode 100644 meta-oe/recipes-test/cmocka/cmocka_1.1.5.bb create mode 100644 meta-oe/recipes-test/cmocka/files/cmocka-uintptr_t.patch create mode 100644 meta-oe/recipes-test/cmocka/files/run-ptest (limited to 'meta-oe/recipes-test/cmocka') diff --git a/meta-oe/recipes-test/cmocka/cmocka_1.1.5.bb b/meta-oe/recipes-test/cmocka/cmocka_1.1.5.bb new file mode 100644 index 0000000000..5aee5ef931 --- /dev/null +++ b/meta-oe/recipes-test/cmocka/cmocka_1.1.5.bb @@ -0,0 +1,39 @@ +DESCRIPTION = "cmocka is an elegant unit testing framework for C with support for mock \ +objects. It only requires the standard C library, works on a range of computing \ +platforms (including embedded) and with different compilers." +HOMEPAGE = "https://cmocka.org/" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57" + +SRCREV = "56eb3a183fc222120f86d0c54fd033992c30135e" +SRC_URI = "git://git.cryptomilk.org/projects/cmocka.git \ + file://run-ptest \ + file://cmocka-uintptr_t.patch \ + " + +S = "${WORKDIR}/git" + +inherit cmake ptest + +EXTRA_OECMAKE = "${@bb.utils.contains('PTEST_ENABLED', '1', '-DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=ON', '', d)}" + +do_install_append () { + install -d ${D}${datadir}/${BPN}/example + install -d ${D}${datadir}/${BPN}/example/mock/chef_wrap + install -d ${D}${datadir}/${BPN}/example/mock/uptime + + install -m 0755 ${B}/example/*_test ${D}/${datadir}/${BPN}/example + install -m 0755 ${B}/example/mock/chef_wrap/waiter_test_wrap ${D}/${datadir}/${BPN}/example/mock/chef_wrap + install -m 0755 ${B}/example/mock/uptime/uptime ${D}/${datadir}/${BPN}/example/mock/uptime + install -m 0755 ${B}/example/mock/uptime/test_uptime ${D}/${datadir}/${BPN}/example/mock/uptime +} + +do_install_ptest () { + install -d ${D}${PTEST_PATH}/tests + install -m 0755 ${B}/tests/test_* ${D}${PTEST_PATH}/tests +} + +PACKAGE_BEFORE_PN += "${PN}-examples" + +FILES_${PN}-examples = "${datadir}/${BPN}/example" diff --git a/meta-oe/recipes-test/cmocka/files/cmocka-uintptr_t.patch b/meta-oe/recipes-test/cmocka/files/cmocka-uintptr_t.patch new file mode 100644 index 0000000000..8d3b73b631 --- /dev/null +++ b/meta-oe/recipes-test/cmocka/files/cmocka-uintptr_t.patch @@ -0,0 +1,53 @@ +From 5bd7b5d04435bd593349825973ce32290f5f604d Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Wed, 25 Jul 2018 09:55:25 +0800 +Subject: [PATCH] samba: cmocka.h: fix musl libc conflicting types error + +Fix build on qemumips64(el) + +taken from: +[PATCH] libldb: fix musl libc conflicting types error + +/third_party/cmocka/cmocka.h:126:28: error: conflicting types for 'uintptr_t' + typedef unsigned int uintptr_t; + ^~~~~~~~~ +use __DEFINED_uintptr_t in alltypes.h to check if uintptr already defined + +Upstream-Status: Pending + +Signed-off-by: Changqing Li +Signed-off-by: Andrea Adami + +Taken from [PATCH] samba: cmocka.h: fix musl libc conflicting types error +https://git.openembedded.org/meta-openembedded/commit/meta-networking/recipes-connectivity/samba?id=b758150d30a5fbdc47c465d0e9dca3a7e6d71f3c + +Signed-off-by: Armin Kuster + +This fix is not in cmocka, so pending pending?? + + +Index: git/include/cmocka.h +=================================================================== +--- git.orig/include/cmocka.h ++++ git/include/cmocka.h +@@ -116,7 +116,7 @@ typedef uintmax_t LargestIntegralType; + ((LargestIntegralType)(value)) + + /* Smallest integral type capable of holding a pointer. */ +-#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) ++#if !defined(__DEFINED_uintptr_t) + # if defined(_WIN32) + /* WIN32 is an ILP32 platform */ + typedef unsigned int uintptr_t; +@@ -140,9 +140,8 @@ typedef uintmax_t LargestIntegralType; + # endif /* __WORDSIZE */ + # endif /* _WIN32 */ + +-# define _UINTPTR_T +-# define _UINTPTR_T_DEFINED +-#endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */ ++# define __DEFINED_uintptr_t ++#endif /* !defined(__DEFINED_uintptr_t) */ + + /* Perform an unsigned cast to uintptr_t. */ + #define cast_to_pointer_integral_type(value) \ diff --git a/meta-oe/recipes-test/cmocka/files/run-ptest b/meta-oe/recipes-test/cmocka/files/run-ptest new file mode 100644 index 0000000000..48b9cd9fc5 --- /dev/null +++ b/meta-oe/recipes-test/cmocka/files/run-ptest @@ -0,0 +1,10 @@ +#!/bin/sh + +cd tests +for i in `ls *`; do + if [ ./$i ] ; then + echo "PASS: $i" + else + echo "FAIL: $i" + fi +done -- cgit 1.2.3-korg