[v3,with,help] Re: run one test
Commit Message
From a6f669fc4091899c8ebc50159c9e4edc5cc4bdeb Mon Sep 17 00:00:00 2001
From: DJ Delorie <dj@redhat.com>
Date: Mon, 30 Sep 2019 16:04:52 -0400
Subject: Add onetest convenience target and makefile help text
Adds "make onetest" (or "make onecheck") for re-running just
one test. Also adds "make help" for help with our Makefile
targets, and adds a mini-help when you just run "make".
Comments
On 9/30/19 4:06 PM, DJ Delorie wrote:
>
> From a6f669fc4091899c8ebc50159c9e4edc5cc4bdeb Mon Sep 17 00:00:00 2001
> From: DJ Delorie <dj@redhat.com>
> Date: Mon, 30 Sep 2019 16:04:52 -0400
> Subject: Add onetest convenience target and makefile help text
>
> Adds "make onetest" (or "make onecheck") for re-running just
> one test. Also adds "make help" for help with our Makefile
> targets, and adds a mini-help when you just run "make".
>
> diff --git a/Makefile b/Makefile
> index 67ddd01bfe..f84450e60d 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -26,8 +26,17 @@ include Makeconfig
>
>
> # This is the default target; it makes everything except the tests.
> -.PHONY: all
> -all: lib others
> +.PHONY: all help minihelp
> +all: minihelp lib others
> +
> +help:
> + @sed '0,/^help-starts-here$$/d' Makefile.help
> +
> +minihelp:
> + @echo
> + @echo type \"make help\" for help with common glibc makefile targets
> + @echo
> +
>
> ifneq ($(AUTOCONF),no)
>
> @@ -499,3 +508,12 @@ FORCE:
>
> iconvdata/% localedata/% po/%: FORCE
> $(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F)
> +
> +# Convenience target to rerun one test, from the top of the build tree
> +# Example: make onetest t=wcsmbs/test-wcsnlen
> +onecheck : onetest
> +onetest :
I take this back, this looks dumb when I say it out loud. There isn't a gnu
standard here, so why not just stick to "test"?
e.g. make test t=foo/bar?
In summary:
make check == make tests == Run all standard tests.
make test == Run one test.
> + @-rm -f $(objpfx)$t.out
> + $(MAKE) subdir=$(dir $t) -C $(dir $t) ..=../ $(objpfx)$t.out
> + @cat $(objpfx)$t.test-result
> + @cat $(objpfx)$t.out
> diff --git a/Makefile.help b/Makefile.help
> new file mode 100644
> index 0000000000..445085be03
> --- /dev/null
> +++ b/Makefile.help
> @@ -0,0 +1,41 @@
> +# Copyright (C) 2019 Free Software Foundation, Inc.
> +# This file is part of the GNU C Library.
> +
> +# The GNU C 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.
> +
> +# The GNU C 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 the GNU C Library; if not, see
> +# <https://www.gnu.org/licenses/>.
> +
> +This is the file that gets printed when the user runs "make help",
> +starting just after the "help-starts-here" line.
> +
> +help-starts-here
> +
> +all
> + The usual default; builds everything but doesn't run the
> + tests.
> +tests
s/tests/check (or tests)/g
> + Runs the testsuite. Also "make check" is a shortcut for this
s/Runs the testsuite. .../Runs the standard set of tests./g.
Should list the preferred GNU target first.
> +
> +onetest (or onecheck)
Adjust according to above.
> + Runs one test. Use like this:
> + make onetest t=wcsmbs/test-wcsnlen
> + Note that this will rebuild the test if needed, but will not
> + rebuild what "make all" would have rebuilt.
> +
> +--
> +Other useful hints:
> +
> +$ rm $(objpfx)testroot.pristine/install.stamp
> + Forces the testroot to be reinstalled the next time you run
> + the testsuite (or just rm -rf testroot.pristine)
> +
>
@@ -26,8 +26,17 @@ include Makeconfig
# This is the default target; it makes everything except the tests.
-.PHONY: all
-all: lib others
+.PHONY: all help minihelp
+all: minihelp lib others
+
+help:
+ @sed '0,/^help-starts-here$$/d' Makefile.help
+
+minihelp:
+ @echo
+ @echo type \"make help\" for help with common glibc makefile targets
+ @echo
+
ifneq ($(AUTOCONF),no)
@@ -499,3 +508,12 @@ FORCE:
iconvdata/% localedata/% po/%: FORCE
$(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F)
+
+# Convenience target to rerun one test, from the top of the build tree
+# Example: make onetest t=wcsmbs/test-wcsnlen
+onecheck : onetest
+onetest :
+ @-rm -f $(objpfx)$t.out
+ $(MAKE) subdir=$(dir $t) -C $(dir $t) ..=../ $(objpfx)$t.out
+ @cat $(objpfx)$t.test-result
+ @cat $(objpfx)$t.out
new file mode 100644
@@ -0,0 +1,41 @@
+# Copyright (C) 2019 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C 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.
+
+# The GNU C 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 the GNU C Library; if not, see
+# <https://www.gnu.org/licenses/>.
+
+This is the file that gets printed when the user runs "make help",
+starting just after the "help-starts-here" line.
+
+help-starts-here
+
+all
+ The usual default; builds everything but doesn't run the
+ tests.
+tests
+ Runs the testsuite. Also "make check" is a shortcut for this
+
+onetest (or onecheck)
+ Runs one test. Use like this:
+ make onetest t=wcsmbs/test-wcsnlen
+ Note that this will rebuild the test if needed, but will not
+ rebuild what "make all" would have rebuilt.
+
+--
+Other useful hints:
+
+$ rm $(objpfx)testroot.pristine/install.stamp
+ Forces the testroot to be reinstalled the next time you run
+ the testsuite (or just rm -rf testroot.pristine)
+