aboutsummaryrefslogtreecommitdiff
path: root/unit-tests/test/script/parser/redirect.test
blob: af4295ad0160b55664711bc733e375cc35d66104 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# @@ Add tests for redirects other than file and merge.
# @@ Does it make sense to split into separate files - one per redirect type?
#

$* <<EOI >>EOO          # file
cmd 0<<<a 1>>>b 2>>>&c
EOI
cmd <<<a >>>b 2>>>&c
EOO

$* <<EOI >>EOO          # quote-file
cmd 0<<<"a f" 1>>>"b f" 2>>>&"c f"
EOI
cmd <<<"a f" >>>"b f" 2>>>&"c f"
EOO

$* <<EOI 2>>EOE !=0     # in-file-fail1
cmd <<<
EOI
testscript:1:8: error: missing stdin file
EOE

$* <<EOI 2>>EOE !=0     # in-file-fail2
cmd <<<""
EOI
testscript:1:8: error: empty stdin redirect path
EOE

$* <<EOI 2>>EOE !=0     # out-file-fail1
cmd >>>
EOI
testscript:1:8: error: missing stdout file
EOE

$* <<EOI 2>>EOE !=0     # out-file-fail2
cmd >>>""
EOI
testscript:1:8: error: empty stdout redirect path
EOE

$* <<EOI 2>>EOE !=0     # err-file-fail1
cmd 2>>>
EOI
testscript:1:9: error: missing stderr file
EOE

$* <<EOI 2>>EOE !=0     # err-file-fail2
cmd 2>>>""
EOI
testscript:1:9: error: empty stderr redirect path
EOE

$* <<EOI >>EOO          # out-merge1
cmd 1>&2
EOI
cmd >&2
EOO

$* <<EOI >>EOO          # out-merge2
cmd 1>&2 2>&1 2>a
EOI
cmd >&2 2>a
EOO

$* <<EOI 2>>EOE != 0    # out-merge-fail1
cmd 1>&a
EOI
testscript:1:8: error: stdout merge redirect file descriptor must be 2
EOE

$* <<EOI 2>>EOE != 0    # out-merge-fail2
cmd 1>&1
EOI
testscript:1:8: error: stdout merge redirect file descriptor must be 2
EOE

$* <<EOI 2>>EOE != 0    # out-merge-fail3
cmd 1>&
EOI
testscript:1:8: error: missing stdout file descriptor
EOE

$* <<EOI >>EOO          # err-merge1
cmd 2>&1
EOI
cmd 2>&1
EOO

$* <<EOI >>EOO          # err-merge2
cmd 1>&2 2>&1 >a
EOI
cmd >a 2>&1
EOO

$* <<EOI 2>>EOE != 0    # err-merge-fail1
cmd 2>&2
EOI
testscript:1:8: error: stderr merge redirect file descriptor must be 1
EOE

$* <<EOI 2>>EOE != 0    # err-merge-fail2
cmd 2>&2
EOI
testscript:1:8: error: stderr merge redirect file descriptor must be 1
EOE

$* <<EOI 2>>EOE != 0    # err-merge-fail3
cmd 2>&
EOI
testscript:1:8: error: missing stderr file descriptor
EOE

$* <<EOI 2>>EOE != 0    # merge-fail1
cmd 1>&2 2>&1
EOI
testscript:1:14: error: stdout and stderr redirected to each other
EOE