Improve backslash/newline handling to adhere to POSIX requirements.
[make.git] / tests / scripts / misc / bs-nl
blob979abb5b8c109cbf26d559190ef03c5f11987ade
1 #                                                                    -*-perl-*-
2 $description = "Test backslash-newline handling.";
4 $details = "";
6 # TEST #1
7 # -------
9 # Backslash-newlines in recipes
11 # These are basic backslash-newlines with no tricks
12 run_make_test("fast:;\@echo fa\\\nst\n",
13               '', 'fast');
15 run_make_test("slow:;\@: no-op; echo sl\\\now\n",
16               '', 'slow');
18 run_make_test("dquote:;\@echo \"dqu\\\note\"\n",
19               '', 'dquote');
21 run_make_test("squote:;\@echo 'squ\\\note'\n",
22               '', "squ\\\note");
24 # Ensure that a leading prefix character is omitted
25 run_make_test("fast:;\@echo fa\\\n\tst\n",
26               '', 'fast');
28 run_make_test("slow:;\@: no-op; echo sl\\\n\tow\n",
29               '', 'slow');
31 run_make_test("dquote:;\@echo \"dqu\\\n\tote\"\n",
32               '', 'dquote');
34 run_make_test("squote:;\@echo 'squ\\\n\tote'\n",
35               '', "squ\\\note");
37 # Ensure that ONLY the leading prefix character is omitted
38 run_make_test("fast:;\@echo fa\\\n\t  st\n",
39               '', 'fa st');
41 run_make_test("slow:;\@: no-op; echo sl\\\n\t\tow\n",
42               '', "sl ow");
44 run_make_test("dquote:;\@echo \"dqu\\\n\t    ote\"\n",
45               '', 'dqu    ote');
47 run_make_test("squote:;\@echo 'squ\\\n\t\t   ote'\n",
48               '', "squ\\\n\t   ote");
50 # Backslash-newlines in variable values
52 # Simple
53 run_make_test("
54 var = he\\\nllo
55 var:;\@echo '|\$(var)|'",
56               '', "|he llo|");
58 # Preserve preceding space
59 run_make_test("
60 var = he  \\\nllo
61 var:;\@echo '|\$(var)|'",
62               '', "|he   llo|");
64 # Remove leading space
65 run_make_test("
66 var = he\\\n    llo
67 var:;\@echo '|\$(var)|'",
68               '', "|he llo|");
70 # One space per bs-nl
71 run_make_test("
72 var = he\\\n\\\n\\\n    llo
73 var:;\@echo '|\$(var)|'",
74               '', "|he   llo|");