summary refs log tree commit diff
path: root/bin/cash/tests/expansion/arith2.0
blob: d5ddbd0daf0629f47f24628eb68b2e067803667c (plain) (blame)
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
# $FreeBSD: releng/12.0/bin/sh/tests/expansion/arith2.0 209652 2010-07-02 21:31:24Z jilles $

failures=0

check() {
	if [ $(($1)) != $2 ]; then
		failures=$((failures+1))
		echo "For $1, expected $2 actual $(($1))"
	fi
}

# variables
unset v
check "v=2" 2
check "v" 2
check "$(($v))" 2
check "v+=1" 3
check "v" 3

# constants
check "4611686018427387904" 4611686018427387904
check "0x4000000000000000" 4611686018427387904
check "0400000000000000000000" 4611686018427387904
check "0x4Ab0000000000000" 5381801554707742720
check "010" 8

# try out all operators
v=42
check "!v" 0
check "!!v" 1
check "!0" 1
check "~0" -1
check "~(-1)" 0
check "-0" 0
check "-v" -42
check "v*v" 1764
check "v/2" 21
check "v%10" 2
check "v+v" 84
check "v-4" 38
check "v<<1" 84
check "v>>1" 21
check "v<43" 1
check "v>42" 0
check "v<=43" 1
check "v>=43" 0
check "v==41" 0
check "v!=42" 0
check "v&3" 2
check "v^3" 41
check "v|3" 43
check "v>=40&&v<=44" 1
check "v<40||v>44" 0
check "(v=42)&&(v+=1)==43" 1
check "v" 43
check "(v=42)&&(v-=1)==41" 1
check "v" 41
check "(v=42)&&(v*=2)==84" 1
check "v" 84
check "(v=42)&&(v/=10)==4" 1
check "v" 4
check "(v=42)&&(v%=10)==2" 1
check "v" 2
check "(v=42)&&(v<<=1)==84" 1
check "v" 84
check "(v=42)&&(v>>=2)==10" 1
check "v" 10
check "(v=42)&&(v&=32)==32" 1
check "v" 32
check "(v=42)&&(v^=32)==10" 1
check "v" 10
check "(v=42)&&(v|=32)==42" 1
check "v" 42

# missing: ternary

exit $((failures != 0))
pan='3' class='logmsg'> If background-color is only set on body then overscroll in Safari reveals white. 2019-07-12Make author consistent and update URLsJune McEnroe 2019-07-12Move to www/text.causal.agencyJune McEnroe 2019-07-12Add new causal.agency with shotty shotsJune McEnroe 2019-07-12Use -s to infer terminal sizeJune McEnroe 2019-07-12Add DCH to shottyJune McEnroe This makes htop mostly work. Scrolling region still missing. 2019-07-12Support insert mode in shottyJune McEnroe This is how curses puts characters into the bottom-right cell of the terminal. 2019-07-11Don't do carriage return on line feedJune McEnroe 2019-07-11Interpret 256color-style SGRsJune McEnroe 2019-07-11Use inline style rather than <b>, <i>, <u>June McEnroe 2019-07-11Factor out clearJune McEnroe 2019-07-11Add bright option to shottyJune McEnroe 2019-07-11Output <b>, <i>, <u> in shottyJune McEnroe 2019-07-10Ignore SM and RMJune McEnroe 2019-07-09Add shotty man page and build itJune McEnroe 2019-07-09Add up -cJune McEnroe 2019-07-09Add options for default colors to shottyJune McEnroe 2019-07-08Use char literals consistentlyJune McEnroe