aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/test7.in
blob: 3229827568759179a9e95be37d728c5092889f60 (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
# Test that subsequent cases do not blow away the status from previous ones
for val in one two three four
	switch $val
	case one
		/bin/sh -c 'exit 1'
	case two
		/bin/sh -c 'exit 2'
	case three
		/bin/sh -c 'exit 3'
	end
	echo $status
end

echo

# Test that the `switch` builtin itself does not blow away status before evaluating a case
false
switch one
case one
	echo $status
end

#test contains -i
echo test contains -i
contains -i string a b c string d
contains -i string a b c d; or echo nothing
contains -i -- string a b c string d
contains -i -- -- a b c; or echo nothing
contains -i -- -- a b c -- v

# Test if, else, and else if
if true
	echo alpha1.1
	echo alpha1.2
else if false
	echo beta1.1
	echo beta1.2
else if false
	echo gamma1.1
	echo gamma1.2
else
	echo delta1.1
	echo delta1.2
end

if false
	echo alpha2.1
	echo alpha2.2
else if begin ; true ; end
	echo beta2.1
	echo beta2.2
else if begin ; echo nope2.1; false ; end
	echo gamma2.1
	echo gamma2.2
else
	echo delta2.1
	echo delta2.2
end

if false
	echo alpha3.1
	echo alpha3.2
else if begin ; echo yep3.1; false ; end
	echo beta3.1
	echo beta3.2
else if begin ; echo yep3.2; true ; end
	echo gamma3.1
	echo gamma3.2
else
	echo delta3.1
	echo delta3.2
end

if false
	echo alpha4.1
	echo alpha4.2
else if begin ; echo yep4.1; false ; end
	echo beta4.1
	echo beta4.2
else if begin ; echo yep4.2; false ; end
	echo gamma4.1
	echo gamma4.2
else
	echo delta4.1
	echo delta4.2
end

if test ! -n "abc"
else if test -n "def"
	echo "epsilon5.2"
else if not_a_valid_command but it should be OK because a previous branch was taken
	echo "epsilon 5.3"
else if test ! -n "abc"
	echo "epsilon 5.4"	
end

# Ensure builtins work
# https://github.com/fish-shell/fish-shell/issues/359
if not echo skip1 > /dev/null
	echo "zeta 6.1"
else if echo skip2 > /dev/null
	echo "zeta 6.2"
end

echo '###'

# Ensure 'type' works
# https://github.com/fish-shell/fish-shell/issues/513
function fish_test_type_zzz
	true
end
# Should succeed
type -q fish_test_type_zzz ; echo $status
# Should fail
type -q -f fish_test_type_zzz ; echo $status