Modify backslash/newline handling for POSIX.
[make.git] / tests / scripts / misc / bs-nl
blobe27a3f757d3bc453056267223475cb528f2591da
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(q!
54 var = he\
55 llo
56 var:;@echo '|$(var)|'!,
57               '', "|he llo|");
59 # Condense trailing space
60 run_make_test(q!
61 var = he  \
62 llo
63 var:;@echo '|$(var)|'!,
64               '', "|he llo|");
66 # Remove leading space
67 run_make_test(q!
68 var = he\
69     llo
70 var:;@echo '|$(var)|'!,
71               '', "|he llo|");
73 # Multiple bs/nl condensed
74 run_make_test(q!
75 var = he\
78     llo
79 var:;@echo '|$(var)|'!,
80               '', "|he llo|");
82 # POSIX: Preserve trailing space
83 run_make_test(q!
84 .POSIX:
85 x = y
86 var = he  \
87 llo
88 var:;@echo '|$(var)|'!,
89               '', "|he   llo|");
91 # POSIX: One space per bs-nl
92 run_make_test(q!
93 .POSIX:
94 x = y
95 var = he\
98     llo
99 var:;@echo '|$(var)|'!,
100               '', "|he   llo|");