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'

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 …

> > ---
> >  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)

Attachment: signature.asc
Description: PGP signature

_______________________________________________
ptxdist mailing list
[email protected]

Reply via email to