From: Michael Olbrich <m.olbrich@pengutronix.de>
To: ptxdist@pengutronix.de
Cc: Alexander Dahl <ada@thorsis.com>,
Rouven Czerwinski <r.czerwinski@pengutronix.de>
Subject: Re: [ptxdist] [PATCH] cmocka: new package
Date: Fri, 6 Dec 2019 11:16:18 +0100 [thread overview]
Message-ID: <20191206101618.h3ahz4p34zhbm2fw@pengutronix.de> (raw)
In-Reply-To: <20191205214253.uq3d2z4ru2rm2gir@falbala.internal.home.lespocky.de>
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 <ada@thorsis.com>
> > >
> > > This adds the unit testing framework for C called 'cmocka'.
> > >
> > > Signed-off-by: Alexander Dahl <ada@thorsis.com>
> > > ---
> > > 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 <ada@thorsis.com>
> > > +#
> > > +# 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 <ada@thorsis.com>")
> > > + @$(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
> > > ptxdist@pengutronix.de
> > >
> >
> > --
> > 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
> > ptxdist@pengutronix.de
>
> --
> /"\ 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
> ptxdist@pengutronix.de
--
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
ptxdist@pengutronix.de
next prev parent reply other threads:[~2019-12-06 10:16 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-29 9:11 Alexander Dahl
2019-12-05 15:19 ` Michael Olbrich
2019-12-05 21:42 ` Alexander Dahl
2019-12-06 10:16 ` Michael Olbrich [this message]
2019-12-08 11:28 ` Alexander Dahl
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191206101618.h3ahz4p34zhbm2fw@pengutronix.de \
--to=m.olbrich@pengutronix.de \
--cc=ada@thorsis.com \
--cc=ptxdist@pengutronix.de \
--cc=r.czerwinski@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox