Home | History | Annotate | Download | only in unit-tests
History log of /src/usr.bin/make/unit-tests/modmisc.mk
RevisionDateAuthorComments
 1.53  16-Jun-2023  rillig tests/make: clean up tests for the ':M' and ':S' modifiers
 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
 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).

RSS XML Feed