[glib: 1/2] Distribute cxx test tests/cxx-test.cpp to each module tests directory




commit ae345e56c25e5b7452e3ce7c94611e7a71911047
Author: Emmanuel Fleury <emmanuel fleury gmail com>
Date:   Mon Dec 13 16:06:47 2021 +0100

    Distribute cxx test tests/cxx-test.cpp to each module tests directory
    
    tests/cxx-test.cpp is removed and splitted into gio/tests/cxx.cpp,
    gmodule/tests/cxx.cpp and gobject/tests/cxx.cpp.
    
    Helps issue #1434

 gio/tests/cxx.cpp         | 26 ++++++++++++++++++++++++++
 gio/tests/meson.build     |  3 +++
 gmodule/meson.build       |  4 ++++
 gmodule/tests/cxx.cpp     | 26 ++++++++++++++++++++++++++
 gmodule/tests/meson.build | 45 +++++++++++++++++++++++++++++++++++++++++++++
 gobject/tests/cxx.cpp     | 26 ++++++++++++++++++++++++++
 gobject/tests/meson.build |  3 +++
 tests/cxx-test.cpp        | 10 ----------
 tests/meson.build         |  5 -----
 9 files changed, 133 insertions(+), 15 deletions(-)
---
diff --git a/gio/tests/cxx.cpp b/gio/tests/cxx.cpp
new file mode 100644
index 000000000..1f28d0b27
--- /dev/null
+++ b/gio/tests/cxx.cpp
@@ -0,0 +1,26 @@
+/* Copyright (C) 2001 Sebastian Wilhelmi <wilhelmi google com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/* A trivial C++ program to be compiled in C++ mode, which
+ * smoketests that the GIO headers are valid C++ headers. */
+
+#include <gio/gio.h>
+
+int
+main ()
+{
+  return 0;
+}
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
index b563e8dde..f8cf7b655 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
@@ -52,6 +52,9 @@ gio_tests = {
   'contenttype' : {},
   'converter-stream' : {},
   'credentials' : {},
+  'cxx' : {
+    'source' : ['cxx.cpp'],
+  },
   'data-input-stream' : {},
   'data-output-stream' : {},
   'defaultvalue' : {'extra_sources' : [giotypefuncs_inc]},
diff --git a/gmodule/meson.build b/gmodule/meson.build
index b1a5a11a9..7e007a87e 100644
--- a/gmodule/meson.build
+++ b/gmodule/meson.build
@@ -126,3 +126,7 @@ if meson.version().version_compare('>=0.54.0')
   meson.override_dependency('gmodule-export-2.0', libgmodule_dep)
   meson.override_dependency('gmodule-2.0', libgmodule_dep)
 endif
+
+if build_tests
+  subdir('tests')
+endif
diff --git a/gmodule/tests/cxx.cpp b/gmodule/tests/cxx.cpp
new file mode 100644
index 000000000..85242c59a
--- /dev/null
+++ b/gmodule/tests/cxx.cpp
@@ -0,0 +1,26 @@
+/* Copyright (C) 2001 Sebastian Wilhelmi <wilhelmi google com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/* A trivial C++ program to be compiled in C++ mode, which
+ * smoketests that the GModule headers are valid C++ headers. */
+
+#include <gmodule.h>
+
+int
+main ()
+{
+  return 0;
+}
diff --git a/gmodule/tests/meson.build b/gmodule/tests/meson.build
new file mode 100644
index 000000000..9b475a88e
--- /dev/null
+++ b/gmodule/tests/meson.build
@@ -0,0 +1,45 @@
+gmodule_tests = {
+  'cxx' : {
+    'source' : ['cxx.cpp'],
+  },
+}
+
+test_env = environment()
+test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
+test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
+test_env.set('G_DEBUG', 'gc-friendly')
+test_env.set('MALLOC_CHECK_', '2')
+test_env.set('MALLOC_PERTURB_', '@0@'.format(random_number % 256))
+
+test_deps = [libm, thread_dep, libglib_dep, libgmodule_dep]
+test_cargs = ['-DG_LOG_DOMAIN="GModule"', '-UG_DISABLE_ASSERT']
+
+foreach test_name, extra_args : gmodule_tests
+  source = extra_args.get('source', test_name + '.c')
+  install = installed_tests_enabled and extra_args.get('install', true)
+
+  if install
+    test_conf = configuration_data()
+    test_conf.set('installed_tests_dir', installed_tests_execdir)
+    test_conf.set('program', test_name)
+    test_conf.set('env', '')
+    configure_file(
+      input: installed_tests_template_tap,
+      output: test_name + '.test',
+      install_dir: installed_tests_metadir,
+      configuration: test_conf
+    )
+  endif
+
+  exe = executable(test_name, source,
+    c_args : test_cargs + extra_args.get('c_args', []),
+    link_args : extra_args.get('link_args', []),
+    dependencies : test_deps + extra_args.get('dependencies', []),
+    install_dir: installed_tests_execdir,
+    install: install,
+  )
+
+  suite = ['gmodule'] + extra_args.get('suite', [])
+  timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
+  test(test_name, exe, env : test_env, timeout : timeout, suite : suite)
+endforeach
diff --git a/gobject/tests/cxx.cpp b/gobject/tests/cxx.cpp
new file mode 100644
index 000000000..210c897ee
--- /dev/null
+++ b/gobject/tests/cxx.cpp
@@ -0,0 +1,26 @@
+/* Copyright (C) 2001 Sebastian Wilhelmi <wilhelmi google com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/* A trivial C++ program to be compiled in C++ mode, which
+ * smoketests that the GObject headers are valid C++ headers. */
+
+#include <glib-object.h>
+
+int
+main ()
+{
+  return 0;
+}
diff --git a/gobject/tests/meson.build b/gobject/tests/meson.build
index e97e1bc7e..54e0a76b9 100644
--- a/gobject/tests/meson.build
+++ b/gobject/tests/meson.build
@@ -29,6 +29,9 @@ marshalers_c = custom_target('marshalers_c',
 gobject_tests = {
   'qdata' : {},
   'boxed' : {},
+  'cxx' : {
+    'source' : ['cxx.cpp'],
+  },
   'enums' : {},
   'param' : {},
   'threadtests' : {},
diff --git a/tests/meson.build b/tests/meson.build
index 8caeb8243..8ab147d3e 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -51,11 +51,6 @@ tests = {
     'source': 'module-test.c',
     'c_args': ['-DMODULE_TYPE="plugin"'],
   },
-  'cxx-test' : {
-    'source' : 'cxx-test.cpp',
-    'include_directories' : gmoduleinc,
-    'dependencies' : [libgio_dep],
-  },
 }
 
 test_extra_programs = {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]