bug-gnulib
[Top][All Lists]
Advanced

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

Re: extra test module categories


From: Bruno Haible
Subject: Re: extra test module categories
Date: Sun, 28 Mar 2010 17:33:07 +0100
User-agent: KMail/1.9.9

And this makes it possible to declare part of the tests of a module
as c++-test or longrunning-test or similar.


2010-03-28  Bruno Haible  <address@hidden>

        gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
        * gnulib-tool (func_exists_module): New function, extracted from
        func_verify_module.
        (func_verify_module): Use it.
        (func_get_dependencies): Synthetize a dependency from 'foo-tests' to
        'foo' only if 'foo' exists.
        * doc/gnulib.texi (Extra tests modules): Explain how to split a tests
        module.

--- doc/gnulib.texi.orig        Sun Mar 28 18:17:43 2010
+++ doc/gnulib.texi     Sun Mar 28 18:03:56 2010
@@ -750,6 +750,12 @@
 longrunning-test
 @end example
 
+If only a part of a test deserves a particular status attribute, you
+can split the module into a primary and a secondary test module,
+say @code{foo-tests} and @code{foo-extra-tests}.  Then add a dependency
+from @code{foo-tests} to @code{foo-extra-tests}, and mark the
address@hidden with the particular status attribute.
+
 
 @node A C++ namespace for gnulib
 @section A C++ namespace for gnulib
--- gnulib-tool.orig    Sun Mar 28 18:17:43 2010
+++ gnulib-tool Sun Mar 28 18:16:33 2010
@@ -1379,6 +1379,24 @@
       | LC_ALL=C sort -u
 }
 
+# func_exists_module module
+# tests whether a module, given by name, exists
+# Input:
+# - local_gnulib_dir  from --local-dir
+func_exists_module ()
+{
+  { test -f "$gnulib_dir/modules/$1" \
+    || { test -n "$local_gnulib_dir" && test -d "$local_gnulib_dir/modules" \
+         && test -f "$local_gnulib_dir/modules/$1"; }; } \
+  && test "CVS" != "$1" \
+  && test "ChangeLog" != "$1" \
+  && test "COPYING" != "$1" \
+  && test "README" != "$1" \
+  && test "TEMPLATE" != "$1" \
+  && test "TEMPLATE-EXTENDED" != "$1" \
+  && test "TEMPLATE-TESTS" != "$1"
+}
+
 # func_verify_module
 # verifies a module name
 # Input:
@@ -1386,16 +1404,7 @@
 # - module          module name argument
 func_verify_module ()
 {
-  if { test -f "$gnulib_dir/modules/$module" \
-       || { test -n "$local_gnulib_dir" && test -d "$local_gnulib_dir/modules" 
\
-            && test -f "$local_gnulib_dir/modules/$module"; }; } \
-     && test "CVS" != "$module" \
-     && test "ChangeLog" != "$module" \
-     && test "COPYING" != "$module" \
-     && test "README" != "$module" \
-     && test "TEMPLATE" != "$module" \
-     && test "TEMPLATE-EXTENDED" != "$module" \
-     && test "TEMPLATE-TESTS" != "$module"; then
+  if func_exists_module "$module"; then
     # OK, $module is a correct module name.
     # Verify that building the module description with 'patch' succeeds.
     func_lookup_file "modules/$module"
@@ -1954,12 +1963,14 @@
 # - modcache          true or false, from --cache-modules/--no-cache-modules
 func_get_dependencies ()
 {
-  # ${module}-tests always implicitly depends on ${module}.
+  # ${module}-tests implicitly depends on ${module}, if that module exists.
   case "$1" in
     *-tests)
       fgd1="$1"
       func_remove_suffix fgd1 '-tests'
-      echo "$fgd1"
+      if func_exists_module "$fgd1"; then
+        echo "$fgd1"
+      fi
       ;;
   esac
   # Then the explicit dependencies listed in the module description.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]