2 $description = "Test various types of escaping in makefiles.";
5 Make sure that escaping of ':' works in target names.
6 Make sure escaping of whitespace works in target names.
7 Make sure that escaping of '#' works.
8 Make sure that backslash before non-special characters are kept.";
17 $(path)foo : ; @echo "touch ($@)"
19 foo\ bar: ; @echo "touch ($@)"
22 foo\#bar.ext: ; @echo "foo#bar.ext = ($@)"',
26 # TEST 2: This one should fail, since the ":" is unquoted.
30 "#MAKEFILE#:2: *** target pattern contains no '%'. Stop.",
33 # TEST 3: This one should work, since we escape the ":".
39 # TEST 4: This one should fail, since the escape char is escaped.
43 "#MAKEFILE#:2: *** target pattern contains no '%'. Stop.",
46 # TEST 5: This one should work
52 # TEST 6: Test escaped comments
56 'foo#bar.ext = (foo#bar.ext)');
58 # Test escaped colons in prerequisites
59 # Quoting of backslashes in q!! is kind of messy.
61 foo: foo\\:bar foo\\\\\\:bar foo\\\\\\\\\\:bar
62 foo foo\\:bar foo\\\\\\:bar foo\\\\\\\\\\:bar: ; @echo '$@'
64 '', "foo:bar\nfoo\\:bar\nfoo\\\\:bar\nfoo\n");
66 # Test backslash before non-special chars: should be kept as-is
70 .DEFAULT: ; @echo '$@'
74 # This tells the test driver that the perl test script executed properly.