Mercurial > hg > octave-lyh > gnulib-hg
changeset 13081:012563ccbd85
gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 28 Mar 2010 18:32:36 +0200 |
parents | fad0b62b5bf5 |
children | d7eed0b7ef06 |
files | ChangeLog doc/gnulib.texi gnulib-tool |
diffstat | 3 files changed, 40 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2010-03-28 Bruno Haible <bruno@clisp.org> + + 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. + 2010-03-28 Bruno Haible <bruno@clisp.org> gnulib-tool: Add support for special categories of tests.
--- a/doc/gnulib.texi +++ b/doc/gnulib.texi @@ -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 +@code{foo-extra-tests} with the particular status attribute. + @node A C++ namespace for gnulib @section A C++ namespace for gnulib
--- a/gnulib-tool +++ b/gnulib-tool @@ -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.