History log of /netbsd-current/usr.bin/make/unit-tests/varmod-indirect.mk
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.19 20-Apr-2024 rillig

make: provide more context information for parse/evaluate errors


# 1.18 04-Feb-2024 rillig

make: do not evaluate indirect modifiers in parse-only mode

Discovered by sjg.


# 1.17 04-Feb-2024 rillig

make: in parse-only mode, don't evaluate modifiers

Previously, the ':S', ':ts', ':tA' and ':from=to' modifiers were
evaluated in parse-only mode, unnecessarily. This is only noticeable
when an indirect modifier is evaluated in parse-only mode, which is
another bug that will be fixed in a follow-up commit.


# 1.16 04-Feb-2024 rillig

tests/make: extend test for wrong evaluation in parse-only mode


# 1.15 04-Feb-2024 rillig

tests/make: indirect modifiers are evaluated in parse-only mode

Found by sjg@.


# 1.14 19-Nov-2023 rillig

tests/make: replace 'variable expressions' with 'expressions'


# 1.13 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.12 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.11 15-Jan-2022 rillig

tests/make: ensure that the 'expect' comments in tests are correct

Based on tests/usr.bin/xlint/check-expect.lua.

For now, this extra check needs to be run manually.


# 1.10 08-Jan-2022 rillig

make: fix reported line numbers of continuation lines (since 2002)

Previously, multi-line directives like '.info' or '.error' reported the
line number of their last line instead of their first line, which is
more usual. This also affected the debug log from '-dp'.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.9 15-Mar-2021 rillig

make: rename ApplyModifiersState to ModChain

The new name accurately describes the structural element that holds such
properties as the separator character and whether the expression value
is considered a single word. The old name ApplyModifiersState was too
long and was meant as a placeholder anyway, when I introduced it in
var.c 1.236 from 2020-07-03.


# 1.8 14-Feb-2021 rillig

make: add test for indirect ':U' modifier

Unlike ':ts' and ':tW', the effects of ':U' are visible even after the
modifiers from the nested expression have been applied. These subtle
details, like many others, are not documented in the manual page.


# 1.7 14-Feb-2021 rillig

make: document since when indirect modifiers are supported


# 1.6 14-Feb-2021 rillig

make: add more tests for edge cases in evaluating variable expressions

As a preparation for refactoring the code around variable expressions,
there need to be a few tests for indirect variable modifiers since these
were not covered before.

Indirect modifiers may include ':ts' and ':tW', which change the
interpretation of the variable expression in small details. The scope
of these changes is limited to the indirect modifier, any evaluations
outside this indirect modifier are unaffected.

The changes to the .exp file are mostly line number changes, plus a
demonstration of a newly found bug, where an expression is evaluated
successfully despite producing a parse error.


# 1.5 27-Dec-2020 rillig

make(1): split test for indirect modifiers into paragraphs


# 1.4 27-Dec-2020 rillig

make(1): add tests for parsing indirect modifiers in nested expressions


# 1.3 27-Dec-2020 rillig

make(1): remove dead code from ApplyModifiersIndirect

At that point, the expression can never be varUndefined. At the
beginning of ParseVarnameLong, the expression is initialized to a simple
empty string, and that string is only ever converted to varUndefined at
the very end of Var_Parse.


# 1.2 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.1 01-Dec-2020 rillig

make(1): add test and tutorial for indirect modifiers


# 1.18 04-Feb-2024 rillig

make: do not evaluate indirect modifiers in parse-only mode

Discovered by sjg.


# 1.17 04-Feb-2024 rillig

make: in parse-only mode, don't evaluate modifiers

Previously, the ':S', ':ts', ':tA' and ':from=to' modifiers were
evaluated in parse-only mode, unnecessarily. This is only noticeable
when an indirect modifier is evaluated in parse-only mode, which is
another bug that will be fixed in a follow-up commit.


# 1.16 04-Feb-2024 rillig

tests/make: extend test for wrong evaluation in parse-only mode


# 1.15 04-Feb-2024 rillig

tests/make: indirect modifiers are evaluated in parse-only mode

Found by sjg@.


# 1.14 19-Nov-2023 rillig

tests/make: replace 'variable expressions' with 'expressions'


# 1.13 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.12 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-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base
# 1.11 15-Jan-2022 rillig

tests/make: ensure that the 'expect' comments in tests are correct

Based on tests/usr.bin/xlint/check-expect.lua.

For now, this extra check needs to be run manually.


# 1.10 08-Jan-2022 rillig

make: fix reported line numbers of continuation lines (since 2002)

Previously, multi-line directives like '.info' or '.error' reported the
line number of their last line instead of their first line, which is
more usual. This also affected the debug log from '-dp'.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.9 15-Mar-2021 rillig

make: rename ApplyModifiersState to ModChain

The new name accurately describes the structural element that holds such
properties as the separator character and whether the expression value
is considered a single word. The old name ApplyModifiersState was too
long and was meant as a placeholder anyway, when I introduced it in
var.c 1.236 from 2020-07-03.


# 1.8 14-Feb-2021 rillig

make: add test for indirect ':U' modifier

Unlike ':ts' and ':tW', the effects of ':U' are visible even after the
modifiers from the nested expression have been applied. These subtle
details, like many others, are not documented in the manual page.


# 1.7 14-Feb-2021 rillig

make: document since when indirect modifiers are supported


# 1.6 14-Feb-2021 rillig

make: add more tests for edge cases in evaluating variable expressions

As a preparation for refactoring the code around variable expressions,
there need to be a few tests for indirect variable modifiers since these
were not covered before.

Indirect modifiers may include ':ts' and ':tW', which change the
interpretation of the variable expression in small details. The scope
of these changes is limited to the indirect modifier, any evaluations
outside this indirect modifier are unaffected.

The changes to the .exp file are mostly line number changes, plus a
demonstration of a newly found bug, where an expression is evaluated
successfully despite producing a parse error.


# 1.5 27-Dec-2020 rillig

make(1): split test for indirect modifiers into paragraphs


# 1.4 27-Dec-2020 rillig

make(1): add tests for parsing indirect modifiers in nested expressions


# 1.3 27-Dec-2020 rillig

make(1): remove dead code from ApplyModifiersIndirect

At that point, the expression can never be varUndefined. At the
beginning of ParseVarnameLong, the expression is initialized to a simple
empty string, and that string is only ever converted to varUndefined at
the very end of Var_Parse.


# 1.2 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.1 01-Dec-2020 rillig

make(1): add test and tutorial for indirect modifiers


# 1.14 19-Nov-2023 rillig

tests/make: replace 'variable expressions' with 'expressions'


# 1.13 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.12 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.11 15-Jan-2022 rillig

tests/make: ensure that the 'expect' comments in tests are correct

Based on tests/usr.bin/xlint/check-expect.lua.

For now, this extra check needs to be run manually.


# 1.10 08-Jan-2022 rillig

make: fix reported line numbers of continuation lines (since 2002)

Previously, multi-line directives like '.info' or '.error' reported the
line number of their last line instead of their first line, which is
more usual. This also affected the debug log from '-dp'.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.9 15-Mar-2021 rillig

make: rename ApplyModifiersState to ModChain

The new name accurately describes the structural element that holds such
properties as the separator character and whether the expression value
is considered a single word. The old name ApplyModifiersState was too
long and was meant as a placeholder anyway, when I introduced it in
var.c 1.236 from 2020-07-03.


# 1.8 14-Feb-2021 rillig

make: add test for indirect ':U' modifier

Unlike ':ts' and ':tW', the effects of ':U' are visible even after the
modifiers from the nested expression have been applied. These subtle
details, like many others, are not documented in the manual page.


# 1.7 14-Feb-2021 rillig

make: document since when indirect modifiers are supported


# 1.6 14-Feb-2021 rillig

make: add more tests for edge cases in evaluating variable expressions

As a preparation for refactoring the code around variable expressions,
there need to be a few tests for indirect variable modifiers since these
were not covered before.

Indirect modifiers may include ':ts' and ':tW', which change the
interpretation of the variable expression in small details. The scope
of these changes is limited to the indirect modifier, any evaluations
outside this indirect modifier are unaffected.

The changes to the .exp file are mostly line number changes, plus a
demonstration of a newly found bug, where an expression is evaluated
successfully despite producing a parse error.


# 1.5 27-Dec-2020 rillig

make(1): split test for indirect modifiers into paragraphs


# 1.4 27-Dec-2020 rillig

make(1): add tests for parsing indirect modifiers in nested expressions


# 1.3 27-Dec-2020 rillig

make(1): remove dead code from ApplyModifiersIndirect

At that point, the expression can never be varUndefined. At the
beginning of ParseVarnameLong, the expression is initialized to a simple
empty string, and that string is only ever converted to varUndefined at
the very end of Var_Parse.


# 1.2 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.1 01-Dec-2020 rillig

make(1): add test and tutorial for indirect modifiers


# 1.12 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.11 15-Jan-2022 rillig

tests/make: ensure that the 'expect' comments in tests are correct

Based on tests/usr.bin/xlint/check-expect.lua.

For now, this extra check needs to be run manually.


# 1.10 08-Jan-2022 rillig

make: fix reported line numbers of continuation lines (since 2002)

Previously, multi-line directives like '.info' or '.error' reported the
line number of their last line instead of their first line, which is
more usual. This also affected the debug log from '-dp'.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.9 15-Mar-2021 rillig

make: rename ApplyModifiersState to ModChain

The new name accurately describes the structural element that holds such
properties as the separator character and whether the expression value
is considered a single word. The old name ApplyModifiersState was too
long and was meant as a placeholder anyway, when I introduced it in
var.c 1.236 from 2020-07-03.


# 1.8 14-Feb-2021 rillig

make: add test for indirect ':U' modifier

Unlike ':ts' and ':tW', the effects of ':U' are visible even after the
modifiers from the nested expression have been applied. These subtle
details, like many others, are not documented in the manual page.


# 1.7 14-Feb-2021 rillig

make: document since when indirect modifiers are supported


# 1.6 14-Feb-2021 rillig

make: add more tests for edge cases in evaluating variable expressions

As a preparation for refactoring the code around variable expressions,
there need to be a few tests for indirect variable modifiers since these
were not covered before.

Indirect modifiers may include ':ts' and ':tW', which change the
interpretation of the variable expression in small details. The scope
of these changes is limited to the indirect modifier, any evaluations
outside this indirect modifier are unaffected.

The changes to the .exp file are mostly line number changes, plus a
demonstration of a newly found bug, where an expression is evaluated
successfully despite producing a parse error.


# 1.5 27-Dec-2020 rillig

make(1): split test for indirect modifiers into paragraphs


# 1.4 27-Dec-2020 rillig

make(1): add tests for parsing indirect modifiers in nested expressions


# 1.3 27-Dec-2020 rillig

make(1): remove dead code from ApplyModifiersIndirect

At that point, the expression can never be varUndefined. At the
beginning of ParseVarnameLong, the expression is initialized to a simple
empty string, and that string is only ever converted to varUndefined at
the very end of Var_Parse.


# 1.2 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.1 01-Dec-2020 rillig

make(1): add test and tutorial for indirect modifiers


# 1.11 15-Jan-2022 rillig

tests/make: ensure that the 'expect' comments in tests are correct

Based on tests/usr.bin/xlint/check-expect.lua.

For now, this extra check needs to be run manually.


# 1.10 08-Jan-2022 rillig

make: fix reported line numbers of continuation lines (since 2002)

Previously, multi-line directives like '.info' or '.error' reported the
line number of their last line instead of their first line, which is
more usual. This also affected the debug log from '-dp'.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.9 15-Mar-2021 rillig

make: rename ApplyModifiersState to ModChain

The new name accurately describes the structural element that holds such
properties as the separator character and whether the expression value
is considered a single word. The old name ApplyModifiersState was too
long and was meant as a placeholder anyway, when I introduced it in
var.c 1.236 from 2020-07-03.


# 1.8 14-Feb-2021 rillig

make: add test for indirect ':U' modifier

Unlike ':ts' and ':tW', the effects of ':U' are visible even after the
modifiers from the nested expression have been applied. These subtle
details, like many others, are not documented in the manual page.


# 1.7 14-Feb-2021 rillig

make: document since when indirect modifiers are supported


# 1.6 14-Feb-2021 rillig

make: add more tests for edge cases in evaluating variable expressions

As a preparation for refactoring the code around variable expressions,
there need to be a few tests for indirect variable modifiers since these
were not covered before.

Indirect modifiers may include ':ts' and ':tW', which change the
interpretation of the variable expression in small details. The scope
of these changes is limited to the indirect modifier, any evaluations
outside this indirect modifier are unaffected.

The changes to the .exp file are mostly line number changes, plus a
demonstration of a newly found bug, where an expression is evaluated
successfully despite producing a parse error.


# 1.5 27-Dec-2020 rillig

make(1): split test for indirect modifiers into paragraphs


# 1.4 27-Dec-2020 rillig

make(1): add tests for parsing indirect modifiers in nested expressions


# 1.3 27-Dec-2020 rillig

make(1): remove dead code from ApplyModifiersIndirect

At that point, the expression can never be varUndefined. At the
beginning of ParseVarnameLong, the expression is initialized to a simple
empty string, and that string is only ever converted to varUndefined at
the very end of Var_Parse.


# 1.2 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.1 01-Dec-2020 rillig

make(1): add test and tutorial for indirect modifiers


# 1.10 08-Jan-2022 rillig

make: fix reported line numbers of continuation lines (since 2002)

Previously, multi-line directives like '.info' or '.error' reported the
line number of their last line instead of their first line, which is
more usual. This also affected the debug log from '-dp'.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.9 15-Mar-2021 rillig

make: rename ApplyModifiersState to ModChain

The new name accurately describes the structural element that holds such
properties as the separator character and whether the expression value
is considered a single word. The old name ApplyModifiersState was too
long and was meant as a placeholder anyway, when I introduced it in
var.c 1.236 from 2020-07-03.


# 1.8 14-Feb-2021 rillig

make: add test for indirect ':U' modifier

Unlike ':ts' and ':tW', the effects of ':U' are visible even after the
modifiers from the nested expression have been applied. These subtle
details, like many others, are not documented in the manual page.


# 1.7 14-Feb-2021 rillig

make: document since when indirect modifiers are supported


# 1.6 14-Feb-2021 rillig

make: add more tests for edge cases in evaluating variable expressions

As a preparation for refactoring the code around variable expressions,
there need to be a few tests for indirect variable modifiers since these
were not covered before.

Indirect modifiers may include ':ts' and ':tW', which change the
interpretation of the variable expression in small details. The scope
of these changes is limited to the indirect modifier, any evaluations
outside this indirect modifier are unaffected.

The changes to the .exp file are mostly line number changes, plus a
demonstration of a newly found bug, where an expression is evaluated
successfully despite producing a parse error.


# 1.5 27-Dec-2020 rillig

make(1): split test for indirect modifiers into paragraphs


# 1.4 27-Dec-2020 rillig

make(1): add tests for parsing indirect modifiers in nested expressions


# 1.3 27-Dec-2020 rillig

make(1): remove dead code from ApplyModifiersIndirect

At that point, the expression can never be varUndefined. At the
beginning of ParseVarnameLong, the expression is initialized to a simple
empty string, and that string is only ever converted to varUndefined at
the very end of Var_Parse.


# 1.2 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.1 01-Dec-2020 rillig

make(1): add test and tutorial for indirect modifiers


# 1.9 15-Mar-2021 rillig

make: rename ApplyModifiersState to ModChain

The new name accurately describes the structural element that holds such
properties as the separator character and whether the expression value
is considered a single word. The old name ApplyModifiersState was too
long and was meant as a placeholder anyway, when I introduced it in
var.c 1.236 from 2020-07-03.


# 1.8 14-Feb-2021 rillig

make: add test for indirect ':U' modifier

Unlike ':ts' and ':tW', the effects of ':U' are visible even after the
modifiers from the nested expression have been applied. These subtle
details, like many others, are not documented in the manual page.


# 1.7 14-Feb-2021 rillig

make: document since when indirect modifiers are supported


# 1.6 14-Feb-2021 rillig

make: add more tests for edge cases in evaluating variable expressions

As a preparation for refactoring the code around variable expressions,
there need to be a few tests for indirect variable modifiers since these
were not covered before.

Indirect modifiers may include ':ts' and ':tW', which change the
interpretation of the variable expression in small details. The scope
of these changes is limited to the indirect modifier, any evaluations
outside this indirect modifier are unaffected.

The changes to the .exp file are mostly line number changes, plus a
demonstration of a newly found bug, where an expression is evaluated
successfully despite producing a parse error.


# 1.5 27-Dec-2020 rillig

make(1): split test for indirect modifiers into paragraphs


# 1.4 27-Dec-2020 rillig

make(1): add tests for parsing indirect modifiers in nested expressions


# 1.3 27-Dec-2020 rillig

make(1): remove dead code from ApplyModifiersIndirect

At that point, the expression can never be varUndefined. At the
beginning of ParseVarnameLong, the expression is initialized to a simple
empty string, and that string is only ever converted to varUndefined at
the very end of Var_Parse.


# 1.2 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.1 01-Dec-2020 rillig

make(1): add test and tutorial for indirect modifiers


# 1.8 14-Feb-2021 rillig

make: add test for indirect ':U' modifier

Unlike ':ts' and ':tW', the effects of ':U' are visible even after the
modifiers from the nested expression have been applied. These subtle
details, like many others, are not documented in the manual page.


# 1.7 14-Feb-2021 rillig

make: document since when indirect modifiers are supported


# 1.6 14-Feb-2021 rillig

make: add more tests for edge cases in evaluating variable expressions

As a preparation for refactoring the code around variable expressions,
there need to be a few tests for indirect variable modifiers since these
were not covered before.

Indirect modifiers may include ':ts' and ':tW', which change the
interpretation of the variable expression in small details. The scope
of these changes is limited to the indirect modifier, any evaluations
outside this indirect modifier are unaffected.

The changes to the .exp file are mostly line number changes, plus a
demonstration of a newly found bug, where an expression is evaluated
successfully despite producing a parse error.


# 1.5 27-Dec-2020 rillig

make(1): split test for indirect modifiers into paragraphs


# 1.4 27-Dec-2020 rillig

make(1): add tests for parsing indirect modifiers in nested expressions


# 1.3 27-Dec-2020 rillig

make(1): remove dead code from ApplyModifiersIndirect

At that point, the expression can never be varUndefined. At the
beginning of ParseVarnameLong, the expression is initialized to a simple
empty string, and that string is only ever converted to varUndefined at
the very end of Var_Parse.


# 1.2 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.1 01-Dec-2020 rillig

make(1): add test and tutorial for indirect modifiers


# 1.5 27-Dec-2020 rillig

make(1): split test for indirect modifiers into paragraphs


# 1.4 27-Dec-2020 rillig

make(1): add tests for parsing indirect modifiers in nested expressions


# 1.3 27-Dec-2020 rillig

make(1): remove dead code from ApplyModifiersIndirect

At that point, the expression can never be varUndefined. At the
beginning of ParseVarnameLong, the expression is initialized to a simple
empty string, and that string is only ever converted to varUndefined at
the very end of Var_Parse.


# 1.2 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.1 01-Dec-2020 rillig

make(1): add test and tutorial for indirect modifiers


# 1.2 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.1 01-Dec-2020 rillig

make(1): add test and tutorial for indirect modifiers