#
1.20 |
|
20-Apr-2024 |
rillig |
make: provide more context information for parse/evaluate errors
|
#
1.19 |
|
19-Nov-2023 |
rillig |
tests/make: replace 'variable expression' with 'expression'
Each expression is based on a variable, there's no need for the verbosity. The wording in make's diagnostics will be changed in a follow-up commit.
|
#
1.18 |
|
01-Jun-2023 |
rillig |
tests/make: force line-based diagnostics to be listed in the tests
This way, contradictions between the intended output and the actual output are closer together and have a better chance of being spotted.
|
Revision tags: netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base
|
#
1.17 |
|
08-Sep-2022 |
rillig |
tests/make: extend tests for the ':=' assignment operator
|
#
1.16 |
|
28-Dec-2021 |
rillig |
tests/make: use tabs instead of spaces for indentation
|
#
1.15 |
|
30-Nov-2021 |
rillig |
tests/make: test and document .MAKE.SAVE_DOLLARS and ':='
|
#
1.14 |
|
20-Nov-2021 |
rillig |
tests/make: finish a previously unfinished sentence in a comment
|
#
1.13 |
|
13-Nov-2021 |
rillig |
tests/make: extend test for undefined variable in doubly indirect ':='
Just to prevent a half-baked fix to the current behavior that would concatenate the modifiers of the two expressions, leading to ${LATER:value=sysv:tl} in this case. That expression would be interpreted as having only a single modifier that would replace the suffix 'value' with 'sysv:tl'. This is because the SysV modifier ':from=to' spans until the end of the expression.
|
#
1.12 |
|
13-Nov-2021 |
rillig |
tests/make: test double indirection in ':=' with undefined variable
Reported by Simon J Gerraty via private mail.
This edge case has been handled in essentially the same way since at least 2000-05-30, probably several years earlier as well. The test file is:
---- snip ---- .undef LATER .undef later INDIRECT:= ${LATER:S,value,replaced,} indirect:= ${INDIRECT:C,S,s,} # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "" . error .else . warning XXX Neither branch should be taken. .endif LATER= uppercase-value later= lowercase-value # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "uppercase-replaced" . warning XXX Neither branch should be taken. .else . error .endif
all: @:; ---- snap ----
The output from 'make -r -f later.mk' is:
make-2000.05.30.02.32.21 | make: Unknown modifier 's' | | "later.mk", line 9: Need an operator | make: Unknown modifier 's' | | "later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2000.12.30.16.38.22
The pathnames in the error message gets absolute:
make-2001.01.23.02.48.05 | make: Unknown modifier 's' | | ".../later.mk", line 9: Need an operator | make: Unknown modifier 's' | | ".../later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2001.01.23.02.48.05
All error messages get 'make:' as a common prefix:
make-2001.02.23.21.11.38 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | exit status 1 make-2001.05.29.17.37.52
The 'stopped in' gets added:
make-2001.06.12.23.36.18 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2002.02.21.22.21.34
The empty lines between the error messages get removed.
make-2002.03.21.11.42.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2009.10.15.02.27.44
The error message for unknown directives gets more helpful:
make-2009.11.19.06.48.37 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Unknown directive | make: Unknown modifier 's' | make: ".../later.mk" line 15: Unknown directive | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2010.02.22.19.20.33
The directives '.error', '.warning' and '.info' get added:
make-2010.04.29.23.12.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | exit status 0 make-2020.12.20.19.37.23
The error message about an unknown variable modifier gets line number information:
make-2020.12.20.19.47.34 | make: ".../later.mk" line 6: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1 make-2021.02.23.15.07.58
The error message about an unknown variable modifier gets more context than only a single letter:
make-2021.02.23.15.19.41 | make: ".../later.mk" line 6: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.11 |
|
01-Jan-2021 |
sjg |
var-op-expand needs MAKE.SAVE_DOLLARS=yes
|
#
1.10 |
|
28-Dec-2020 |
rillig |
make(1): extend test for modifier parts in ':=' assignments
|
#
1.9 |
|
27-Dec-2020 |
rillig |
make(1): add test for modifier parts in ':=' assignments
|
#
1.8 |
|
27-Dec-2020 |
rillig |
make(1): fix edge case in := with undefined in variable name
Previously, the assignment "VAR${UNDEF} := value" actually assigned to 2 variables. See var-op-expand.mk for details.
|
#
1.7 |
|
27-Dec-2020 |
rillig |
make(1): move test result of var-op-expand.mk from exp to mk
This makes it easier to run this test in older versions of make. Empty output means success.
|
#
1.6 |
|
27-Dec-2020 |
rillig |
make(1): add more tests for ':=' assignments
|
#
1.5 |
|
27-Dec-2020 |
rillig |
make(1): add tests for variable assignments using the ':=' operator
|
#
1.4 |
|
08-Nov-2020 |
rillig |
make(1): fix bug description of using := with undefined variable
In 1993, the variable names could not refer to other variables yet. This has been made possible on 2000-05-11, when the "cool magic" was added that allows assigning to VAR.${param}.
|
#
1.3 |
|
08-Nov-2020 |
rillig |
make(1): add test for edge case in resolving undefined variables
|
#
1.2 |
|
16-Aug-2020 |
rillig |
make(1): describe the purpose of each newly added unit test dummy
|
#
1.1 |
|
16-Aug-2020 |
rillig |
make(1): add dummies for fine-grained tests, one per single feature
The test names have been derived from the current manual page.
All these tests are dummies right now, and the code from the existing tests will be moved into the new tests step by step.
This is done to prevent modmisc, escape, varmod-edge and varmisc from growing without any bounds, and to reduce the side-effects of one test to the others.
|
#
1.19 |
|
19-Nov-2023 |
rillig |
tests/make: replace 'variable expression' with 'expression'
Each expression is based on a variable, there's no need for the verbosity. The wording in make's diagnostics will be changed in a follow-up commit.
|
#
1.18 |
|
01-Jun-2023 |
rillig |
tests/make: force line-based diagnostics to be listed in the tests
This way, contradictions between the intended output and the actual output are closer together and have a better chance of being spotted.
|
Revision tags: netbsd-10-0-RC1 netbsd-10-base
|
#
1.17 |
|
08-Sep-2022 |
rillig |
tests/make: extend tests for the ':=' assignment operator
|
#
1.16 |
|
28-Dec-2021 |
rillig |
tests/make: use tabs instead of spaces for indentation
|
#
1.15 |
|
30-Nov-2021 |
rillig |
tests/make: test and document .MAKE.SAVE_DOLLARS and ':='
|
#
1.14 |
|
20-Nov-2021 |
rillig |
tests/make: finish a previously unfinished sentence in a comment
|
#
1.13 |
|
13-Nov-2021 |
rillig |
tests/make: extend test for undefined variable in doubly indirect ':='
Just to prevent a half-baked fix to the current behavior that would concatenate the modifiers of the two expressions, leading to ${LATER:value=sysv:tl} in this case. That expression would be interpreted as having only a single modifier that would replace the suffix 'value' with 'sysv:tl'. This is because the SysV modifier ':from=to' spans until the end of the expression.
|
#
1.12 |
|
13-Nov-2021 |
rillig |
tests/make: test double indirection in ':=' with undefined variable
Reported by Simon J Gerraty via private mail.
This edge case has been handled in essentially the same way since at least 2000-05-30, probably several years earlier as well. The test file is:
---- snip ---- .undef LATER .undef later INDIRECT:= ${LATER:S,value,replaced,} indirect:= ${INDIRECT:C,S,s,} # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "" . error .else . warning XXX Neither branch should be taken. .endif LATER= uppercase-value later= lowercase-value # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "uppercase-replaced" . warning XXX Neither branch should be taken. .else . error .endif
all: @:; ---- snap ----
The output from 'make -r -f later.mk' is:
make-2000.05.30.02.32.21 | make: Unknown modifier 's' | | "later.mk", line 9: Need an operator | make: Unknown modifier 's' | | "later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2000.12.30.16.38.22
The pathnames in the error message gets absolute:
make-2001.01.23.02.48.05 | make: Unknown modifier 's' | | ".../later.mk", line 9: Need an operator | make: Unknown modifier 's' | | ".../later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2001.01.23.02.48.05
All error messages get 'make:' as a common prefix:
make-2001.02.23.21.11.38 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | exit status 1 make-2001.05.29.17.37.52
The 'stopped in' gets added:
make-2001.06.12.23.36.18 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2002.02.21.22.21.34
The empty lines between the error messages get removed.
make-2002.03.21.11.42.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2009.10.15.02.27.44
The error message for unknown directives gets more helpful:
make-2009.11.19.06.48.37 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Unknown directive | make: Unknown modifier 's' | make: ".../later.mk" line 15: Unknown directive | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2010.02.22.19.20.33
The directives '.error', '.warning' and '.info' get added:
make-2010.04.29.23.12.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | exit status 0 make-2020.12.20.19.37.23
The error message about an unknown variable modifier gets line number information:
make-2020.12.20.19.47.34 | make: ".../later.mk" line 6: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1 make-2021.02.23.15.07.58
The error message about an unknown variable modifier gets more context than only a single letter:
make-2021.02.23.15.19.41 | make: ".../later.mk" line 6: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.11 |
|
01-Jan-2021 |
sjg |
var-op-expand needs MAKE.SAVE_DOLLARS=yes
|
#
1.10 |
|
28-Dec-2020 |
rillig |
make(1): extend test for modifier parts in ':=' assignments
|
#
1.9 |
|
27-Dec-2020 |
rillig |
make(1): add test for modifier parts in ':=' assignments
|
#
1.8 |
|
27-Dec-2020 |
rillig |
make(1): fix edge case in := with undefined in variable name
Previously, the assignment "VAR${UNDEF} := value" actually assigned to 2 variables. See var-op-expand.mk for details.
|
#
1.7 |
|
27-Dec-2020 |
rillig |
make(1): move test result of var-op-expand.mk from exp to mk
This makes it easier to run this test in older versions of make. Empty output means success.
|
#
1.6 |
|
27-Dec-2020 |
rillig |
make(1): add more tests for ':=' assignments
|
#
1.5 |
|
27-Dec-2020 |
rillig |
make(1): add tests for variable assignments using the ':=' operator
|
#
1.4 |
|
08-Nov-2020 |
rillig |
make(1): fix bug description of using := with undefined variable
In 1993, the variable names could not refer to other variables yet. This has been made possible on 2000-05-11, when the "cool magic" was added that allows assigning to VAR.${param}.
|
#
1.3 |
|
08-Nov-2020 |
rillig |
make(1): add test for edge case in resolving undefined variables
|
#
1.2 |
|
16-Aug-2020 |
rillig |
make(1): describe the purpose of each newly added unit test dummy
|
#
1.1 |
|
16-Aug-2020 |
rillig |
make(1): add dummies for fine-grained tests, one per single feature
The test names have been derived from the current manual page.
All these tests are dummies right now, and the code from the existing tests will be moved into the new tests step by step.
This is done to prevent modmisc, escape, varmod-edge and varmisc from growing without any bounds, and to reduce the side-effects of one test to the others.
|
#
1.18 |
|
01-Jun-2023 |
rillig |
tests/make: force line-based diagnostics to be listed in the tests
This way, contradictions between the intended output and the actual output are closer together and have a better chance of being spotted.
|
Revision tags: netbsd-10-base
|
#
1.17 |
|
08-Sep-2022 |
rillig |
tests/make: extend tests for the ':=' assignment operator
|
#
1.16 |
|
28-Dec-2021 |
rillig |
tests/make: use tabs instead of spaces for indentation
|
#
1.15 |
|
30-Nov-2021 |
rillig |
tests/make: test and document .MAKE.SAVE_DOLLARS and ':='
|
#
1.14 |
|
20-Nov-2021 |
rillig |
tests/make: finish a previously unfinished sentence in a comment
|
#
1.13 |
|
13-Nov-2021 |
rillig |
tests/make: extend test for undefined variable in doubly indirect ':='
Just to prevent a half-baked fix to the current behavior that would concatenate the modifiers of the two expressions, leading to ${LATER:value=sysv:tl} in this case. That expression would be interpreted as having only a single modifier that would replace the suffix 'value' with 'sysv:tl'. This is because the SysV modifier ':from=to' spans until the end of the expression.
|
#
1.12 |
|
13-Nov-2021 |
rillig |
tests/make: test double indirection in ':=' with undefined variable
Reported by Simon J Gerraty via private mail.
This edge case has been handled in essentially the same way since at least 2000-05-30, probably several years earlier as well. The test file is:
---- snip ---- .undef LATER .undef later INDIRECT:= ${LATER:S,value,replaced,} indirect:= ${INDIRECT:C,S,s,} # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "" . error .else . warning XXX Neither branch should be taken. .endif LATER= uppercase-value later= lowercase-value # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "uppercase-replaced" . warning XXX Neither branch should be taken. .else . error .endif
all: @:; ---- snap ----
The output from 'make -r -f later.mk' is:
make-2000.05.30.02.32.21 | make: Unknown modifier 's' | | "later.mk", line 9: Need an operator | make: Unknown modifier 's' | | "later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2000.12.30.16.38.22
The pathnames in the error message gets absolute:
make-2001.01.23.02.48.05 | make: Unknown modifier 's' | | ".../later.mk", line 9: Need an operator | make: Unknown modifier 's' | | ".../later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2001.01.23.02.48.05
All error messages get 'make:' as a common prefix:
make-2001.02.23.21.11.38 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | exit status 1 make-2001.05.29.17.37.52
The 'stopped in' gets added:
make-2001.06.12.23.36.18 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2002.02.21.22.21.34
The empty lines between the error messages get removed.
make-2002.03.21.11.42.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2009.10.15.02.27.44
The error message for unknown directives gets more helpful:
make-2009.11.19.06.48.37 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Unknown directive | make: Unknown modifier 's' | make: ".../later.mk" line 15: Unknown directive | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2010.02.22.19.20.33
The directives '.error', '.warning' and '.info' get added:
make-2010.04.29.23.12.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | exit status 0 make-2020.12.20.19.37.23
The error message about an unknown variable modifier gets line number information:
make-2020.12.20.19.47.34 | make: ".../later.mk" line 6: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1 make-2021.02.23.15.07.58
The error message about an unknown variable modifier gets more context than only a single letter:
make-2021.02.23.15.19.41 | make: ".../later.mk" line 6: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.11 |
|
01-Jan-2021 |
sjg |
var-op-expand needs MAKE.SAVE_DOLLARS=yes
|
#
1.10 |
|
28-Dec-2020 |
rillig |
make(1): extend test for modifier parts in ':=' assignments
|
#
1.9 |
|
27-Dec-2020 |
rillig |
make(1): add test for modifier parts in ':=' assignments
|
#
1.8 |
|
27-Dec-2020 |
rillig |
make(1): fix edge case in := with undefined in variable name
Previously, the assignment "VAR${UNDEF} := value" actually assigned to 2 variables. See var-op-expand.mk for details.
|
#
1.7 |
|
27-Dec-2020 |
rillig |
make(1): move test result of var-op-expand.mk from exp to mk
This makes it easier to run this test in older versions of make. Empty output means success.
|
#
1.6 |
|
27-Dec-2020 |
rillig |
make(1): add more tests for ':=' assignments
|
#
1.5 |
|
27-Dec-2020 |
rillig |
make(1): add tests for variable assignments using the ':=' operator
|
#
1.4 |
|
08-Nov-2020 |
rillig |
make(1): fix bug description of using := with undefined variable
In 1993, the variable names could not refer to other variables yet. This has been made possible on 2000-05-11, when the "cool magic" was added that allows assigning to VAR.${param}.
|
#
1.3 |
|
08-Nov-2020 |
rillig |
make(1): add test for edge case in resolving undefined variables
|
#
1.2 |
|
16-Aug-2020 |
rillig |
make(1): describe the purpose of each newly added unit test dummy
|
#
1.1 |
|
16-Aug-2020 |
rillig |
make(1): add dummies for fine-grained tests, one per single feature
The test names have been derived from the current manual page.
All these tests are dummies right now, and the code from the existing tests will be moved into the new tests step by step.
This is done to prevent modmisc, escape, varmod-edge and varmisc from growing without any bounds, and to reduce the side-effects of one test to the others.
|
#
1.17 |
|
08-Sep-2022 |
rillig |
tests/make: extend tests for the ':=' assignment operator
|
#
1.16 |
|
28-Dec-2021 |
rillig |
tests/make: use tabs instead of spaces for indentation
|
#
1.15 |
|
30-Nov-2021 |
rillig |
tests/make: test and document .MAKE.SAVE_DOLLARS and ':='
|
#
1.14 |
|
20-Nov-2021 |
rillig |
tests/make: finish a previously unfinished sentence in a comment
|
#
1.13 |
|
13-Nov-2021 |
rillig |
tests/make: extend test for undefined variable in doubly indirect ':='
Just to prevent a half-baked fix to the current behavior that would concatenate the modifiers of the two expressions, leading to ${LATER:value=sysv:tl} in this case. That expression would be interpreted as having only a single modifier that would replace the suffix 'value' with 'sysv:tl'. This is because the SysV modifier ':from=to' spans until the end of the expression.
|
#
1.12 |
|
13-Nov-2021 |
rillig |
tests/make: test double indirection in ':=' with undefined variable
Reported by Simon J Gerraty via private mail.
This edge case has been handled in essentially the same way since at least 2000-05-30, probably several years earlier as well. The test file is:
---- snip ---- .undef LATER .undef later INDIRECT:= ${LATER:S,value,replaced,} indirect:= ${INDIRECT:C,S,s,} # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "" . error .else . warning XXX Neither branch should be taken. .endif LATER= uppercase-value later= lowercase-value # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "uppercase-replaced" . warning XXX Neither branch should be taken. .else . error .endif
all: @:; ---- snap ----
The output from 'make -r -f later.mk' is:
make-2000.05.30.02.32.21 | make: Unknown modifier 's' | | "later.mk", line 9: Need an operator | make: Unknown modifier 's' | | "later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2000.12.30.16.38.22
The pathnames in the error message gets absolute:
make-2001.01.23.02.48.05 | make: Unknown modifier 's' | | ".../later.mk", line 9: Need an operator | make: Unknown modifier 's' | | ".../later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2001.01.23.02.48.05
All error messages get 'make:' as a common prefix:
make-2001.02.23.21.11.38 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | exit status 1 make-2001.05.29.17.37.52
The 'stopped in' gets added:
make-2001.06.12.23.36.18 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2002.02.21.22.21.34
The empty lines between the error messages get removed.
make-2002.03.21.11.42.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2009.10.15.02.27.44
The error message for unknown directives gets more helpful:
make-2009.11.19.06.48.37 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Unknown directive | make: Unknown modifier 's' | make: ".../later.mk" line 15: Unknown directive | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2010.02.22.19.20.33
The directives '.error', '.warning' and '.info' get added:
make-2010.04.29.23.12.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | exit status 0 make-2020.12.20.19.37.23
The error message about an unknown variable modifier gets line number information:
make-2020.12.20.19.47.34 | make: ".../later.mk" line 6: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1 make-2021.02.23.15.07.58
The error message about an unknown variable modifier gets more context than only a single letter:
make-2021.02.23.15.19.41 | make: ".../later.mk" line 6: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.11 |
|
01-Jan-2021 |
sjg |
var-op-expand needs MAKE.SAVE_DOLLARS=yes
|
#
1.10 |
|
28-Dec-2020 |
rillig |
make(1): extend test for modifier parts in ':=' assignments
|
#
1.9 |
|
27-Dec-2020 |
rillig |
make(1): add test for modifier parts in ':=' assignments
|
#
1.8 |
|
27-Dec-2020 |
rillig |
make(1): fix edge case in := with undefined in variable name
Previously, the assignment "VAR${UNDEF} := value" actually assigned to 2 variables. See var-op-expand.mk for details.
|
#
1.7 |
|
27-Dec-2020 |
rillig |
make(1): move test result of var-op-expand.mk from exp to mk
This makes it easier to run this test in older versions of make. Empty output means success.
|
#
1.6 |
|
27-Dec-2020 |
rillig |
make(1): add more tests for ':=' assignments
|
#
1.5 |
|
27-Dec-2020 |
rillig |
make(1): add tests for variable assignments using the ':=' operator
|
#
1.4 |
|
08-Nov-2020 |
rillig |
make(1): fix bug description of using := with undefined variable
In 1993, the variable names could not refer to other variables yet. This has been made possible on 2000-05-11, when the "cool magic" was added that allows assigning to VAR.${param}.
|
#
1.3 |
|
08-Nov-2020 |
rillig |
make(1): add test for edge case in resolving undefined variables
|
#
1.2 |
|
16-Aug-2020 |
rillig |
make(1): describe the purpose of each newly added unit test dummy
|
#
1.1 |
|
16-Aug-2020 |
rillig |
make(1): add dummies for fine-grained tests, one per single feature
The test names have been derived from the current manual page.
All these tests are dummies right now, and the code from the existing tests will be moved into the new tests step by step.
This is done to prevent modmisc, escape, varmod-edge and varmisc from growing without any bounds, and to reduce the side-effects of one test to the others.
|
#
1.16 |
|
28-Dec-2021 |
rillig |
tests/make: use tabs instead of spaces for indentation
|
#
1.15 |
|
30-Nov-2021 |
rillig |
tests/make: test and document .MAKE.SAVE_DOLLARS and ':='
|
#
1.14 |
|
20-Nov-2021 |
rillig |
tests/make: finish a previously unfinished sentence in a comment
|
#
1.13 |
|
13-Nov-2021 |
rillig |
tests/make: extend test for undefined variable in doubly indirect ':='
Just to prevent a half-baked fix to the current behavior that would concatenate the modifiers of the two expressions, leading to ${LATER:value=sysv:tl} in this case. That expression would be interpreted as having only a single modifier that would replace the suffix 'value' with 'sysv:tl'. This is because the SysV modifier ':from=to' spans until the end of the expression.
|
#
1.12 |
|
13-Nov-2021 |
rillig |
tests/make: test double indirection in ':=' with undefined variable
Reported by Simon J Gerraty via private mail.
This edge case has been handled in essentially the same way since at least 2000-05-30, probably several years earlier as well. The test file is:
---- snip ---- .undef LATER .undef later INDIRECT:= ${LATER:S,value,replaced,} indirect:= ${INDIRECT:C,S,s,} # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "" . error .else . warning XXX Neither branch should be taken. .endif LATER= uppercase-value later= lowercase-value # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "uppercase-replaced" . warning XXX Neither branch should be taken. .else . error .endif
all: @:; ---- snap ----
The output from 'make -r -f later.mk' is:
make-2000.05.30.02.32.21 | make: Unknown modifier 's' | | "later.mk", line 9: Need an operator | make: Unknown modifier 's' | | "later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2000.12.30.16.38.22
The pathnames in the error message gets absolute:
make-2001.01.23.02.48.05 | make: Unknown modifier 's' | | ".../later.mk", line 9: Need an operator | make: Unknown modifier 's' | | ".../later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2001.01.23.02.48.05
All error messages get 'make:' as a common prefix:
make-2001.02.23.21.11.38 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | exit status 1 make-2001.05.29.17.37.52
The 'stopped in' gets added:
make-2001.06.12.23.36.18 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2002.02.21.22.21.34
The empty lines between the error messages get removed.
make-2002.03.21.11.42.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2009.10.15.02.27.44
The error message for unknown directives gets more helpful:
make-2009.11.19.06.48.37 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Unknown directive | make: Unknown modifier 's' | make: ".../later.mk" line 15: Unknown directive | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2010.02.22.19.20.33
The directives '.error', '.warning' and '.info' get added:
make-2010.04.29.23.12.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | exit status 0 make-2020.12.20.19.37.23
The error message about an unknown variable modifier gets line number information:
make-2020.12.20.19.47.34 | make: ".../later.mk" line 6: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1 make-2021.02.23.15.07.58
The error message about an unknown variable modifier gets more context than only a single letter:
make-2021.02.23.15.19.41 | make: ".../later.mk" line 6: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.11 |
|
01-Jan-2021 |
sjg |
var-op-expand needs MAKE.SAVE_DOLLARS=yes
|
#
1.10 |
|
28-Dec-2020 |
rillig |
make(1): extend test for modifier parts in ':=' assignments
|
#
1.9 |
|
27-Dec-2020 |
rillig |
make(1): add test for modifier parts in ':=' assignments
|
#
1.8 |
|
27-Dec-2020 |
rillig |
make(1): fix edge case in := with undefined in variable name
Previously, the assignment "VAR${UNDEF} := value" actually assigned to 2 variables. See var-op-expand.mk for details.
|
#
1.7 |
|
27-Dec-2020 |
rillig |
make(1): move test result of var-op-expand.mk from exp to mk
This makes it easier to run this test in older versions of make. Empty output means success.
|
#
1.6 |
|
27-Dec-2020 |
rillig |
make(1): add more tests for ':=' assignments
|
#
1.5 |
|
27-Dec-2020 |
rillig |
make(1): add tests for variable assignments using the ':=' operator
|
#
1.4 |
|
08-Nov-2020 |
rillig |
make(1): fix bug description of using := with undefined variable
In 1993, the variable names could not refer to other variables yet. This has been made possible on 2000-05-11, when the "cool magic" was added that allows assigning to VAR.${param}.
|
#
1.3 |
|
08-Nov-2020 |
rillig |
make(1): add test for edge case in resolving undefined variables
|
#
1.2 |
|
16-Aug-2020 |
rillig |
make(1): describe the purpose of each newly added unit test dummy
|
#
1.1 |
|
16-Aug-2020 |
rillig |
make(1): add dummies for fine-grained tests, one per single feature
The test names have been derived from the current manual page.
All these tests are dummies right now, and the code from the existing tests will be moved into the new tests step by step.
This is done to prevent modmisc, escape, varmod-edge and varmisc from growing without any bounds, and to reduce the side-effects of one test to the others.
|
#
1.15 |
|
30-Nov-2021 |
rillig |
tests/make: test and document .MAKE.SAVE_DOLLARS and ':='
|
#
1.14 |
|
20-Nov-2021 |
rillig |
tests/make: finish a previously unfinished sentence in a comment
|
#
1.13 |
|
13-Nov-2021 |
rillig |
tests/make: extend test for undefined variable in doubly indirect ':='
Just to prevent a half-baked fix to the current behavior that would concatenate the modifiers of the two expressions, leading to ${LATER:value=sysv:tl} in this case. That expression would be interpreted as having only a single modifier that would replace the suffix 'value' with 'sysv:tl'. This is because the SysV modifier ':from=to' spans until the end of the expression.
|
#
1.12 |
|
13-Nov-2021 |
rillig |
tests/make: test double indirection in ':=' with undefined variable
Reported by Simon J Gerraty via private mail.
This edge case has been handled in essentially the same way since at least 2000-05-30, probably several years earlier as well. The test file is:
---- snip ---- .undef LATER .undef later INDIRECT:= ${LATER:S,value,replaced,} indirect:= ${INDIRECT:C,S,s,} # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "" . error .else . warning XXX Neither branch should be taken. .endif LATER= uppercase-value later= lowercase-value # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "uppercase-replaced" . warning XXX Neither branch should be taken. .else . error .endif
all: @:; ---- snap ----
The output from 'make -r -f later.mk' is:
make-2000.05.30.02.32.21 | make: Unknown modifier 's' | | "later.mk", line 9: Need an operator | make: Unknown modifier 's' | | "later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2000.12.30.16.38.22
The pathnames in the error message gets absolute:
make-2001.01.23.02.48.05 | make: Unknown modifier 's' | | ".../later.mk", line 9: Need an operator | make: Unknown modifier 's' | | ".../later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2001.01.23.02.48.05
All error messages get 'make:' as a common prefix:
make-2001.02.23.21.11.38 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | exit status 1 make-2001.05.29.17.37.52
The 'stopped in' gets added:
make-2001.06.12.23.36.18 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2002.02.21.22.21.34
The empty lines between the error messages get removed.
make-2002.03.21.11.42.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2009.10.15.02.27.44
The error message for unknown directives gets more helpful:
make-2009.11.19.06.48.37 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Unknown directive | make: Unknown modifier 's' | make: ".../later.mk" line 15: Unknown directive | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2010.02.22.19.20.33
The directives '.error', '.warning' and '.info' get added:
make-2010.04.29.23.12.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | exit status 0 make-2020.12.20.19.37.23
The error message about an unknown variable modifier gets line number information:
make-2020.12.20.19.47.34 | make: ".../later.mk" line 6: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1 make-2021.02.23.15.07.58
The error message about an unknown variable modifier gets more context than only a single letter:
make-2021.02.23.15.19.41 | make: ".../later.mk" line 6: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.11 |
|
01-Jan-2021 |
sjg |
var-op-expand needs MAKE.SAVE_DOLLARS=yes
|
#
1.10 |
|
28-Dec-2020 |
rillig |
make(1): extend test for modifier parts in ':=' assignments
|
#
1.9 |
|
27-Dec-2020 |
rillig |
make(1): add test for modifier parts in ':=' assignments
|
#
1.8 |
|
27-Dec-2020 |
rillig |
make(1): fix edge case in := with undefined in variable name
Previously, the assignment "VAR${UNDEF} := value" actually assigned to 2 variables. See var-op-expand.mk for details.
|
#
1.7 |
|
27-Dec-2020 |
rillig |
make(1): move test result of var-op-expand.mk from exp to mk
This makes it easier to run this test in older versions of make. Empty output means success.
|
#
1.6 |
|
27-Dec-2020 |
rillig |
make(1): add more tests for ':=' assignments
|
#
1.5 |
|
27-Dec-2020 |
rillig |
make(1): add tests for variable assignments using the ':=' operator
|
#
1.4 |
|
08-Nov-2020 |
rillig |
make(1): fix bug description of using := with undefined variable
In 1993, the variable names could not refer to other variables yet. This has been made possible on 2000-05-11, when the "cool magic" was added that allows assigning to VAR.${param}.
|
#
1.3 |
|
08-Nov-2020 |
rillig |
make(1): add test for edge case in resolving undefined variables
|
#
1.2 |
|
16-Aug-2020 |
rillig |
make(1): describe the purpose of each newly added unit test dummy
|
#
1.1 |
|
16-Aug-2020 |
rillig |
make(1): add dummies for fine-grained tests, one per single feature
The test names have been derived from the current manual page.
All these tests are dummies right now, and the code from the existing tests will be moved into the new tests step by step.
This is done to prevent modmisc, escape, varmod-edge and varmisc from growing without any bounds, and to reduce the side-effects of one test to the others.
|
#
1.14 |
|
20-Nov-2021 |
rillig |
tests/make: finish a previously unfinished sentence in a comment
|
#
1.13 |
|
13-Nov-2021 |
rillig |
tests/make: extend test for undefined variable in doubly indirect ':='
Just to prevent a half-baked fix to the current behavior that would concatenate the modifiers of the two expressions, leading to ${LATER:value=sysv:tl} in this case. That expression would be interpreted as having only a single modifier that would replace the suffix 'value' with 'sysv:tl'. This is because the SysV modifier ':from=to' spans until the end of the expression.
|
#
1.12 |
|
13-Nov-2021 |
rillig |
tests/make: test double indirection in ':=' with undefined variable
Reported by Simon J Gerraty via private mail.
This edge case has been handled in essentially the same way since at least 2000-05-30, probably several years earlier as well. The test file is:
---- snip ---- .undef LATER .undef later INDIRECT:= ${LATER:S,value,replaced,} indirect:= ${INDIRECT:C,S,s,} # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "" . error .else . warning XXX Neither branch should be taken. .endif LATER= uppercase-value later= lowercase-value # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "uppercase-replaced" . warning XXX Neither branch should be taken. .else . error .endif
all: @:; ---- snap ----
The output from 'make -r -f later.mk' is:
make-2000.05.30.02.32.21 | make: Unknown modifier 's' | | "later.mk", line 9: Need an operator | make: Unknown modifier 's' | | "later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2000.12.30.16.38.22
The pathnames in the error message gets absolute:
make-2001.01.23.02.48.05 | make: Unknown modifier 's' | | ".../later.mk", line 9: Need an operator | make: Unknown modifier 's' | | ".../later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2001.01.23.02.48.05
All error messages get 'make:' as a common prefix:
make-2001.02.23.21.11.38 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | exit status 1 make-2001.05.29.17.37.52
The 'stopped in' gets added:
make-2001.06.12.23.36.18 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2002.02.21.22.21.34
The empty lines between the error messages get removed.
make-2002.03.21.11.42.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2009.10.15.02.27.44
The error message for unknown directives gets more helpful:
make-2009.11.19.06.48.37 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Unknown directive | make: Unknown modifier 's' | make: ".../later.mk" line 15: Unknown directive | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2010.02.22.19.20.33
The directives '.error', '.warning' and '.info' get added:
make-2010.04.29.23.12.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | exit status 0 make-2020.12.20.19.37.23
The error message about an unknown variable modifier gets line number information:
make-2020.12.20.19.47.34 | make: ".../later.mk" line 6: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1 make-2021.02.23.15.07.58
The error message about an unknown variable modifier gets more context than only a single letter:
make-2021.02.23.15.19.41 | make: ".../later.mk" line 6: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.11 |
|
01-Jan-2021 |
sjg |
var-op-expand needs MAKE.SAVE_DOLLARS=yes
|
#
1.10 |
|
28-Dec-2020 |
rillig |
make(1): extend test for modifier parts in ':=' assignments
|
#
1.9 |
|
27-Dec-2020 |
rillig |
make(1): add test for modifier parts in ':=' assignments
|
#
1.8 |
|
27-Dec-2020 |
rillig |
make(1): fix edge case in := with undefined in variable name
Previously, the assignment "VAR${UNDEF} := value" actually assigned to 2 variables. See var-op-expand.mk for details.
|
#
1.7 |
|
27-Dec-2020 |
rillig |
make(1): move test result of var-op-expand.mk from exp to mk
This makes it easier to run this test in older versions of make. Empty output means success.
|
#
1.6 |
|
27-Dec-2020 |
rillig |
make(1): add more tests for ':=' assignments
|
#
1.5 |
|
27-Dec-2020 |
rillig |
make(1): add tests for variable assignments using the ':=' operator
|
#
1.4 |
|
08-Nov-2020 |
rillig |
make(1): fix bug description of using := with undefined variable
In 1993, the variable names could not refer to other variables yet. This has been made possible on 2000-05-11, when the "cool magic" was added that allows assigning to VAR.${param}.
|
#
1.3 |
|
08-Nov-2020 |
rillig |
make(1): add test for edge case in resolving undefined variables
|
#
1.2 |
|
16-Aug-2020 |
rillig |
make(1): describe the purpose of each newly added unit test dummy
|
#
1.1 |
|
16-Aug-2020 |
rillig |
make(1): add dummies for fine-grained tests, one per single feature
The test names have been derived from the current manual page.
All these tests are dummies right now, and the code from the existing tests will be moved into the new tests step by step.
This is done to prevent modmisc, escape, varmod-edge and varmisc from growing without any bounds, and to reduce the side-effects of one test to the others.
|
#
1.13 |
|
13-Nov-2021 |
rillig |
tests/make: extend test for undefined variable in doubly indirect ':='
Just to prevent a half-baked fix to the current behavior that would concatenate the modifiers of the two expressions, leading to ${LATER:value=sysv:tl} in this case. That expression would be interpreted as having only a single modifier that would replace the suffix 'value' with 'sysv:tl'. This is because the SysV modifier ':from=to' spans until the end of the expression.
|
#
1.12 |
|
13-Nov-2021 |
rillig |
tests/make: test double indirection in ':=' with undefined variable
Reported by Simon J Gerraty via private mail.
This edge case has been handled in essentially the same way since at least 2000-05-30, probably several years earlier as well. The test file is:
---- snip ---- .undef LATER .undef later INDIRECT:= ${LATER:S,value,replaced,} indirect:= ${INDIRECT:C,S,s,} # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "" . error .else . warning XXX Neither branch should be taken. .endif LATER= uppercase-value later= lowercase-value # expect+1: Unknown modifier "s,value,replaced," .if ${indirect} != "uppercase-replaced" . warning XXX Neither branch should be taken. .else . error .endif
all: @:; ---- snap ----
The output from 'make -r -f later.mk' is:
make-2000.05.30.02.32.21 | make: Unknown modifier 's' | | "later.mk", line 9: Need an operator | make: Unknown modifier 's' | | "later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2000.12.30.16.38.22
The pathnames in the error message gets absolute:
make-2001.01.23.02.48.05 | make: Unknown modifier 's' | | ".../later.mk", line 9: Need an operator | make: Unknown modifier 's' | | ".../later.mk", line 15: Need an operator | Fatal errors encountered -- cannot continue | exit status 1 make-2001.01.23.02.48.05
All error messages get 'make:' as a common prefix:
make-2001.02.23.21.11.38 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | exit status 1 make-2001.05.29.17.37.52
The 'stopped in' gets added:
make-2001.06.12.23.36.18 | make: Unknown modifier 's' | | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2002.02.21.22.21.34
The empty lines between the error messages get removed.
make-2002.03.21.11.42.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Need an operator | make: Unknown modifier 's' | make: ".../later.mk" line 15: Need an operator | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2009.10.15.02.27.44
The error message for unknown directives gets more helpful:
make-2009.11.19.06.48.37 | make: Unknown modifier 's' | make: ".../later.mk" line 9: Unknown directive | make: Unknown modifier 's' | make: ".../later.mk" line 15: Unknown directive | make: Fatal errors encountered -- cannot continue | | make: stopped in ... | exit status 1 make-2010.02.22.19.20.33
The directives '.error', '.warning' and '.info' get added:
make-2010.04.29.23.12.21 | make: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | exit status 0 make-2020.12.20.19.37.23
The error message about an unknown variable modifier gets line number information:
make-2020.12.20.19.47.34 | make: ".../later.mk" line 6: Unknown modifier 's' | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier 's' | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1 make-2021.02.23.15.07.58
The error message about an unknown variable modifier gets more context than only a single letter:
make-2021.02.23.15.19.41 | make: ".../later.mk" line 6: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 9: warning: XXX Neither branch should be taken. | make: ".../later.mk" line 14: Unknown modifier "s,value,replaced," | make: ".../later.mk" line 15: warning: XXX Neither branch should be taken. | make: Fatal errors encountered -- cannot continue | make: stopped in ... | exit status 1
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.11 |
|
01-Jan-2021 |
sjg |
var-op-expand needs MAKE.SAVE_DOLLARS=yes
|
#
1.10 |
|
28-Dec-2020 |
rillig |
make(1): extend test for modifier parts in ':=' assignments
|
#
1.9 |
|
27-Dec-2020 |
rillig |
make(1): add test for modifier parts in ':=' assignments
|
#
1.8 |
|
27-Dec-2020 |
rillig |
make(1): fix edge case in := with undefined in variable name
Previously, the assignment "VAR${UNDEF} := value" actually assigned to 2 variables. See var-op-expand.mk for details.
|
#
1.7 |
|
27-Dec-2020 |
rillig |
make(1): move test result of var-op-expand.mk from exp to mk
This makes it easier to run this test in older versions of make. Empty output means success.
|
#
1.6 |
|
27-Dec-2020 |
rillig |
make(1): add more tests for ':=' assignments
|
#
1.5 |
|
27-Dec-2020 |
rillig |
make(1): add tests for variable assignments using the ':=' operator
|
#
1.4 |
|
08-Nov-2020 |
rillig |
make(1): fix bug description of using := with undefined variable
In 1993, the variable names could not refer to other variables yet. This has been made possible on 2000-05-11, when the "cool magic" was added that allows assigning to VAR.${param}.
|
#
1.3 |
|
08-Nov-2020 |
rillig |
make(1): add test for edge case in resolving undefined variables
|
#
1.2 |
|
16-Aug-2020 |
rillig |
make(1): describe the purpose of each newly added unit test dummy
|
#
1.1 |
|
16-Aug-2020 |
rillig |
make(1): add dummies for fine-grained tests, one per single feature
The test names have been derived from the current manual page.
All these tests are dummies right now, and the code from the existing tests will be moved into the new tests step by step.
This is done to prevent modmisc, escape, varmod-edge and varmisc from growing without any bounds, and to reduce the side-effects of one test to the others.
|
#
1.11 |
|
01-Jan-2021 |
sjg |
var-op-expand needs MAKE.SAVE_DOLLARS=yes
|
#
1.10 |
|
28-Dec-2020 |
rillig |
make(1): extend test for modifier parts in ':=' assignments
|
#
1.9 |
|
27-Dec-2020 |
rillig |
make(1): add test for modifier parts in ':=' assignments
|
#
1.8 |
|
27-Dec-2020 |
rillig |
make(1): fix edge case in := with undefined in variable name
Previously, the assignment "VAR${UNDEF} := value" actually assigned to 2 variables. See var-op-expand.mk for details.
|
#
1.7 |
|
27-Dec-2020 |
rillig |
make(1): move test result of var-op-expand.mk from exp to mk
This makes it easier to run this test in older versions of make. Empty output means success.
|
#
1.6 |
|
27-Dec-2020 |
rillig |
make(1): add more tests for ':=' assignments
|
#
1.5 |
|
27-Dec-2020 |
rillig |
make(1): add tests for variable assignments using the ':=' operator
|
#
1.4 |
|
08-Nov-2020 |
rillig |
make(1): fix bug description of using := with undefined variable
In 1993, the variable names could not refer to other variables yet. This has been made possible on 2000-05-11, when the "cool magic" was added that allows assigning to VAR.${param}.
|
#
1.3 |
|
08-Nov-2020 |
rillig |
make(1): add test for edge case in resolving undefined variables
|
#
1.2 |
|
16-Aug-2020 |
rillig |
make(1): describe the purpose of each newly added unit test dummy
|
#
1.1 |
|
16-Aug-2020 |
rillig |
make(1): add dummies for fine-grained tests, one per single feature
The test names have been derived from the current manual page.
All these tests are dummies right now, and the code from the existing tests will be moved into the new tests step by step.
This is done to prevent modmisc, escape, varmod-edge and varmisc from growing without any bounds, and to reduce the side-effects of one test to the others.
|
#
1.10 |
|
28-Dec-2020 |
rillig |
make(1): extend test for modifier parts in ':=' assignments
|
#
1.9 |
|
27-Dec-2020 |
rillig |
make(1): add test for modifier parts in ':=' assignments
|
#
1.8 |
|
27-Dec-2020 |
rillig |
make(1): fix edge case in := with undefined in variable name
Previously, the assignment "VAR${UNDEF} := value" actually assigned to 2 variables. See var-op-expand.mk for details.
|
#
1.7 |
|
27-Dec-2020 |
rillig |
make(1): move test result of var-op-expand.mk from exp to mk
This makes it easier to run this test in older versions of make. Empty output means success.
|
#
1.6 |
|
27-Dec-2020 |
rillig |
make(1): add more tests for ':=' assignments
|
#
1.5 |
|
27-Dec-2020 |
rillig |
make(1): add tests for variable assignments using the ':=' operator
|
#
1.4 |
|
08-Nov-2020 |
rillig |
make(1): fix bug description of using := with undefined variable
In 1993, the variable names could not refer to other variables yet. This has been made possible on 2000-05-11, when the "cool magic" was added that allows assigning to VAR.${param}.
|
#
1.3 |
|
08-Nov-2020 |
rillig |
make(1): add test for edge case in resolving undefined variables
|
#
1.2 |
|
16-Aug-2020 |
rillig |
make(1): describe the purpose of each newly added unit test dummy
|
#
1.1 |
|
16-Aug-2020 |
rillig |
make(1): add dummies for fine-grained tests, one per single feature
The test names have been derived from the current manual page.
All these tests are dummies right now, and the code from the existing tests will be moved into the new tests step by step.
This is done to prevent modmisc, escape, varmod-edge and varmisc from growing without any bounds, and to reduce the side-effects of one test to the others.
|
#
1.4 |
|
08-Nov-2020 |
rillig |
make(1): fix bug description of using := with undefined variable
In 1993, the variable names could not refer to other variables yet. This has been made possible on 2000-05-11, when the "cool magic" was added that allows assigning to VAR.${param}.
|
#
1.3 |
|
08-Nov-2020 |
rillig |
make(1): add test for edge case in resolving undefined variables
|
#
1.2 |
|
16-Aug-2020 |
rillig |
make(1): describe the purpose of each newly added unit test dummy
|
#
1.1 |
|
16-Aug-2020 |
rillig |
make(1): add dummies for fine-grained tests, one per single feature
The test names have been derived from the current manual page.
All these tests are dummies right now, and the code from the existing tests will be moved into the new tests step by step.
This is done to prevent modmisc, escape, varmod-edge and varmisc from growing without any bounds, and to reduce the side-effects of one test to the others.
|