The NetBSD Project

CVS log for src/usr.bin/make/unit-tests/var-op-expand.exp

[BACK] Up to [cvs.NetBSD.org] / src / usr.bin / make / unit-tests

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.12: download - view: text, markup, annotated - select for diffs
Thu Aug 29 20:20:36 2024 UTC (4 months, 3 weeks ago) by rillig
Branches: MAIN
CVS tags: HEAD
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +6 -2 lines
make: reduce line length in error messages

The error messages for deeply nested parse errors were hard to decipher,
due to the large amount of text.  Split these messages into individual
lines, just as in the backtrace for .include files and .for loops.  This
unified backtrace makes the output more uniform.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Thu Jul 4 20:18:40 2024 UTC (6 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +1 -1 lines
make: on error, print the targets to be made

This helps to understand situations with several nested sub-makes in
varying directories.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Thu Jul 4 17:47:54 2024 UTC (6 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +2 -2 lines
make: add more context information to error messages

In case of a parse error or evaluation error, print the variable value
in addition to the variable name, to see the effects of previous
expression modifiers.

In nested make calls, print the current directory at the bottom of a
stack trace, as that information is otherwise hard to get in a parallel
build spanning multiple directories.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Sat Apr 20 10:18:55 2024 UTC (9 months ago) by rillig
Branches: MAIN
CVS tags: perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +2 -2 lines
make: provide more context information for parse/evaluate errors

Revision 1.8: download - view: text, markup, annotated - select for diffs
Thu Jun 1 20:56:35 2023 UTC (19 months, 3 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +3 -3 lines
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 1.7: download - view: text, markup, annotated - select for diffs
Thu Sep 8 20:23:45 2022 UTC (2 years, 4 months ago) by rillig
Branches: MAIN
CVS tags: netbsd-10-base, netbsd-10-1-RELEASE, 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
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +4 -4 lines
tests/make: extend tests for the ':=' assignment operator

Revision 1.6: download - view: text, markup, annotated - select for diffs
Tue Nov 30 23:52:19 2021 UTC (3 years, 1 month ago) by rillig
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +3 -3 lines
tests/make: test and document .MAKE.SAVE_DOLLARS and ':='

Revision 1.5: download - view: text, markup, annotated - select for diffs
Sat Nov 20 17:47:33 2021 UTC (3 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +4 -4 lines
tests/make: finish a previously unfinished sentence in a comment

Revision 1.4: download - view: text, markup, annotated - select for diffs
Sat Nov 13 18:37:42 2021 UTC (3 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +7 -1 lines
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 1.3: download - view: text, markup, annotated - select for diffs
Sun Dec 27 21:31:27 2020 UTC (4 years ago) by rillig
Branches: MAIN
CVS tags: cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +0 -9 lines
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.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sun Nov 8 13:46:15 2020 UTC (4 years, 2 months ago) by rillig
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +9 -0 lines
make(1): add test for edge case in resolving undefined variables

Revision 1.1: download - view: text, markup, annotated - select for diffs
Sun Aug 16 12:07:51 2020 UTC (4 years, 5 months ago) by rillig
Branches: MAIN
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.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>