File: host.at

package info (click to toggle)
pspp 2.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 66,676 kB
  • sloc: ansic: 267,210; xml: 18,446; sh: 5,534; python: 2,881; makefile: 125; perl: 64
file content (145 lines) | stat: -rw-r--r-- 4,002 bytes parent folder | download
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
dnl PSPP - a program for statistical analysis.
dnl Copyright (C) 2017 Free Software Foundation, Inc.
dnl
dnl This program is free software: you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation, either version 3 of the License, or
dnl (at your option) any later version.
dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
dnl
AT_BANNER([HOST - portable tests])

AT_SETUP([HOST - one command])
AT_DATA([host.sps], [dnl
HOST COMMAND=[['echo "hi there" > file']].
])
AT_CHECK([pspp -O format=csv host.sps])
AT_CHECK([cat file], [0], [hi there
])
AT_CLEANUP

AT_SETUP([HOST - two commands])
AT_DATA([host.sps], [dnl
HOST COMMAND=[['echo a > a' 'echo b > b']].
])
AT_CHECK([pspp -O format=csv host.sps])
AT_CHECK([cat a], [0], [a
])
AT_CHECK([cat b], [0], [b
])
AT_CLEANUP

AT_SETUP([HOST - time limit])
AT_DATA([host.sps], [dnl
HOST COMMAND=[['sleep 10']] TIMELIMIT=0.1.
])
if $MINGW; then
    AT_CHECK([pspp -O format=csv host.sps], [1], [dnl
host.sps:1: error: HOST: Time limit not supported on this platform.
])
else
    AT_CHECK([pspp -O format=csv host.sps], [0], [dnl
"host.sps:1: warning: HOST: Command ""sleep 10"" timed out."
])
fi
AT_CLEANUP

AT_BANNER([HOST - Unix-like OSes only])

AT_SETUP([HOST - command failure])
AT_SKIP_IF([$MINGW])
AT_DATA([host.sps], [dnl
HOST COMMAND=[['exit 1' 'echo "Not reached"']].
])
AT_CHECK([pspp -O format=csv host.sps], [0], [dnl
"host.sps:1: warning: HOST: Command ""exit 1"" exited with status 1."
])
AT_CLEANUP

AT_SETUP([HOST - nonexistent shell])
AT_SKIP_IF([$MINGW])
AT_DATA([host.sps], [dnl
HOST COMMAND=[['echo hi']].
])
AT_CHECK([SHELL=/nonexistent pspp -O format=csv host.sps], [0], [dnl
"host.sps:1: warning: HOST: Command ""echo hi"" exited with status 127 (Command or shell not found)."
])
AT_CLEANUP

AT_SETUP([HOST - nonexistent command])
AT_SKIP_IF([$MINGW])
AT_DATA([host.sps], [dnl
HOST COMMAND=[['/nonexistent']].
])
AT_CHECK([pspp -O format=csv host.sps | head -1], [0], [dnl
"host.sps:1: warning: HOST: Command ""/nonexistent"" exited with status 127 (Command or shell not found)."
])
AT_CLEANUP

AT_SETUP([HOST - output to stdout])
AT_SKIP_IF([$MINGW])
AT_DATA([host.sps], [dnl
HOST COMMAND=[['echo hi']].
])
AT_CHECK([pspp -O format=csv host.sps], [0], [hi
])
AT_CLEANUP

AT_SETUP([HOST - output to stderr])
AT_SKIP_IF([$MINGW])
AT_DATA([host.sps], [dnl
HOST COMMAND=[['echo hi 2>&1']].
])
AT_CHECK([pspp -O format=csv host.sps], [0], [hi
])
AT_CLEANUP

AT_SETUP([HOST - input from stdin])
AT_SKIP_IF([$MINGW])
AT_DATA([host.sps], [dnl
HOST COMMAND=[['cat && echo ok || echo fail']] TIMELIMIT=5.
])
AT_CHECK([pspp -O format=csv host.sps], [0], [ok
])
AT_CLEANUP

dnl This is a special case inside run_command().
AT_SETUP([HOST - zero time limit])
AT_SKIP_IF([$MINGW])
AT_DATA([host.sps], [dnl
HOST COMMAND=[['sleep 10']] TIMELIMIT=0.
])
AT_CHECK([pspp -O format=csv host.sps], [0], [dnl
"host.sps:1: warning: HOST: Command ""sleep 10"" timed out."
])
AT_CLEANUP

AT_SETUP([HOST - signal termination])
AT_SKIP_IF([$MINGW])
AT_DATA([host.sps], [dnl
HOST COMMAND=[['kill -ABRT $$' 'echo "Not reached"']].
])
AT_CHECK([pspp -O format=csv host.sps], [0], [dnl
"host.sps:1: warning: HOST: Command ""kill -ABRT $$"" terminated by signal 6."
])
AT_CLEANUP

AT_SETUP([HOST - SAFER])
AT_SKIP_IF([$MINGW])
AT_DATA([host.sps], [dnl
SET SAFER=ON.
HOST COMMAND=[['sleep 10']] TIMELIMIT=0.1.
])
AT_CHECK([pspp -O format=csv host.sps], [1], [dnl
"host.sps:2.1-2.4: error: HOST: This command not allowed when the SAFER option is set.
    2 | HOST COMMAND=[['sleep 10']] TIMELIMIT=0.1.
      | ^~~~"
])
AT_CLEANUP