On Thu, Dec 05, 2019 at 10:42:54PM +0100, Alexander Dahl wrote: > Hei hei, > > seems I stumbled over some magic I was not aware of, see below. > > On Thu, Dec 05, 2019 at 04:19:15PM +0100, Michael Olbrich wrote: > > On Fri, Nov 29, 2019 at 10:11:24AM +0100, Alexander Dahl wrote: > > > From: Alexander Dahl <[email protected]> > > > > > > This adds the unit testing framework for C called 'cmocka'. > > > > > > Signed-off-by: Alexander Dahl <[email protected]> > > > --- > > > I tried modifying the opensc package for building its cmocka based > > > tests, but autoconf could not find or interpret the pkg-config file > > > provided by cmocka. Maybe someone else wants to look deeper into this? > > > > What kind of error do you get there? > > I could solve the prepare stage. Seems like pkg-config behaves > differently depending on menuconfig settings in ptxdist? What I tried > first: > > config OPENSC_TESTSUITE > bool "install testsuite" > depends on CMOCKA > > This gets me the following in > ..latform-v7a/build-target/OpenSC-0.19.0/config.log: > > configure:15477: checking for cmocka >= 1.0.1 > configure:15484: $PKG_CONFIG --exists --print-errors "cmocka >= 1.0.1" > arm-v7a-linux-gnueabihf-pkg-config: warning: blocking 'cmocka': not selected > by 'opensc' > configure:15487: $? = 1 > configure:15501: $PKG_CONFIG --exists --print-errors "cmocka >= 1.0.1" > arm-v7a-linux-gnueabihf-pkg-config: warning: blocking 'cmocka': not selected > by 'opensc' > configure:15504: $? = 1 > configure:15518: result: no > arm-v7a-linux-gnueabihf-pkg-config: warning: blocking 'cmocka': not selected > by 'opensc'
This is expected. With just 'depends on CMOCKA' the build order is undefined. So our pkg-configs wrapper explicitly blocks any packages without explicit or implicit dependencies. This way, it always fails and not just if opensc is built before cmocka. > I used the usual 'select CMOCKA if OPENSC_TESTSUITE' then, which > succeeds. Alas, I had to add another 'depends on OPENSC_OPENSSL' > there. I can send that patch along with a v2 series, beware it won't > build, because compilation fails then, because upstream OpenSC did not > put a header file they have in their git tree into their tarball … :-/ Michael > > > --- > > > rules/cmocka.in | 13 ++++++++++ > > > rules/cmocka.make | 62 +++++++++++++++++++++++++++++++++++++++++++++++ > > > 2 files changed, 75 insertions(+) > > > create mode 100644 rules/cmocka.in > > > create mode 100644 rules/cmocka.make > > > > > > diff --git a/rules/cmocka.in b/rules/cmocka.in > > > new file mode 100644 > > > index 000000000..d18cf00ff > > > --- /dev/null > > > +++ b/rules/cmocka.in > > > @@ -0,0 +1,13 @@ > > > +## SECTION=test_suites > > > + > > > +config CMOCKA > > > + tristate > > > + prompt "cmocka" > > > + select HOST_CMAKE > > > + help > > > + 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. > > > + > > > +# vim: ft=kconfig noet tw=72 ts=8 sw=8 > > > diff --git a/rules/cmocka.make b/rules/cmocka.make > > > new file mode 100644 > > > index 000000000..a4d25aece > > > --- /dev/null > > > +++ b/rules/cmocka.make > > > @@ -0,0 +1,62 @@ > > > +# -*-makefile-*- > > > +# > > > +# Copyright (C) 2019 by Alexander Dahl <[email protected]> > > > +# > > > +# For further information about the PTXdist project and license > > > conditions > > > +# see the README file. > > > +# > > > + > > > +# > > > +# We provide this package > > > +# > > > +PACKAGES-$(PTXCONF_CMOCKA) += cmocka > > > + > > > +# > > > +# Paths and names > > > +# > > > +CMOCKA_VER_MINOR := 1.1 > > > +CMOCKA_VER_PATCH := 5 > > > +CMOCKA_VERSION := $(CMOCKA_VER_MINOR).$(CMOCKA_VER_PATCH) > > > +CMOCKA_MD5 := 91f95cd5db88b9b120d191b18d367193 > > > +CMOCKA := cmocka-$(CMOCKA_VERSION) > > > +CMOCKA_SUFFIX := tar.xz > > > +CMOCKA_URL := > > > https://cmocka.org/files/$(CMOCKA_VER_MINOR)/$(CMOCKA).$(CMOCKA_SUFFIX) > > > > CMOCKA_URL := https://cmocka.org/files/$(basename > > $(CMOCKA_VERSION))/$(CMOCKA).$(CMOCKA_SUFFIX) > > > > Then you can just define CMOCKA_VERSION. > > Nice, that makes CMOCKA_VERSION := 1.1.5 possible, which is much more > readable. I'll put that into v2. > > Alex > > > > > Michael > > > > > +CMOCKA_SOURCE := $(SRCDIR)/$(CMOCKA).$(CMOCKA_SUFFIX) > > > +CMOCKA_DIR := $(BUILDDIR)/$(CMOCKA) > > > +CMOCKA_LICENSE := Apache-2.0 > > > +CMOCKA_LICENSE_FILES := > > > file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57 > > > + > > > +# > > > ---------------------------------------------------------------------------- > > > +# Prepare > > > +# > > > ---------------------------------------------------------------------------- > > > + > > > +CMOCKA_CONF_TOOL := cmake > > > +CMOCKA_CONF_OPT := \ > > > + $(CROSS_CMAKE_USR) \ > > > + -DBUILD_TESTING=OFF \ > > > + -DPICKY_DEVELOPER:BOOL=OFF \ > > > + -DUNIT_TESTING:BOOL=OFF \ > > > + -DWITH_CMOCKERY_SUPPORT:BOOL=OFF \ > > > + -DWITH_EXAMPLES:BOOL=OFF \ > > > + -DWITH_STATIC_LIB=OFF > > > + > > > +# > > > ---------------------------------------------------------------------------- > > > +# Target-Install > > > +# > > > ---------------------------------------------------------------------------- > > > + > > > +$(STATEDIR)/cmocka.targetinstall: > > > + @$(call targetinfo) > > > + > > > + @$(call install_init, cmocka) > > > + @$(call install_fixup, cmocka,PRIORITY,optional) > > > + @$(call install_fixup, cmocka,SECTION,base) > > > + @$(call install_fixup, cmocka,AUTHOR,"Alexander Dahl > > > <[email protected]>") > > > + @$(call install_fixup, cmocka,DESCRIPTION,missing) > > > + > > > + @$(call install_lib, cmocka, 0, 0, 0644, libcmocka) > > > + > > > + @$(call install_finish, cmocka) > > > + > > > + @$(call touch) > > > + > > > +# vim: ft=make noet tw=72 ts=8 sw=8 > > > -- > > > 2.20.1 > > > > > > > > > _______________________________________________ > > > ptxdist mailing list > > > [email protected] > > > > > > > -- > > Pengutronix e.K. | | > > Steuerwalder Str. 21 | http://www.pengutronix.de/ | > > 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | > > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | > > > > _______________________________________________ > > ptxdist mailing list > > [email protected] > > -- > /"\ ASCII RIBBON | »With the first link, the chain is forged. The first > \ / CAMPAIGN | speech censured, the first thought forbidden, the > X AGAINST | first freedom denied, chains us all irrevocably.« > / \ HTML MAIL | (Jean-Luc Picard, quoting Judge Aaron Satie) > _______________________________________________ > ptxdist mailing list > [email protected] -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ ptxdist mailing list [email protected]
