diff options
Diffstat (limited to 'tests/scripts')
-rw-r--r-- | tests/scripts/features/se_implicit | 8 | ||||
-rw-r--r-- | tests/scripts/misc/general4 | 27 |
2 files changed, 35 insertions, 0 deletions
diff --git a/tests/scripts/features/se_implicit b/tests/scripts/features/se_implicit index 0c38c17..c2ae648 100644 --- a/tests/scripts/features/se_implicit +++ b/tests/scripts/features/se_implicit @@ -12,6 +12,7 @@ $dir =~ s,.*/([^/]+)$,../$1,; # Test #1: automatic variables. # run_make_test(' +.SECONDEXPANSION: .DEFAULT: ; @echo $@ foo.a: bar baz @@ -60,6 +61,7 @@ buz # Test #2: target/pattern -specific variables. # run_make_test(' +.SECONDEXPANSION: foo.x: foo.%: $$(%_a) $$(%_b) bar @@ -81,6 +83,7 @@ baz # Test #3: order of prerequisites. # run_make_test(' +.SECONDEXPANSION: .DEFAULT: ; @echo $@ all: foo bar baz @@ -132,6 +135,7 @@ baz.2 # Test #4: stem splitting logic. # run_make_test(' +.SECONDEXPANSION: $(dir)/tmp/bar.o: $(dir)/tmp/foo/bar.c: ; @echo $@ @@ -153,6 +157,7 @@ $dir/tmp/bar.o: {$dir/tmp/foo/bar.c} $dir/tmp/foo/bar.c $dir/tmp/bar/bar.c foo.h # Test #5: stem splitting logic and order-only prerequisites. # run_make_test(' +.SECONDEXPANSION: $(dir)/tmp/foo.o: $(dir)/tmp/foo.c $(dir)/tmp/foo.c: ; @echo $@ bar.h: ; @echo $@ @@ -171,6 +176,7 @@ $dir/tmp/foo.o: {$dir/tmp/foo.c} {bar.h} $dir/tmp/foo.c # Test #6: lack of implicit prerequisites. # run_make_test(' +.SECONDEXPANSION: foo.o: foo.c foo.c: ; @echo $@ @@ -186,6 +192,7 @@ foo.o: {foo.c} foo.c # Test #7: Test stem from the middle of the name. # run_make_test(' +.SECONDEXPANSION: foobarbaz: foo%baz: % $$*.1 @@ -204,6 +211,7 @@ bar # Test #8: Make sure stem triple-expansion does not happen. # run_make_test(' +.SECONDEXPANSION: foo$$bar: f%r: % $$*.1 diff --git a/tests/scripts/misc/general4 b/tests/scripts/misc/general4 index bce4a30..ccccf88 100644 --- a/tests/scripts/misc/general4 +++ b/tests/scripts/misc/general4 @@ -53,4 +53,31 @@ baz$$bar bar$$baz: ; @echo '$@' '', "baz\$bar\ndone baz\$bar"); + +# Test implicit rules with '$' in the name (see se_implicit) +# Use the '$' in the pattern. + +run_make_test(q! +%.foo : %$$bar ; @echo 'done $<' +test.foo: +test$$bar: ; @echo '$@' +!, + '', + "test\$bar\ndone test\$bar"); + +# Make sure that subdirectories built as prerequisites are actually handled +# properly... this time with '$' + +run_make_test(q! + +all: dir/subdir/file.$$a + +dir/subdir: ; @echo mkdir -p '$@' + +dir/subdir/file.$$b: dir/subdir ; @echo touch '$@' + +dir/subdir/%.$$a: dir/subdir/%.$$b ; @echo 'cp $< $@' +!, + '', "mkdir -p dir/subdir\ntouch dir/subdir/file.\$b\ncp dir/subdir/file.\$b dir/subdir/file.\$a\n"); + 1; |