X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=doc%2Fgnulib-tool.texi;h=0b18ffb0edc650e66fcb4a2022f38b324ceb4150;hb=4bb09526539ef33e14c130d2b22e6d49dfdfe3b0;hp=3d6af14295947a515a3dfe31a369658af71fc57e;hpb=eae57aa06af30e0b455f166268b0a472ef4a0d59;p=gnulib.git diff --git a/doc/gnulib-tool.texi b/doc/gnulib-tool.texi index 3d6af1429..0b18ffb0e 100644 --- a/doc/gnulib-tool.texi +++ b/doc/gnulib-tool.texi @@ -1,10 +1,10 @@ @node Invoking gnulib-tool @chapter Invoking gnulib-tool -@c Copyright (C) 2005-2008 Free Software Foundation, Inc. +@c Copyright (C) 2005-2009 Free Software Foundation, Inc. @c Permission is granted to copy, distribute and/or modify this document -@c under the terms of the GNU Free Documentation License, Version 1.2 or +@c under the terms of the GNU Free Documentation License, Version 1.3 or @c any later version published by the Free Software Foundation; with no @c Invariant Sections, with no Front-Cover Texts, and with no Back-Cover @c Texts. A copy of the license is included in the ``GNU Free @@ -21,6 +21,17 @@ growing number of modules this becomes tedious. @command{gnulib-tool} simplifies the management of source files, @file{Makefile.am}s and @file{configure.ac} in packages incorporating Gnulib modules. +@file{gnulib-tool} is not installed in a standard directory that is +contained in the @code{PATH} variable. It needs to be run directly in +the directory that contains the Gnulib source code. You can do this +either by specifying the absolute filename of @file{gnulib-tool}, or +you can also use a symbolic link from a place inside your @code{PATH} +to the @file{gnulib-tool} file of your preferred and most up-to-date +Gnulib checkout, like this: +@smallexample +$ ln -s $HOME/gnu/src/gnulib.git/gnulib-tool $HOME/bin/gnulib-tool +@end smallexample + Run @samp{gnulib-tool --help} for information. To get familiar with @command{gnulib-tool} without affecting your sources, you can also try some commands with the option @samp{--dry-run}; then @@ -35,6 +46,7 @@ a real run without changing anything. * gettextize and autopoint:: Caveat: @code{gettextize} and @code{autopoint} users! * Localization:: Handling Gnulib's own message translations. * VCS Issues:: Integration with Version Control Systems. +* Unit tests:: Bundling the unit tests of the Gnulib modules. @end menu @@ -540,3 +552,39 @@ Also it does not report in the ChangeLogs the files that it had to add because they were missing. @end itemize + + +@node Unit tests +@section Bundling the unit tests of the Gnulib modules + +You can bundle the unit tests of the Gnulib modules together with your +package, through the @samp{--with-tests} option. Together with +@samp{--with-tests}, you also specify the directory for these tests +through the @samp{--tests-base} option. Of course, you need to add this +directory to the @code{SUBDIRS} variable in the @code{Makefile.am} of +the parent directory. + +The advantage of having the unit tests bundled is that when your program +has a problem on a particular platform, running the unit tests may help +determine quickly if the problem is on Gnulib's side or on your package's +side. Also, it helps verifying Gnulib's portability, of course. + +The unit tests will be compiled and run when the user runs @samp{make check}. +When the user runs only @samp{make}, the unit tests will not be compiled. + +In the @code{SUBDIRS} variable, it is useful to put the Gnulib tests directory +after the directory containing the other tests, not before: + +@smallexample +SUBDIRS = gnulib-lib src man tests gnulib-tests +@end smallexample + +@noindent +This will ensure that on platforms where there are test failures in either +directory, users will see and report the failures from the tests of your +program. + +Note: In packages which use more than one invocation of @code{gnulib-tool} +in the scope of the same @code{configure.ac}, you cannot use +@samp{--with-tests}. You will have to use a separate @code{configure.ac} +in this case.