diff options
Diffstat (limited to 'tests/scripts/features/escape')
-rw-r--r-- | tests/scripts/features/escape | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/tests/scripts/features/escape b/tests/scripts/features/escape index 97a2994..bf069df 100644 --- a/tests/scripts/features/escape +++ b/tests/scripts/features/escape @@ -2,12 +2,10 @@ $description = "Test various types of escaping in makefiles."; $details = "\ -Make sure that escaping of `:' works in target names. +Make sure that escaping of ':' works in target names. Make sure escaping of whitespace works in target names. -Make sure that escaping of '#' works."; - - -close(MAKEFILE); +Make sure that escaping of '#' works. +Make sure that backslash before non-special characters are kept."; # TEST 1 @@ -26,7 +24,7 @@ foo\#bar.ext: ; @echo "foo#bar.ext = ($@)"', run_make_test(undef, 'path=pre:', - "#MAKEFILE#:2: *** target pattern contains no `%'. Stop.", + "#MAKEFILE#:2: *** target pattern contains no '%'. Stop.", 512); # TEST 3: This one should work, since we escape the ":". @@ -39,7 +37,7 @@ run_make_test(undef, run_make_test(undef, "'path=pre\\\\:'", - "#MAKEFILE#:2: *** target pattern contains no `%'. Stop.", + "#MAKEFILE#:2: *** target pattern contains no '%'. Stop.", 512); # TEST 5: This one should work @@ -54,5 +52,23 @@ run_make_test(undef, 'sharp', 'foo#bar.ext = (foo#bar.ext)'); +# Test escaped colons in prerequisites +# Quoting of backslashes in q!! is kind of messy. +# Solaris sh does not properly handle backslashes even in '' so just +# check the output make prints, not what the shell interprets. +run_make_test(q! +foo: foo\\:bar foo\\\\\\:bar foo\\\\\\\\\\:bar +foo foo\\:bar foo\\\\\\:bar foo\\\\\\\\\\:bar: ; : '$@' +!, + '', ": 'foo:bar'\n: 'foo\\:bar'\n: 'foo\\\\:bar'\n: 'foo'\n"); + +# Test backslash before non-special chars: should be kept as-is + +run_make_test(q! +all: ..\foo +.DEFAULT: ; : '$@' +!, + '', ": '..\\foo'\n"); + # This tells the test driver that the perl test script executed properly. 1; |