Skip to contentSkip to conversation

cppunit: Added package

PATCH Superseded Sebastien Bourdelin 4 participants 8 messages Oct 15, 2014 – Oct 16, 2014

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 cppunit: Added package

CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML or text format for automatic testing and GUI based for supervised tests.

http://www.freedesktop.org/wiki/Software/cppunit/

---
Changes v2 -> v3:
- use the release tarball instead of the git repository (suggested by arnout at mind.be)
- fix the Licence (suggested by arnout at mind.be)
- add upstream and locally compute .hash (suggested by
arnout at mind.be)
---
Changes v1 -> v2:
- used AUTORECONF option (suggested by romain.naour at openwide.fr)
- removed useless CONFIGURE_CMDS (suggested by romain.naour at openwide.fr)

---
 package/Config.in            |  1 +
 package/cppunit/Config.in    | 12 ++++++++++++
 package/cppunit/cppunit.hash |  5 +++++
 package/cppunit/cppunit.mk   | 14 ++++++++++++++
 4 files changed, 32 insertions(+)
 create mode 100644 package/cppunit/Config.in
 create mode 100644 package/cppunit/cppunit.hash
 create mode 100644 package/cppunit/cppunit.mk
package/Config.in +1 -0
index 93e148d..8d6e047 100644
@@ -840,6 +840,7 @@ menu "Other"
 	source "package/clapack/Config.in"
 	source "package/classpath/Config.in"
 	source "package/cppcms/Config.in"
+	source "package/cppunit/Config.in"
 	source "package/eigen/Config.in"
 	source "package/elfutils/Config.in"
 	source "package/fftw/Config.in"
package/cppunit/Config.in new file +12 -0
new file mode 100644
index 0000000..91700b8
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_CPPUNIT
+	bool "cppunit"
+	depends on BR2_INSTALL_LIBSTDCPP
+	help
+	  CppUnit is the C++ port of the famous JUnit framework for unit testing.
+	  Test output is in XML or text format for automatic testing and GUI
+	  based for supervised tests.
+
+	  http://www.freedesktop.org/wiki/Software/cppunit/
+
+comment "cppunit needs a toolchain w/ C++"
+	depends on !BR2_INSTALL_LIBSTDCPP
package/cppunit/cppunit.hash new file +5 -0
new file mode 100644
index 0000000..ad45455
@@ -0,0 +1,5 @@
+# hash from: http://dev-www.libreoffice.org/src/cppunit-1.13.2.tar.gz:
+md5	d1c6bdd5a76c66d2c38331e2d287bc01  cppunit-1.13.2.tar.gz
+
+# no upstream hash for the following:
+sha512	8f4be569f321d577cec31931f49f4df143bc94e283605509b6ea50c60690aa91a2aed940e7eebd4b2413a4218f9a6c3978d312d8e587eab040283c6563846ecd  cppunit-1.13.2.tar.gz
package/cppunit/cppunit.mk new file +14 -0
new file mode 100644
index 0000000..89268b7
@@ -0,0 +1,14 @@
+################################################################################
+#
+# cppunit
+#
+################################################################################
+
+CPPUNIT_VERSION = cppunit-1.13.2
+CPPUNIT_SOURCE = $(CPPUNIT_VERSION).tar.gz
+CPPUNIT_SITE = http://dev-www.libreoffice.org/src
+CPPUNIT_INSTALL_STAGING = YES
+CPPUNIT_LICENSE = LGPLv2.1+
+CPPUNIT_LICENSE_FILES = COPYING
+
+$(eval $(autotools-package))
Signature · 1 line
1.8.3.4
#1 lore raw

PATCH v3 1/1 cppunit: Added package

Hi Sebastien,

Quoted 75 lines

CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML or text format for automatic testing and GUI based for supervised tests.

http://www.freedesktop.org/wiki/Software/cppunit/

---
Changes v2 -> v3:
- use the release tarball instead of the git repository (suggested by arnout at mind.be)
- fix the Licence (suggested by arnout at mind.be)
- add upstream and locally compute .hash (suggested by
arnout at mind.be)
---
Changes v1 -> v2:
- used AUTORECONF option (suggested by romain.naour at openwide.fr)
- removed useless CONFIGURE_CMDS (suggested by romain.naour at openwide.fr)

---
  package/Config.in            |  1 +
  package/cppunit/Config.in    | 12 ++++++++++++
  package/cppunit/cppunit.hash |  5 +++++
  package/cppunit/cppunit.mk   | 14 ++++++++++++++
  4 files changed, 32 insertions(+)

create mode 100644 package/cppunit/Config.in
create mode 100644 package/cppunit/cppunit.hash
create mode 100644 package/cppunit/cppunit.mk

package/Config.in +1 -0
index 93e148d..8d6e047 100644
@@ -840,6 +840,7 @@ menu "Other"
  	source "package/clapack/Config.in"
  	source "package/classpath/Config.in"
  	source "package/cppcms/Config.in"
+	source "package/cppunit/Config.in"
  	source "package/eigen/Config.in"
  	source "package/elfutils/Config.in"
  	source "package/fftw/Config.in"
package/cppunit/Config.in new file +12 -0
new file mode 100644
index 0000000..91700b8
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_CPPUNIT
+	bool "cppunit"
+	depends on BR2_INSTALL_LIBSTDCPP
+	help
+	  CppUnit is the C++ port of the famous JUnit framework for unit testing.
+	  Test output is in XML or text format for automatic testing and GUI
+	  based for supervised tests.
+
+	  http://www.freedesktop.org/wiki/Software/cppunit/
+
+comment "cppunit needs a toolchain w/ C++"
+	depends on !BR2_INSTALL_LIBSTDCPP
package/cppunit/cppunit.hash new file +5 -0
new file mode 100644
index 0000000..ad45455
@@ -0,0 +1,5 @@
+# hash from: http://dev-www.libreoffice.org/src/cppunit-1.13.2.tar.gz:
+md5	d1c6bdd5a76c66d2c38331e2d287bc01  cppunit-1.13.2.tar.gz
+
+# no upstream hash for the following:
+sha512	8f4be569f321d577cec31931f49f4df143bc94e283605509b6ea50c60690aa91a2aed940e7eebd4b2413a4218f9a6c3978d312d8e587eab040283c6563846ecd  cppunit-1.13.2.tar.gz
package/cppunit/cppunit.mk new file +0 -0
new file mode 100644
index 0000000..89268b7

package/cppunit/cppunit.mk line 7

Quoted 7 lines
package/cppunit/cppunit.mk new file +7 -0
@@ -0,0 +1,14 @@
+################################################################################
+#
+# cppunit
+#
+################################################################################
+
+CPPUNIT_VERSION = cppunit-1.13.2

This should be

CPPUNIT_VERSION = 1.13.2

and ...

package/cppunit/cppunit.mk line 8

Quoted 1 line
package/cppunit/cppunit.mk new file +1 -0
+CPPUNIT_SOURCE = $(CPPUNIT_VERSION).tar.gz

that should be

CPPUNIT_SOURCE = cppunit-$(CPPUNIT_VERSION).tar.gz

but because this is the default value of <PKG>_SOURCE variable, so this line is not needed.

Regards,
Jerzy

Quoted 6 lines
package/cppunit/cppunit.mk new file +6 -0
+CPPUNIT_SITE = http://dev-www.libreoffice.org/src
+CPPUNIT_INSTALL_STAGING = YES
+CPPUNIT_LICENSE = LGPLv2.1+
+CPPUNIT_LICENSE_FILES = COPYING
+
+$(eval $(autotools-package))
#2 lore raw

PATCH v3 1/1 cppunit: Added package

In reply to Sebastien Bourdelin

Sorry, still a few details :-)

Quoted 7 lines · Sebastien Bourdelin

CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML or text format for automatic testing and GUI based for supervised tests.

http://www.freedesktop.org/wiki/Software/cppunit/

Quoted 11 lines

---
Changes v2 -> v3:
- use the release tarball instead of the git repository (suggested by arnout at mind.be)
- fix the Licence (suggested by arnout at mind.be)
- add upstream and locally compute .hash (suggested by
arnout at mind.be)
---
Changes v1 -> v2:
- used AUTORECONF option (suggested by romain.naour at openwide.fr)
- removed useless CONFIGURE_CMDS (suggested by romain.naour at openwide.fr)

Excellent changelog BTW!

Quoted 15 lines
---
 package/Config.in            |  1 +
 package/cppunit/Config.in    | 12 ++++++++++++
 package/cppunit/cppunit.hash |  5 +++++
 package/cppunit/cppunit.mk   | 14 ++++++++++++++
 4 files changed, 32 insertions(+)
 create mode 100644 package/cppunit/Config.in
 create mode 100644 package/cppunit/cppunit.hash
 create mode 100644 package/cppunit/cppunit.mk
package/Config.in +0 -0
index 93e148d..8d6e047 100644

package/Config.in menu "Other" · line 843

Quoted 4 lines
package/Config.in +1 -0
@@ -840,6 +840,7 @@ menu "Other"
 	source "package/clapack/Config.in"
 	source "package/classpath/Config.in"
 	source "package/cppcms/Config.in"
+	source "package/cppunit/Config.in"

I didn't look at this before, but:

I think this fits better in the Development tools menu, even though it's a
library. I'm not 100% sure, though, so it's up to you.

Quoted 27 lines
package/Config.in +0 -0
 	source "package/eigen/Config.in"
 	source "package/elfutils/Config.in"
 	source "package/fftw/Config.in"
package/cppunit/Config.in new file +12 -0
new file mode 100644
index 0000000..91700b8
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_CPPUNIT
+	bool "cppunit"
+	depends on BR2_INSTALL_LIBSTDCPP
+	help
+	  CppUnit is the C++ port of the famous JUnit framework for unit testing.
+	  Test output is in XML or text format for automatic testing and GUI
+	  based for supervised tests.
+
+	  http://www.freedesktop.org/wiki/Software/cppunit/
+
+comment "cppunit needs a toolchain w/ C++"
+	depends on !BR2_INSTALL_LIBSTDCPP
package/cppunit/cppunit.hash new file +0 -0
new file mode 100644
index 0000000..ad45455

package/cppunit/cppunit.hash line 1

Quoted 1 line
package/cppunit/cppunit.hash new file +1 -0
@@ -0,0 +1,5 @@
+# hash from: http://dev-www.libreoffice.org/src/cppunit-1.13.2.tar.gz:

We already know where the source comes from; instead, you should refer to the
URL that gives the hash:
http://www.freedesktop.org/wiki/Software/cppunit/

package/cppunit/cppunit.hash line 2

Quoted 1 line
package/cppunit/cppunit.hash new file +1 -0
+md5	d1c6bdd5a76c66d2c38331e2d287bc01  cppunit-1.13.2.tar.gz

I verified that this is correct.

Quoted 9 lines
package/cppunit/cppunit.hash new file +3 -0
+
+# no upstream hash for the following:
+sha512	8f4be569f321d577cec31931f49f4df143bc94e283605509b6ea50c60690aa91a2aed940e7eebd4b2413a4218f9a6c3978d312d8e587eab040283c6563846ecd  cppunit-1.13.2.tar.gz
package/cppunit/cppunit.mk new file +0 -0
new file mode 100644
index 0000000..89268b7

package/cppunit/cppunit.mk line 7

Quoted 7 lines
package/cppunit/cppunit.mk new file +7 -0
@@ -0,0 +1,14 @@
+################################################################################
+#
+# cppunit
+#
+################################################################################
+
+CPPUNIT_VERSION = cppunit-1.13.2

No, the version is 1.13.2

package/cppunit/cppunit.mk line 8

Quoted 1 line
package/cppunit/cppunit.mk new file +1 -0
+CPPUNIT_SOURCE = $(CPPUNIT_VERSION).tar.gz

Once the VERSION has been corrected, this is the default so it's not needed to
give the CPPUNIT_SOURCE.

package/cppunit/cppunit.mk line 14

Quoted 6 lines
package/cppunit/cppunit.mk new file +6 -0
+CPPUNIT_SITE = http://dev-www.libreoffice.org/src
+CPPUNIT_INSTALL_STAGING = YES
+CPPUNIT_LICENSE = LGPLv2.1+
+CPPUNIT_LICENSE_FILES = COPYING
+
+$(eval $(autotools-package))

Unfortunately, it fails to build for platforms without shared libraries (e.g.
blackfin FLAT). Probably easy to fix (seems to be a case of some forgotten #ifdef's), but it's easier to just add

depends on !BR2_BINFMT_FLAT

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#3 lore raw

PATCH v3 1/1 cppunit: Added package

Dear Arnout Vandecappelle,

Quoted 5 lines · Arnout Vandecappelle

Unfortunately, it fails to build for platforms without shared libraries (e.g.
blackfin FLAT). Probably easy to fix (seems to be a case of some forgotten #ifdef's), but it's easier to just add

depends on !BR2_BINFMT_FLAT

No: if it's really related to shared libraries, then it should be a depends on !BR2_PREFER_STATIC_LIB.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#4 lore raw

PATCH v3 1/1 cppunit: Added package

Quoted 4 lines · Thomas Petazzoni

Dear Arnout Vandecappelle,

On Thu, 16 Oct 2014 10:51:28 +0200, Arnout Vandecappelle wrote:

Quoted 8 lines
Quoted 5 lines

Unfortunately, it fails to build for platforms without shared libraries (e.g.
blackfin FLAT). Probably easy to fix (seems to be a case of some forgotten #ifdef's), but it's easier to just add

depends on !BR2_BINFMT_FLAT

No: if it's really related to shared libraries, then it should be a depends on !BR2_PREFER_STATIC_LIB.

Yeah, you're probably right. It does build with PREFER_STATIC on other
architectures, but that's just because there still is a dlopen in staging so it still sets CPPUNIT_HAVE_LIBDL and then it builds "correctly". But we most likely have many many packages that seem to build correctly with STATIC but actually still use shared libraries or dlopen. We probably should remove ld.so and libdl.* from staging when building static.

So yes, better make it !STATIC, with a comment explaining that it doesn't
correctly detect the static situation and that there is a trivial build failure when CPPUNIT_HAVE_LIBDL is disabled.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#5 lore raw

PATCH v3 1/1 cppunit: Added package

Dear Arnout Vandecappelle,

Quoted 9 lines · Arnout Vandecappelle
Quoted 2 lines

No: if it's really related to shared libraries, then it should be a depends on !BR2_PREFER_STATIC_LIB.

Yeah, you're probably right. It does build with PREFER_STATIC on other
architectures, but that's just because there still is a dlopen in staging so it still sets CPPUNIT_HAVE_LIBDL and then it builds "correctly". But we most likely have many many packages that seem to build correctly with STATIC but actually still use shared libraries or dlopen. We probably should remove ld.so and libdl.* from staging when building static.

Well, for packages that do build on noMMU platforms, we do catch such issues thanks to the bfin-uclinux toolchain configuration that is used on the autobuilders. But for those other packages that don't build on noMMU, we indeed don't check properly if we're able to do a pure static build.

Alexey has sent a patch to remove HAVE_SHARED from the uClibc configuration when BR2_PREFER_STATIC_LIB is enabled. Maybe this will get rid of ld.so, libdl and so on? I haven't tested yet.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#6 lore raw

PATCH v3 1/1 cppunit: Added package

Quoted 14 lines · Thomas Petazzoni

Dear Arnout Vandecappelle,

Quoted 9 lines · Arnout Vandecappelle
Quoted 2 lines

No: if it's really related to shared libraries, then it should be a depends on !BR2_PREFER_STATIC_LIB.

Yeah, you're probably right. It does build with PREFER_STATIC on other
architectures, but that's just because there still is a dlopen in staging so it still sets CPPUNIT_HAVE_LIBDL and then it builds "correctly". But we most likely have many many packages that seem to build correctly with STATIC but actually still use shared libraries or dlopen. We probably should remove ld.so and libdl.* from staging when building static.

Quoted 5 lines

Well, for packages that do build on noMMU platforms, we do catch such issues thanks to the bfin-uclinux toolchain configuration that is used on the autobuilders. But for those other packages that don't build on noMMU, we indeed don't check properly if we're able to do a pure static build.

No, what I mean is: on platforms that do support shared libraries and packages
that support static-only, they will still detect that dlopen() is supported and so they will still build support for dynamic libraries.

But it's actually not a big deal, since they'll link with libdl.a so even at
runtime everything will work. I guess.

Quoted 3 lines

Alexey has sent a patch to remove HAVE_SHARED from the uClibc configuration when BR2_PREFER_STATIC_LIB is enabled. Maybe this will get rid of ld.so, libdl and so on? I haven't tested yet.

I don't know either.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#7 lore raw

PATCH v3 1/1 cppunit: Added package

Hi,

Thanks for your review.
i will send a new patch with all your suggestions.

Regards,
Sebastien.

Quoted 35 lines · Arnout Vandecappelle
Quoted 12 lines · Thomas Petazzoni

Dear Arnout Vandecappelle,

Quoted 8 lines · Arnout Vandecappelle
Quoted 2 lines

No: if it's really related to shared libraries, then it should be a depends on !BR2_PREFER_STATIC_LIB.

Yeah, you're probably right. It does build with PREFER_STATIC on other
architectures, but that's just because there still is a dlopen in staging so it still sets CPPUNIT_HAVE_LIBDL and then it builds "correctly". But we most likely have many many packages that seem to build correctly with STATIC but actually still use shared libraries or dlopen. We probably should remove ld.so and libdl.* from staging when building static.

Quoted 5 lines

Well, for packages that do build on noMMU platforms, we do catch such issues thanks to the bfin-uclinux toolchain configuration that is used on the autobuilders. But for those other packages that don't build on noMMU, we indeed don't check properly if we're able to do a pure static build.

No, what I mean is: on platforms that do support shared libraries and packages
that support static-only, they will still detect that dlopen() is supported and so they will still build support for dynamic libraries.

But it's actually not a big deal, since they'll link with libdl.a so even at
runtime everything will work. I guess.

Quoted 3 lines

Alexey has sent a patch to remove HAVE_SHARED from the uClibc configuration when BR2_PREFER_STATIC_LIB is enabled. Maybe this will get rid of ld.so, libdl and so on? I haven't tested yet.

I don't know either.

Regards,
Arnout