History log of /netbsd-current/usr.bin/make/unit-tests/modmisc.mk
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.53 16-Jun-2023 rillig

tests/make: clean up tests for the ':M' and ':S' modifiers


Revision tags: netbsd-10-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.52 20-Dec-2020 rillig

make(1): move tests for indirect modifiers around

The next commit will error out on unknown modifiers and influence the
exit status. The test modmisc.mk contains both parse time tests and run
time tests. To prevent the latter from being run, the parse error is
moved to varmod-indirect.mk, which only contains parse time tests.


# 1.51 15-Nov-2020 rillig

make(1): update and add comments in tests

As a result of the new comments, some line numbers have changed in the
output of the tests. No other changes.


# 1.50 03-Nov-2020 rillig

make(1): clean up unit tests


# 1.49 24-Oct-2020 rillig

make(1): use consistent indentation in variable assignments

Initial work by "pkglint -F *.mk", manually adjusted in a few places.


# 1.48 24-Oct-2020 rillig

make(1): indent directives like .info, .if, .for consistently

Done by "pkglint -F *.mk", no manual corrections.


# 1.47 24-Oct-2020 rillig

make(1): use consistent RCS Id in test files


# 1.46 23-Aug-2020 rillig

make(1): move tests for the :tu and :_ modifiers into separate files


# 1.45 23-Aug-2020 rillig

make(1): move tests for :hash :range :localtime into separate files


# 1.44 23-Aug-2020 rillig

make(1): move tests for :H :E :R :T into separate files


# 1.43 16-Aug-2020 rillig

make(1): move tests for the :gmtime and ::= modifiers to separate files


# 1.42 16-Aug-2020 rillig

make(1): move tests for :S, :C, :@ from modmisc to their separate tests


# 1.41 09-Aug-2020 rillig

make(1): add more tests for Cmd_Exec


# 1.40 09-Aug-2020 rillig

make(1): add test for null byte in the output of a command


# 1.39 09-Aug-2020 rillig

make(1): add test that demonstrates possible delimiters for :S


# 1.38 09-Aug-2020 rillig

make(1): explain the mod-subst-dollar test


# 1.37 09-Aug-2020 rillig

make(1): add another test case for mod-subst-dollar

Having only 8 dollar signs does not prove anything. It might still be
the result of 3 substitutions in a row. Having 5 substitutions in a row
is less likely though.


# 1.36 08-Aug-2020 rillig

make(1): add test for the :gmtime modifier with indirect time


# 1.35 08-Aug-2020 rillig

make(1): add test for unknown sub-modifier of the :S modifier


# 1.34 07-Aug-2020 rillig

make(1): add tests for creative variable names in the :@ modifier


# 1.33 03-Aug-2020 rillig

make(1): in lint mode, disallow dynamic variable names in :@ modifier

This is an extremely obscure feature that hopefully nobody ever
considered using.


# 1.32 01-Aug-2020 rillig

make(1): add test for empty indirect modifier


# 1.31 01-Aug-2020 rillig

make(1): add tests for indirect modifiers


# 1.30 31-Jul-2020 rillig

make(1): add test for chaining the :S modifier without colon


# 1.29 29-Jul-2020 rillig

make(1): remove unnecessary assignments to st->next

No change in the size of the resulting binary. Apparently GCC already
knew these assignments were redundant.


# 1.28 29-Jul-2020 rillig

make(1): add unit tests for parse errors in modifiers


# 1.27 27-Jul-2020 rillig

make(1): replace macros with functions

Having the hidden parameter st->endc in the macro made it unnecessarily
difficult to understand the code.


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.52 20-Dec-2020 rillig

make(1): move tests for indirect modifiers around

The next commit will error out on unknown modifiers and influence the
exit status. The test modmisc.mk contains both parse time tests and run
time tests. To prevent the latter from being run, the parse error is
moved to varmod-indirect.mk, which only contains parse time tests.


# 1.51 15-Nov-2020 rillig

make(1): update and add comments in tests

As a result of the new comments, some line numbers have changed in the
output of the tests. No other changes.


# 1.50 03-Nov-2020 rillig

make(1): clean up unit tests


# 1.49 24-Oct-2020 rillig

make(1): use consistent indentation in variable assignments

Initial work by "pkglint -F *.mk", manually adjusted in a few places.


# 1.48 24-Oct-2020 rillig

make(1): indent directives like .info, .if, .for consistently

Done by "pkglint -F *.mk", no manual corrections.


# 1.47 24-Oct-2020 rillig

make(1): use consistent RCS Id in test files


# 1.46 23-Aug-2020 rillig

make(1): move tests for the :tu and :_ modifiers into separate files


# 1.45 23-Aug-2020 rillig

make(1): move tests for :hash :range :localtime into separate files


# 1.44 23-Aug-2020 rillig

make(1): move tests for :H :E :R :T into separate files


# 1.43 16-Aug-2020 rillig

make(1): move tests for the :gmtime and ::= modifiers to separate files


# 1.42 16-Aug-2020 rillig

make(1): move tests for :S, :C, :@ from modmisc to their separate tests


# 1.41 09-Aug-2020 rillig

make(1): add more tests for Cmd_Exec


# 1.40 09-Aug-2020 rillig

make(1): add test for null byte in the output of a command


# 1.39 09-Aug-2020 rillig

make(1): add test that demonstrates possible delimiters for :S


# 1.38 09-Aug-2020 rillig

make(1): explain the mod-subst-dollar test


# 1.37 09-Aug-2020 rillig

make(1): add another test case for mod-subst-dollar

Having only 8 dollar signs does not prove anything. It might still be
the result of 3 substitutions in a row. Having 5 substitutions in a row
is less likely though.


# 1.36 08-Aug-2020 rillig

make(1): add test for the :gmtime modifier with indirect time


# 1.35 08-Aug-2020 rillig

make(1): add test for unknown sub-modifier of the :S modifier


# 1.34 07-Aug-2020 rillig

make(1): add tests for creative variable names in the :@ modifier


# 1.33 03-Aug-2020 rillig

make(1): in lint mode, disallow dynamic variable names in :@ modifier

This is an extremely obscure feature that hopefully nobody ever
considered using.


# 1.32 01-Aug-2020 rillig

make(1): add test for empty indirect modifier


# 1.31 01-Aug-2020 rillig

make(1): add tests for indirect modifiers


# 1.30 31-Jul-2020 rillig

make(1): add test for chaining the :S modifier without colon


# 1.29 29-Jul-2020 rillig

make(1): remove unnecessary assignments to st->next

No change in the size of the resulting binary. Apparently GCC already
knew these assignments were redundant.


# 1.28 29-Jul-2020 rillig

make(1): add unit tests for parse errors in modifiers


# 1.27 27-Jul-2020 rillig

make(1): replace macros with functions

Having the hidden parameter st->endc in the macro made it unnecessarily
difficult to understand the code.


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.51 15-Nov-2020 rillig

make(1): update and add comments in tests

As a result of the new comments, some line numbers have changed in the
output of the tests. No other changes.


# 1.50 03-Nov-2020 rillig

make(1): clean up unit tests


# 1.49 24-Oct-2020 rillig

make(1): use consistent indentation in variable assignments

Initial work by "pkglint -F *.mk", manually adjusted in a few places.


# 1.48 24-Oct-2020 rillig

make(1): indent directives like .info, .if, .for consistently

Done by "pkglint -F *.mk", no manual corrections.


# 1.47 24-Oct-2020 rillig

make(1): use consistent RCS Id in test files


# 1.46 23-Aug-2020 rillig

make(1): move tests for the :tu and :_ modifiers into separate files


# 1.45 23-Aug-2020 rillig

make(1): move tests for :hash :range :localtime into separate files


# 1.44 23-Aug-2020 rillig

make(1): move tests for :H :E :R :T into separate files


# 1.43 16-Aug-2020 rillig

make(1): move tests for the :gmtime and ::= modifiers to separate files


# 1.42 16-Aug-2020 rillig

make(1): move tests for :S, :C, :@ from modmisc to their separate tests


# 1.41 09-Aug-2020 rillig

make(1): add more tests for Cmd_Exec


# 1.40 09-Aug-2020 rillig

make(1): add test for null byte in the output of a command


# 1.39 09-Aug-2020 rillig

make(1): add test that demonstrates possible delimiters for :S


# 1.38 09-Aug-2020 rillig

make(1): explain the mod-subst-dollar test


# 1.37 09-Aug-2020 rillig

make(1): add another test case for mod-subst-dollar

Having only 8 dollar signs does not prove anything. It might still be
the result of 3 substitutions in a row. Having 5 substitutions in a row
is less likely though.


# 1.36 08-Aug-2020 rillig

make(1): add test for the :gmtime modifier with indirect time


# 1.35 08-Aug-2020 rillig

make(1): add test for unknown sub-modifier of the :S modifier


# 1.34 07-Aug-2020 rillig

make(1): add tests for creative variable names in the :@ modifier


# 1.33 03-Aug-2020 rillig

make(1): in lint mode, disallow dynamic variable names in :@ modifier

This is an extremely obscure feature that hopefully nobody ever
considered using.


# 1.32 01-Aug-2020 rillig

make(1): add test for empty indirect modifier


# 1.31 01-Aug-2020 rillig

make(1): add tests for indirect modifiers


# 1.30 31-Jul-2020 rillig

make(1): add test for chaining the :S modifier without colon


# 1.29 29-Jul-2020 rillig

make(1): remove unnecessary assignments to st->next

No change in the size of the resulting binary. Apparently GCC already
knew these assignments were redundant.


# 1.28 29-Jul-2020 rillig

make(1): add unit tests for parse errors in modifiers


# 1.27 27-Jul-2020 rillig

make(1): replace macros with functions

Having the hidden parameter st->endc in the macro made it unnecessarily
difficult to understand the code.


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.50 03-Nov-2020 rillig

make(1): clean up unit tests


# 1.49 24-Oct-2020 rillig

make(1): use consistent indentation in variable assignments

Initial work by "pkglint -F *.mk", manually adjusted in a few places.


# 1.48 24-Oct-2020 rillig

make(1): indent directives like .info, .if, .for consistently

Done by "pkglint -F *.mk", no manual corrections.


# 1.47 24-Oct-2020 rillig

make(1): use consistent RCS Id in test files


# 1.46 23-Aug-2020 rillig

make(1): move tests for the :tu and :_ modifiers into separate files


# 1.45 23-Aug-2020 rillig

make(1): move tests for :hash :range :localtime into separate files


# 1.44 23-Aug-2020 rillig

make(1): move tests for :H :E :R :T into separate files


# 1.43 16-Aug-2020 rillig

make(1): move tests for the :gmtime and ::= modifiers to separate files


# 1.42 16-Aug-2020 rillig

make(1): move tests for :S, :C, :@ from modmisc to their separate tests


# 1.41 09-Aug-2020 rillig

make(1): add more tests for Cmd_Exec


# 1.40 09-Aug-2020 rillig

make(1): add test for null byte in the output of a command


# 1.39 09-Aug-2020 rillig

make(1): add test that demonstrates possible delimiters for :S


# 1.38 09-Aug-2020 rillig

make(1): explain the mod-subst-dollar test


# 1.37 09-Aug-2020 rillig

make(1): add another test case for mod-subst-dollar

Having only 8 dollar signs does not prove anything. It might still be
the result of 3 substitutions in a row. Having 5 substitutions in a row
is less likely though.


# 1.36 08-Aug-2020 rillig

make(1): add test for the :gmtime modifier with indirect time


# 1.35 08-Aug-2020 rillig

make(1): add test for unknown sub-modifier of the :S modifier


# 1.34 07-Aug-2020 rillig

make(1): add tests for creative variable names in the :@ modifier


# 1.33 03-Aug-2020 rillig

make(1): in lint mode, disallow dynamic variable names in :@ modifier

This is an extremely obscure feature that hopefully nobody ever
considered using.


# 1.32 01-Aug-2020 rillig

make(1): add test for empty indirect modifier


# 1.31 01-Aug-2020 rillig

make(1): add tests for indirect modifiers


# 1.30 31-Jul-2020 rillig

make(1): add test for chaining the :S modifier without colon


# 1.29 29-Jul-2020 rillig

make(1): remove unnecessary assignments to st->next

No change in the size of the resulting binary. Apparently GCC already
knew these assignments were redundant.


# 1.28 29-Jul-2020 rillig

make(1): add unit tests for parse errors in modifiers


# 1.27 27-Jul-2020 rillig

make(1): replace macros with functions

Having the hidden parameter st->endc in the macro made it unnecessarily
difficult to understand the code.


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.49 24-Oct-2020 rillig

make(1): use consistent indentation in variable assignments

Initial work by "pkglint -F *.mk", manually adjusted in a few places.


# 1.48 24-Oct-2020 rillig

make(1): indent directives like .info, .if, .for consistently

Done by "pkglint -F *.mk", no manual corrections.


# 1.47 24-Oct-2020 rillig

make(1): use consistent RCS Id in test files


# 1.46 23-Aug-2020 rillig

make(1): move tests for the :tu and :_ modifiers into separate files


# 1.45 23-Aug-2020 rillig

make(1): move tests for :hash :range :localtime into separate files


# 1.44 23-Aug-2020 rillig

make(1): move tests for :H :E :R :T into separate files


# 1.43 16-Aug-2020 rillig

make(1): move tests for the :gmtime and ::= modifiers to separate files


# 1.42 16-Aug-2020 rillig

make(1): move tests for :S, :C, :@ from modmisc to their separate tests


# 1.41 09-Aug-2020 rillig

make(1): add more tests for Cmd_Exec


# 1.40 09-Aug-2020 rillig

make(1): add test for null byte in the output of a command


# 1.39 09-Aug-2020 rillig

make(1): add test that demonstrates possible delimiters for :S


# 1.38 09-Aug-2020 rillig

make(1): explain the mod-subst-dollar test


# 1.37 09-Aug-2020 rillig

make(1): add another test case for mod-subst-dollar

Having only 8 dollar signs does not prove anything. It might still be
the result of 3 substitutions in a row. Having 5 substitutions in a row
is less likely though.


# 1.36 08-Aug-2020 rillig

make(1): add test for the :gmtime modifier with indirect time


# 1.35 08-Aug-2020 rillig

make(1): add test for unknown sub-modifier of the :S modifier


# 1.34 07-Aug-2020 rillig

make(1): add tests for creative variable names in the :@ modifier


# 1.33 03-Aug-2020 rillig

make(1): in lint mode, disallow dynamic variable names in :@ modifier

This is an extremely obscure feature that hopefully nobody ever
considered using.


# 1.32 01-Aug-2020 rillig

make(1): add test for empty indirect modifier


# 1.31 01-Aug-2020 rillig

make(1): add tests for indirect modifiers


# 1.30 31-Jul-2020 rillig

make(1): add test for chaining the :S modifier without colon


# 1.29 29-Jul-2020 rillig

make(1): remove unnecessary assignments to st->next

No change in the size of the resulting binary. Apparently GCC already
knew these assignments were redundant.


# 1.28 29-Jul-2020 rillig

make(1): add unit tests for parse errors in modifiers


# 1.27 27-Jul-2020 rillig

make(1): replace macros with functions

Having the hidden parameter st->endc in the macro made it unnecessarily
difficult to understand the code.


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.46 23-Aug-2020 rillig

make(1): move tests for the :tu and :_ modifiers into separate files


# 1.45 23-Aug-2020 rillig

make(1): move tests for :hash :range :localtime into separate files


# 1.44 23-Aug-2020 rillig

make(1): move tests for :H :E :R :T into separate files


# 1.43 16-Aug-2020 rillig

make(1): move tests for the :gmtime and ::= modifiers to separate files


# 1.42 16-Aug-2020 rillig

make(1): move tests for :S, :C, :@ from modmisc to their separate tests


# 1.41 09-Aug-2020 rillig

make(1): add more tests for Cmd_Exec


# 1.40 09-Aug-2020 rillig

make(1): add test for null byte in the output of a command


# 1.39 09-Aug-2020 rillig

make(1): add test that demonstrates possible delimiters for :S


# 1.38 09-Aug-2020 rillig

make(1): explain the mod-subst-dollar test


# 1.37 09-Aug-2020 rillig

make(1): add another test case for mod-subst-dollar

Having only 8 dollar signs does not prove anything. It might still be
the result of 3 substitutions in a row. Having 5 substitutions in a row
is less likely though.


# 1.36 08-Aug-2020 rillig

make(1): add test for the :gmtime modifier with indirect time


# 1.35 08-Aug-2020 rillig

make(1): add test for unknown sub-modifier of the :S modifier


# 1.34 07-Aug-2020 rillig

make(1): add tests for creative variable names in the :@ modifier


# 1.33 03-Aug-2020 rillig

make(1): in lint mode, disallow dynamic variable names in :@ modifier

This is an extremely obscure feature that hopefully nobody ever
considered using.


# 1.32 01-Aug-2020 rillig

make(1): add test for empty indirect modifier


# 1.31 01-Aug-2020 rillig

make(1): add tests for indirect modifiers


# 1.30 31-Jul-2020 rillig

make(1): add test for chaining the :S modifier without colon


# 1.29 29-Jul-2020 rillig

make(1): remove unnecessary assignments to st->next

No change in the size of the resulting binary. Apparently GCC already
knew these assignments were redundant.


# 1.28 29-Jul-2020 rillig

make(1): add unit tests for parse errors in modifiers


# 1.27 27-Jul-2020 rillig

make(1): replace macros with functions

Having the hidden parameter st->endc in the macro made it unnecessarily
difficult to understand the code.


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.43 16-Aug-2020 rillig

make(1): move tests for the :gmtime and ::= modifiers to separate files


# 1.42 16-Aug-2020 rillig

make(1): move tests for :S, :C, :@ from modmisc to their separate tests


# 1.41 09-Aug-2020 rillig

make(1): add more tests for Cmd_Exec


# 1.40 09-Aug-2020 rillig

make(1): add test for null byte in the output of a command


# 1.39 09-Aug-2020 rillig

make(1): add test that demonstrates possible delimiters for :S


# 1.38 09-Aug-2020 rillig

make(1): explain the mod-subst-dollar test


# 1.37 09-Aug-2020 rillig

make(1): add another test case for mod-subst-dollar

Having only 8 dollar signs does not prove anything. It might still be
the result of 3 substitutions in a row. Having 5 substitutions in a row
is less likely though.


# 1.36 08-Aug-2020 rillig

make(1): add test for the :gmtime modifier with indirect time


# 1.35 08-Aug-2020 rillig

make(1): add test for unknown sub-modifier of the :S modifier


# 1.34 07-Aug-2020 rillig

make(1): add tests for creative variable names in the :@ modifier


# 1.33 03-Aug-2020 rillig

make(1): in lint mode, disallow dynamic variable names in :@ modifier

This is an extremely obscure feature that hopefully nobody ever
considered using.


# 1.32 01-Aug-2020 rillig

make(1): add test for empty indirect modifier


# 1.31 01-Aug-2020 rillig

make(1): add tests for indirect modifiers


# 1.30 31-Jul-2020 rillig

make(1): add test for chaining the :S modifier without colon


# 1.29 29-Jul-2020 rillig

make(1): remove unnecessary assignments to st->next

No change in the size of the resulting binary. Apparently GCC already
knew these assignments were redundant.


# 1.28 29-Jul-2020 rillig

make(1): add unit tests for parse errors in modifiers


# 1.27 27-Jul-2020 rillig

make(1): replace macros with functions

Having the hidden parameter st->endc in the macro made it unnecessarily
difficult to understand the code.


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.41 09-Aug-2020 rillig

make(1): add more tests for Cmd_Exec


# 1.40 09-Aug-2020 rillig

make(1): add test for null byte in the output of a command


# 1.39 09-Aug-2020 rillig

make(1): add test that demonstrates possible delimiters for :S


# 1.38 09-Aug-2020 rillig

make(1): explain the mod-subst-dollar test


# 1.37 09-Aug-2020 rillig

make(1): add another test case for mod-subst-dollar

Having only 8 dollar signs does not prove anything. It might still be
the result of 3 substitutions in a row. Having 5 substitutions in a row
is less likely though.


# 1.36 08-Aug-2020 rillig

make(1): add test for the :gmtime modifier with indirect time


# 1.35 08-Aug-2020 rillig

make(1): add test for unknown sub-modifier of the :S modifier


# 1.34 07-Aug-2020 rillig

make(1): add tests for creative variable names in the :@ modifier


# 1.33 03-Aug-2020 rillig

make(1): in lint mode, disallow dynamic variable names in :@ modifier

This is an extremely obscure feature that hopefully nobody ever
considered using.


# 1.32 01-Aug-2020 rillig

make(1): add test for empty indirect modifier


# 1.31 01-Aug-2020 rillig

make(1): add tests for indirect modifiers


# 1.30 31-Jul-2020 rillig

make(1): add test for chaining the :S modifier without colon


# 1.29 29-Jul-2020 rillig

make(1): remove unnecessary assignments to st->next

No change in the size of the resulting binary. Apparently GCC already
knew these assignments were redundant.


# 1.28 29-Jul-2020 rillig

make(1): add unit tests for parse errors in modifiers


# 1.27 27-Jul-2020 rillig

make(1): replace macros with functions

Having the hidden parameter st->endc in the macro made it unnecessarily
difficult to understand the code.


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.36 08-Aug-2020 rillig

make(1): add test for the :gmtime modifier with indirect time


# 1.35 08-Aug-2020 rillig

make(1): add test for unknown sub-modifier of the :S modifier


# 1.34 07-Aug-2020 rillig

make(1): add tests for creative variable names in the :@ modifier


# 1.33 03-Aug-2020 rillig

make(1): in lint mode, disallow dynamic variable names in :@ modifier

This is an extremely obscure feature that hopefully nobody ever
considered using.


# 1.32 01-Aug-2020 rillig

make(1): add test for empty indirect modifier


# 1.31 01-Aug-2020 rillig

make(1): add tests for indirect modifiers


# 1.30 31-Jul-2020 rillig

make(1): add test for chaining the :S modifier without colon


# 1.29 29-Jul-2020 rillig

make(1): remove unnecessary assignments to st->next

No change in the size of the resulting binary. Apparently GCC already
knew these assignments were redundant.


# 1.28 29-Jul-2020 rillig

make(1): add unit tests for parse errors in modifiers


# 1.27 27-Jul-2020 rillig

make(1): replace macros with functions

Having the hidden parameter st->endc in the macro made it unnecessarily
difficult to understand the code.


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.33 03-Aug-2020 rillig

make(1): in lint mode, disallow dynamic variable names in :@ modifier

This is an extremely obscure feature that hopefully nobody ever
considered using.


# 1.32 01-Aug-2020 rillig

make(1): add test for empty indirect modifier


# 1.31 01-Aug-2020 rillig

make(1): add tests for indirect modifiers


# 1.30 31-Jul-2020 rillig

make(1): add test for chaining the :S modifier without colon


# 1.29 29-Jul-2020 rillig

make(1): remove unnecessary assignments to st->next

No change in the size of the resulting binary. Apparently GCC already
knew these assignments were redundant.


# 1.28 29-Jul-2020 rillig

make(1): add unit tests for parse errors in modifiers


# 1.27 27-Jul-2020 rillig

make(1): replace macros with functions

Having the hidden parameter st->endc in the macro made it unnecessarily
difficult to understand the code.


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.32 01-Aug-2020 rillig

make(1): add test for empty indirect modifier


# 1.31 01-Aug-2020 rillig

make(1): add tests for indirect modifiers


# 1.30 31-Jul-2020 rillig

make(1): add test for chaining the :S modifier without colon


# 1.29 29-Jul-2020 rillig

make(1): remove unnecessary assignments to st->next

No change in the size of the resulting binary. Apparently GCC already
knew these assignments were redundant.


# 1.28 29-Jul-2020 rillig

make(1): add unit tests for parse errors in modifiers


# 1.27 27-Jul-2020 rillig

make(1): replace macros with functions

Having the hidden parameter st->endc in the macro made it unnecessarily
difficult to understand the code.


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.30 31-Jul-2020 rillig

make(1): add test for chaining the :S modifier without colon


# 1.29 29-Jul-2020 rillig

make(1): remove unnecessary assignments to st->next

No change in the size of the resulting binary. Apparently GCC already
knew these assignments were redundant.


# 1.28 29-Jul-2020 rillig

make(1): add unit tests for parse errors in modifiers


# 1.27 27-Jul-2020 rillig

make(1): replace macros with functions

Having the hidden parameter st->endc in the macro made it unnecessarily
difficult to understand the code.


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.29 29-Jul-2020 rillig

make(1): remove unnecessary assignments to st->next

No change in the size of the resulting binary. Apparently GCC already
knew these assignments were redundant.


# 1.28 29-Jul-2020 rillig

make(1): add unit tests for parse errors in modifiers


# 1.27 27-Jul-2020 rillig

make(1): replace macros with functions

Having the hidden parameter st->endc in the macro made it unnecessarily
difficult to understand the code.


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.27 27-Jul-2020 rillig

make(1): replace macros with functions

Having the hidden parameter st->endc in the macro made it unnecessarily
difficult to understand the code.


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.26 26-Jul-2020 rillig

make(1): add basic tests for the :S modifier


# 1.25 26-Jul-2020 rillig

make(1): fix bug in :S modifier from 2020-07-19


# 1.24 26-Jul-2020 rillig

make(1): demonstrate bug in the :S modifier with the 1 modifier

The bug has been introduced in var.c r1.268 on 2020-07-19.


# 1.23 26-Jul-2020 rillig

make(1): use consistent test names in modmisc.mk


# 1.22 25-Jul-2020 rillig

make(1): add test for brk_string with more than 50 words


# 1.21 23-Jul-2020 rillig

make(1): demonstrate wrong error message about missing delimiter

The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.20 21-Jul-2020 rillig

make(1): add test for :S,,sep

The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.

This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.


# 1.19 21-Jul-2020 rillig

make(1): add test for :Q and .newline


# 1.18 20-Jul-2020 rillig

make(1): add test for nested assignments

This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.


# 1.17 20-Jul-2020 rillig

make(1): add test for :tu modifier with spaces


# 1.16 19-Jul-2020 rillig

make(1): add tests for the ::= modifiers


# 1.15 19-Jul-2020 rillig

make(1): add tests for maximum number of capturing groups in :C


# 1.14 19-Jul-2020 rillig

make(1): demonstrate off-by-one bug in :C modifier


# 1.13 19-Jul-2020 rillig

make(1): add test for stray dollar signs in :@ modifier


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.12 04-Jul-2020 rillig

make(1): add tests for dollar characters in modifiers


# 1.11 04-Jul-2020 rillig

make(1): expand the test for variable expansion in the :@ modifier


# 1.10 04-Jul-2020 rillig

make(1): add debugging output for :@ modifier

The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.


# 1.9 04-Jul-2020 rillig

make(1): add test for an obscure edge case of using the :@ modifier


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).


# 1.8 04-Jul-2020 rillig

make(1): add tests for the :S and :C modifiers


# 1.7 03-Jul-2020 rillig

make(1): clean up documentation, small refactorings for variables

- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings


# 1.6 03-Jul-2020 rillig

make(1): fix bug in :E modifier, introduced in r1.239 today

That case was not covered by the tests before.


# 1.5 03-Jul-2020 rillig

make(1): add test for :R modifier


# 1.4 03-Jul-2020 rillig

make(1): add more tests for :H, :T and :E modifiers


# 1.3 03-Jul-2020 rillig

make(1): add test for :H and :T modifiers with several words


# 1.2 03-Jul-2020 rillig

make(1): add missing test for the :H and :T modifiers


Revision tags: phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.1 21-Aug-2014 apb

Give each group of tests its own output file.

* Rename each sub-makefile to *.mk;
* Add a *.exp file of expected output for each sub-makefile;
* Remove test.exp, which is replaced by all the other *.exp files.
* Use suffix rules to generate *.rawout and *.out files for
each test case.
* Rewrite the test and accept targets to adapt to the new way.

The old (now removed) test.exp file is almost identical to the
concatenation (in the correct order) of all the new *.exp files. There
are expected differences in makefile names embedded in the output, and
the new "exit status" lines. Some old "*** Error code 1 (ignored)"
lines are also removed (replaced by new "exit status 1" lines).