1# This file is part of GNU Rush.
2# Copyright (C) 2016-2019 Sergey Poznyakoff
3#
4# GNU Rush is free software; you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
6# the Free Software Foundation; either version 3, or (at your option)
7# any later version.
8#
9# GNU Rush is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with GNU Rush.  If not, see <http://www.gnu.org/licenses/>.
16
17AT_SETUP([env])
18AT_KEYWORDS([env])
19
20AT_RUSH_TEST([
21rule
22    env -
23],
24[environ],
25[command],
26[0],
27[{
28    "environ":[[]]
29}
30],
31[rush: Notice: parsing legacy configuration file test.conf
32])
33
34m4_pushdef([RUSH_ENVIRON],[-i HOME=$PWD USER=$MY_USER LOGIN=$MY_USER])
35AT_RUSH_TEST([
36rule
37    env -LOGIN
38],
39[environ],
40[command],
41[0],
42[{
43    "environ":[[
44        "HOME=$TESTDIR",
45        "USER=$MY_USER"
46    ]]
47}
48],
49[rush: Notice: parsing legacy configuration file test.conf
50])
51
52AT_RUSH_TEST([
53rule
54    env -LOGIN=$MY_USER
55],
56[environ],
57[command],
58[0],
59[{
60    "environ":[[
61        "HOME=$TESTDIR",
62        "USER=$MY_USER"
63    ]]
64}
65],
66[rush: Notice: parsing legacy configuration file test.conf
67])
68m4_popdef([RUSH_ENVIRON])
69
70m4_pushdef([RUSH_ENVIRON],[-i HOME=$PWD USER=$MY_USER LOGIN=NO_$MY_USER])
71AT_RUSH_TEST([
72rule
73    env -LOGIN=$MY_USER
74],
75[environ],
76[command],
77[0],
78[{
79    "environ":[[
80        "HOME=$TESTDIR",
81        "LOGIN=NO_$MY_USER",
82        "USER=$MY_USER"
83    ]]
84}
85],
86[rush: Notice: parsing legacy configuration file test.conf
87])
88m4_popdef([RUSH_ENVIRON])
89
90m4_pushdef([RUSH_ENVIRON],[-i HOME=$PWD USER=$MY_USER LOGIN=NO_$MY_USER PATH=$PATH])
91AT_RUSH_TEST([
92rule
93    env - HOME USER
94],
95[environ],
96[command],
97[0],
98[{
99    "environ":[[
100        "HOME=$TESTDIR",
101        "USER=$MY_USER"
102    ]]
103}
104],
105[rush: Notice: parsing legacy configuration file test.conf
106])
107m4_popdef([RUSH_ENVIRON])
108
109m4_pushdef([RUSH_ENVIRON],[-i HOME=$PWD USER=$MY_USER])
110AT_RUSH_TEST([
111rule
112    env NEWVAR=foo
113],
114[environ],
115[command],
116[0],
117[{
118    "environ":[[
119        "HOME=$TESTDIR",
120        "NEWVAR=foo",
121        "USER=$MY_USER"
122    ]]
123}
124],
125[rush: Notice: parsing legacy configuration file test.conf
126])
127m4_popdef([RUSH_ENVIRON])
128
129m4_pushdef([RUSH_ENVIRON],[-i])
130AT_RUSH_TEST([
131rule
132    env MYPATH+=:/usr/local/bin
133],
134[environ],
135[command],
136[0],
137[{
138    "environ":[[
139        "MYPATH=/usr/local/bin"
140    ]]
141}
142],
143[rush: Notice: parsing legacy configuration file test.conf
144])
145m4_popdef([RUSH_ENVIRON])
146
147m4_pushdef([RUSH_ENVIRON],[-i MYPATH=/bin:/usr/bin])
148AT_RUSH_TEST([
149rule
150    env MYPATH+=:/usr/local/bin
151],
152[environ],
153[command],
154[0],
155[{
156    "environ":[[
157        "MYPATH=/bin:/usr/bin:/usr/local/bin"
158    ]]
159}
160],
161[rush: Notice: parsing legacy configuration file test.conf
162])
163m4_popdef([RUSH_ENVIRON])
164
165m4_pushdef([RUSH_ENVIRON],[-i])
166AT_RUSH_TEST([
167rule
168    env MYPATH=+/usr/local/bin:
169],
170[environ],
171[command],
172[0],
173[{
174    "environ":[[
175        "MYPATH=/usr/local/bin"
176    ]]
177}
178],
179[rush: Notice: parsing legacy configuration file test.conf
180])
181m4_popdef([RUSH_ENVIRON])
182
183m4_pushdef([RUSH_ENVIRON],[-i MYPATH=/bin:/usr/bin])
184AT_RUSH_TEST([
185rule
186    env MYPATH=+/usr/local/bin:
187],
188[environ],
189[command],
190[0],
191[{
192    "environ":[[
193        "MYPATH=/usr/local/bin:/bin:/usr/bin"
194    ]]
195}
196],
197[rush: Notice: parsing legacy configuration file test.conf
198])
199m4_popdef([RUSH_ENVIRON])
200
201m4_pushdef([RUSH_ENVIRON],[-i MYPATH=/bin:/usr/bin])
202AT_RUSH_TEST([
203rule
204    env MYPATH=/usr/local/bin:\$MYPATH
205],
206[environ],
207[command],
208[0],
209[{
210    "environ":[[
211        "MYPATH=/usr/local/bin:/bin:/usr/bin"
212    ]]
213}
214],
215[rush: Notice: parsing legacy configuration file test.conf
216])
217m4_popdef([RUSH_ENVIRON])
218
219AT_CLEANUP
220