Patchwork [v3] New package: gtest

login
register
mail settings
Submitter Stephan Hoffmann
Date Feb. 5, 2013, 6:16 p.m.
Message ID <1360088168-9012-1-git-send-email-sho@relinux.de>
Download mbox | patch
Permalink /patch/218312/
State Accepted
Headers show

Comments

Stephan Hoffmann - Feb. 5, 2013, 6:16 p.m.
Google's framework for writing C++ tests on a variety of platforms (Linux,
Mac OS X, Windows, Cygwin, Windows CE, and Symbian). Based on the xUnit
architecture. Supports automatic test discovery, a rich set of assertions,
user-defined assertions, death tests, fatal and non-fatal failures, value-
and type-parameterized tests, various options for running the tests, and XML
test report generation.

Gtest also allows to easily build testsuites for C programs.

This package allows running testsuites on the target which might be
advantgeous in certain cases.

http://code.google.com/p/googletest/

Signed-off-by: Stephan Hoffmann <sho@relinux.de>
---
v2: Fixed whitespace errors
v3: Renamed to gtest and fixed typos

 package/Config.in       |    1 +
 package/gtest/Config.in |   20 ++++++++++++++++++++
 package/gtest/gtest.mk  |   23 +++++++++++++++++++++++
 3 files changed, 44 insertions(+), 0 deletions(-)
 create mode 100644 package/gtest/Config.in
 create mode 100644 package/gtest/gtest.mk
Stephan Hoffmann - March 4, 2013, 10:28 a.m.
Ping?
Am 05.02.2013 19:16, schrieb Stephan Hoffmann:
> Google's framework for writing C++ tests on a variety of platforms (Linux,
> Mac OS X, Windows, Cygwin, Windows CE, and Symbian). Based on the xUnit
> architecture. Supports automatic test discovery, a rich set of assertions,
> user-defined assertions, death tests, fatal and non-fatal failures, value-
> and type-parameterized tests, various options for running the tests, and XML
> test report generation.
>
> Gtest also allows to easily build testsuites for C programs.
>
> This package allows running testsuites on the target which might be
> advantgeous in certain cases.
>
> http://code.google.com/p/googletest/
>
> Signed-off-by: Stephan Hoffmann <sho@relinux.de>
> ---
> v2: Fixed whitespace errors
> v3: Renamed to gtest and fixed typos
>
>  package/Config.in       |    1 +
>  package/gtest/Config.in |   20 ++++++++++++++++++++
>  package/gtest/gtest.mk  |   23 +++++++++++++++++++++++
>  3 files changed, 44 insertions(+), 0 deletions(-)
>  create mode 100644 package/gtest/Config.in
>  create mode 100644 package/gtest/gtest.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 2f219b6..845fe57 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -541,6 +541,7 @@ source "package/fftw/Config.in"
>  source "package/libargtable2/Config.in"
>  source "package/argp-standalone/Config.in"
>  source "package/boost/Config.in"
> +source "package/gtest/Config.in"
>  source "package/libatomic_ops/Config.in"
>  source "package/libcap/Config.in"
>  source "package/libcap-ng/Config.in"
> diff --git a/package/gtest/Config.in b/package/gtest/Config.in
> new file mode 100644
> index 0000000..9064c6a
> --- /dev/null
> +++ b/package/gtest/Config.in
> @@ -0,0 +1,20 @@
> +config BR2_PACKAGE_GTEST
> +	bool "gtest"
> +	depends on BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS && BR2_INSTALL_LIBSTDCPP
> +	help
> +	  Google's framework for writing C++ tests on a variety of platforms (Linux,
> +	  Mac OS X, Windows, Cygwin, Windows CE, and Symbian). Based on the xUnit
> +	  architecture. Supports automatic test discovery, a rich set of assertions,
> +	  user-defined assertions, death tests, fatal and non-fatal failures, value-
> +	  and type-parameterized tests, various options for running the tests, and XML
> +	  test report generation.
> +
> +	  Gtest also allows to easily build testsuites for C programs.
> +
> +	  This package allows running testsuites on the target which might be
> +	  advantageous in certain cases.
> +
> +	  http://code.google.com/p/googletest/
> +
> +comment "gtest requires a toolchain with c++, WCHAR and PTHREADS support"
> +	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
> diff --git a/package/gtest/gtest.mk b/package/gtest/gtest.mk
> new file mode 100644
> index 0000000..4090c14
> --- /dev/null
> +++ b/package/gtest/gtest.mk
> @@ -0,0 +1,23 @@
> +#############################################################
> +#
> +# googletest
> +#
> +#############################################################
> +
> +GTEST_VERSION = 1.6.0
> +GTEST_SOURCE = gtest-1.6.0.zip
> +GTEST_SITE = http://googletest.googlecode.com/files/
> +GTEST_INSTALL_STAGING = YES
> +GTEST_INSTALL_TARGET = NO
> +
> +define GTEST_EXTRACT_CMDS
> +	unzip  $(DL_DIR)/$(GTEST_SOURCE) -d $(BUILD_DIR)
> +endef
> +
> +define GTEST_INSTALL_STAGING_CMDS
> +	$(INSTALL) -D -m 0755 $(@D)/libgtest.a $(STAGING_DIR)/usr/lib/libgtest.a
> +	$(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include/gtest/
> +	cp -rp $(@D)/include/gtest/* $(STAGING_DIR)/usr/include/gtest/
> +endef
> +
> +$(eval $(cmake-package))
Peter Korsgaard - March 17, 2013, 10:22 p.m.
>>>>> "Stephan" == Stephan Hoffmann <sho@relinux.de> writes:

 Stephan> Google's framework for writing C++ tests on a variety of
 Stephan> platforms (Linux, Mac OS X, Windows, Cygwin, Windows CE, and
 Stephan> Symbian). Based on the xUnit architecture. Supports automatic
 Stephan> test discovery, a rich set of assertions, user-defined
 Stephan> assertions, death tests, fatal and non-fatal failures, value-
 Stephan> and type-parameterized tests, various options for running the
 Stephan> tests, and XML test report generation.

 Stephan> Gtest also allows to easily build testsuites for C programs.

 Stephan> This package allows running testsuites on the target which might be
 Stephan> advantgeous in certain cases.

 Stephan> http://code.google.com/p/googletest/

 Stephan> Signed-off-by: Stephan Hoffmann <sho@relinux.de>
 Stephan> ---
 Stephan> v2: Fixed whitespace errors
 Stephan> v3: Renamed to gtest and fixed typos

 Stephan>  package/Config.in       |    1 +
 Stephan>  package/gtest/Config.in |   20 ++++++++++++++++++++
 Stephan>  package/gtest/gtest.mk  |   23 +++++++++++++++++++++++
 Stephan>  3 files changed, 44 insertions(+), 0 deletions(-)
 Stephan>  create mode 100644 package/gtest/Config.in
 Stephan>  create mode 100644 package/gtest/gtest.mk

 Stephan> diff --git a/package/Config.in b/package/Config.in
 Stephan> index 2f219b6..845fe57 100644
 Stephan> --- a/package/Config.in
 Stephan> +++ b/package/Config.in
 Stephan> @@ -541,6 +541,7 @@ source "package/fftw/Config.in"
 Stephan>  source "package/libargtable2/Config.in"
 Stephan>  source "package/argp-standalone/Config.in"
 Stephan>  source "package/boost/Config.in"
 Stephan> +source "package/gtest/Config.in"
 Stephan>  source "package/libatomic_ops/Config.in"
 Stephan>  source "package/libcap/Config.in"
 Stephan>  source "package/libcap-ng/Config.in"
 Stephan> diff --git a/package/gtest/Config.in b/package/gtest/Config.in
 Stephan> new file mode 100644
 Stephan> index 0000000..9064c6a
 Stephan> --- /dev/null
 Stephan> +++ b/package/gtest/Config.in
 Stephan> @@ -0,0 +1,20 @@
 Stephan> +config BR2_PACKAGE_GTEST
 Stephan> +	bool "gtest"
 Stephan> +	depends on BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS && BR2_INSTALL_LIBSTDCPP

We normally have seperate 'depends on' for each individual dependency.

 Stephan> +	help
 Stephan> +	  Google's framework for writing C++ tests on a variety of platforms (Linux,
 Stephan> +	  Mac OS X, Windows, Cygwin, Windows CE, and Symbian). Based on the xUnit
 Stephan> +	  architecture. Supports automatic test discovery, a rich set of assertions,
 Stephan> +	  user-defined assertions, death tests, fatal and non-fatal failures, value-
 Stephan> +	  and type-parameterized tests, various options for running the tests, and XML
 Stephan> +	  test report generation.

I've word wrapped this to fit inside ~70 chars.

 Stephan> +comment "gtest requires a toolchain with c++, WCHAR and PTHREADS support"
 Stephan> +	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP

We normally just talk about threads support, as it can come from
pthreads or nptl.

 Stephan> diff --git a/package/gtest/gtest.mk b/package/gtest/gtest.mk
 Stephan> new file mode 100644
 Stephan> index 0000000..4090c14
 Stephan> --- /dev/null
 Stephan> +++ b/package/gtest/gtest.mk
 Stephan> @@ -0,0 +1,23 @@
 Stephan> +#############################################################
 Stephan> +#
 Stephan> +# googletest
 Stephan> +#
 Stephan> +#############################################################
 Stephan> +
 Stephan> +GTEST_VERSION = 1.6.0
 Stephan> +GTEST_SOURCE = gtest-1.6.0.zip

This should be GTEST_SOURCE = gtest-$(GTEST_SOURCE).zip

 Stephan> +GTEST_SITE = http://googletest.googlecode.com/files/
 Stephan> +GTEST_INSTALL_STAGING = YES
 Stephan> +GTEST_INSTALL_TARGET = NO
 Stephan> +
 Stephan> +define GTEST_EXTRACT_CMDS
 Stephan> +	unzip  $(DL_DIR)/$(GTEST_SOURCE) -d $(BUILD_DIR)
 Stephan> +endef

Double space after unzip.

Committed with these fixes, thanks.

Patch

diff --git a/package/Config.in b/package/Config.in
index 2f219b6..845fe57 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -541,6 +541,7 @@  source "package/fftw/Config.in"
 source "package/libargtable2/Config.in"
 source "package/argp-standalone/Config.in"
 source "package/boost/Config.in"
+source "package/gtest/Config.in"
 source "package/libatomic_ops/Config.in"
 source "package/libcap/Config.in"
 source "package/libcap-ng/Config.in"
diff --git a/package/gtest/Config.in b/package/gtest/Config.in
new file mode 100644
index 0000000..9064c6a
--- /dev/null
+++ b/package/gtest/Config.in
@@ -0,0 +1,20 @@ 
+config BR2_PACKAGE_GTEST
+	bool "gtest"
+	depends on BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS && BR2_INSTALL_LIBSTDCPP
+	help
+	  Google's framework for writing C++ tests on a variety of platforms (Linux,
+	  Mac OS X, Windows, Cygwin, Windows CE, and Symbian). Based on the xUnit
+	  architecture. Supports automatic test discovery, a rich set of assertions,
+	  user-defined assertions, death tests, fatal and non-fatal failures, value-
+	  and type-parameterized tests, various options for running the tests, and XML
+	  test report generation.
+
+	  Gtest also allows to easily build testsuites for C programs.
+
+	  This package allows running testsuites on the target which might be
+	  advantageous in certain cases.
+
+	  http://code.google.com/p/googletest/
+
+comment "gtest requires a toolchain with c++, WCHAR and PTHREADS support"
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
diff --git a/package/gtest/gtest.mk b/package/gtest/gtest.mk
new file mode 100644
index 0000000..4090c14
--- /dev/null
+++ b/package/gtest/gtest.mk
@@ -0,0 +1,23 @@ 
+#############################################################
+#
+# googletest
+#
+#############################################################
+
+GTEST_VERSION = 1.6.0
+GTEST_SOURCE = gtest-1.6.0.zip
+GTEST_SITE = http://googletest.googlecode.com/files/
+GTEST_INSTALL_STAGING = YES
+GTEST_INSTALL_TARGET = NO
+
+define GTEST_EXTRACT_CMDS
+	unzip  $(DL_DIR)/$(GTEST_SOURCE) -d $(BUILD_DIR)
+endef
+
+define GTEST_INSTALL_STAGING_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/libgtest.a $(STAGING_DIR)/usr/lib/libgtest.a
+	$(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include/gtest/
+	cp -rp $(@D)/include/gtest/* $(STAGING_DIR)/usr/include/gtest/
+endef
+
+$(eval $(cmake-package))