0040-dc.sh - sbase - suckless unix tools
HTML git clone git://git.suckless.org/sbase
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
0040-dc.sh (2273B)
---
1 #!/bin/sh
2
3 tmp1=$$.tmp1
4 tmp2=$$.tmp2
5
6 trap 'rm -f $tmp1 $tmp2' EXIT
7 trap 'exit $?' HUP INT TERM
8
9 # Test x, >, !>, <, !<, =, != commands
10 # Note: dc pops values and compares: first_popped OP second_popped
11 # So "3 5 >a" pops 5 then 3, checks 5 > 3 (true)
12 # And "5 3 >a" pops 3 then 5, checks 3 > 5 (false)
13 ($EXEC ../dc <<'EOF' 2>$tmp2
14 [test 1:]pc [42p]x c
15 [test 2:]pc 5 x p c
16 [test 3:]pc []x c
17 [test 4:]pc [[10p]x]x c
18 [test 5:]pc [[YES]p]sa 3 5 >a c
19 [test 6:]pc [[NO]p]sa 5 3 >a c
20 [test 7:]pc [[NO]p]sa 5 5 >a c
21 [test 8:]pc [[YES]p]sa 5 3 <a c
22 [test 9:]pc [[NO]p]sa 3 5 <a c
23 [test 10:]pc [[NO]p]sa 5 5 <a c
24 [test 11:]pc [[YES]p]sa 5 5 =a c
25 [test 12:]pc [[NO]p]sa 5 3 =a c
26 [test 13:]pc [[NO]p]sa 3 5 !>a c
27 [test 14:]pc [[YES]p]sa 5 3 !>a c
28 [test 15:]pc [[YES]p]sa 5 5 !>a c
29 [test 16:]pc [[NO]p]sa 5 3 !<a c
30 [test 17:]pc [[YES]p]sa 3 5 !<a c
31 [test 18:]pc [[YES]p]sa 5 5 !<a c
32 [test 19:]pc [[YES]p]sa 5 3 !=a c
33 [test 20:]pc [[NO]p]sa 5 5 !=a c
34 [test 21:]pc [[NO]p]sa _3 _5 >a c
35 [test 22:]pc [[YES]p]sa _5 _3 >a c
36 [test 23:]pc [[NO]p]sa 3 _5 >a c
37 [test 24:]pc [[YES]p]sa _3 5 >a c
38 [test 25:]pc [[YES]p]sa 0 0 =a c
39 [test 26:]pc [[YES]p]sa _0 0 =a c
40 [test 27:]pc [[YES]p]sa 1.4 1.5 >a c
41 [test 28:]pc [[YES]p]sa 1.5 1.5 =a c
42 [test 29:]pc [[YES]p]sa 1.5 1.4 <a c
43 [test 30:]pc [[YES]p]sa 99999999999999999998 99999999999999999999 >a c
44 [test 31:]pc [d p 1 - d 0 <a]sa 5 la x c
45 [test 32:]pc [[YES]p]sa [2 2 =a]sb 2 2 =b c
46 [test 33:]pc 99 sa la x p c
47 [test 34:]pc [3p]sa [2p]sb 2 3 >a 3 2 <b c
48 [test 35:]pc [[NO]p]sa 1 2 <a z p c
49 [test 36:]pc [[[[[77p]]]]]x x x x x c
50 [test 37:]pc [[YES]p]sa 2k 1.50 1.5 =a c
51 [test 38:]pc [1p]x [2p]x [3p]x c
52 [test 39:]pc x
53 [test 40:]pc [[NO]p]sa 5 >a
54 [test 41:]pc [[NO]p]sa >a
55 EOF
56 cat $tmp2) > $tmp1
57
58 diff -u - $tmp1 <<'EOF'
59 test 1:
60 42
61 test 2:
62 5
63 test 3:
64 test 4:
65 10
66 test 5:
67 YES
68 test 6:
69 test 7:
70 test 8:
71 YES
72 test 9:
73 test 10:
74 test 11:
75 YES
76 test 12:
77 test 13:
78 test 14:
79 YES
80 test 15:
81 YES
82 test 16:
83 test 17:
84 YES
85 test 18:
86 YES
87 test 19:
88 YES
89 test 20:
90 test 21:
91 test 22:
92 YES
93 test 23:
94 test 24:
95 YES
96 test 25:
97 YES
98 test 26:
99 YES
100 test 27:
101 YES
102 test 28:
103 YES
104 test 29:
105 YES
106 test 30:
107 YES
108 test 31:
109 5
110 4
111 3
112 2
113 1
114 test 32:
115 YES
116 test 33:
117 99
118 test 34:
119 3
120 2
121 test 35:
122 0
123 test 36:
124 77
125 test 37:
126 YES
127 test 38:
128 1
129 2
130 3
131 test 39:
132 test 40:
133 test 41:
134 ../dc: stack empty
135 ../dc: stack empty
136 ../dc: stack empty
137 EOF