pike.git/
src/
testsuite.in
Branch:
Tag:
Non-build tags
All tags
No tags
2002-03-02
2002-03-02 18:51:36 by Martin Stjernholm <mast@lysator.liu.se>
d638b5713f091d9463fee054214baf9faee8295f (
43
lines) (+
42
/-
1
)
[
Show
|
Annotate
]
Branch:
7.9
Added some test cases for switches with case ranges.
Rev: src/testsuite.in:1.488
1:
-
test_true([["$Id: testsuite.in,v 1.
487
2002/03/
01
15
:
34
:
26
mast Exp $"]]);
+
test_true([["$Id: testsuite.in,v 1.
488
2002/03/
02
18
:
51
:
36
mast Exp $"]]);
cond([[all_constants()->_verify_internals]], [[
6279:
// use sprintf here; the sums aren't totally equal for doubles (error~=1e-16) test_any([[float e,q; q=0.0; for(e=0.1;e<10.0;e+=1.0) switch(e) { default: q+=e; case 4.0..8.0: } return sprintf("%.6f",q)]],[[sprintf("%.6f",0.1+1.1+2.1+3.1+8.1+9.1)]])
+
test_compile_error([[switch (1) {case 1: break; case 1: break;}]])
+
test_compile_error([[switch (1) {case 1: break; case 0..2: break;}]])
+
test_compile_error([[switch (1) {case 1..2: break; case 0..3: break;}]])
+
test_compile_error([[switch (1) {case 1..3: break; case 0..2: break;}]])
+
test_compile_error([[switch (1) {case 1..2: break; case 0..: break;}]])
+
test_compile_error([[switch (1) {case 1..2: break; case ..3: break;}]])
+
test_compile_error([[switch (1) {case 1..: break; case ..3: break;}]])
+
test_compile_error([[switch (1) {case ..: break;}]])
+
test_compile_error([[switch (1) {case "x"..: break;}]])
+
test_compile_error([[switch (1) {case .."y": break;}]])
+
test_compile_error([[switch (1) {case "x".."y": break;}]])
+
+
define(test_switch_ranges,[[
+
test_any_equal([[
+
int f (int i) {{$1;} return 0;};
+
array res = ({});
+
for (int i = -3; i <= 3; i++) res += ({f (i)});
+
return res;
+
]], $2)
+
]])
+
+
test_switch_ranges([[
+
switch (i) {case 1..2: return 2; case -2..-1: return 1;}
+
]], ({0, 1, 1, 0, 2, 2, 0}))
+
test_switch_ranges([[
+
switch (i) {case 1..2: return 2; case -2..0: return 1;}
+
]], ({0, 1, 1, 1, 2, 2, 0}))
+
test_switch_ranges([[
+
switch (i) {case 1..2: return 2; case -2..-1: return 1; case 0: return 3;}
+
]], ({0, 1, 1, 3, 2, 2, 0}))
+
test_switch_ranges([[
+
switch (i) {case 1..2: return 2; case ..-1: return 1; case 0: return 3;}
+
]], ({1, 1, 1, 3, 2, 2, 0}))
+
test_switch_ranges([[
+
switch (i) {case 1..: return 2; case -2..-1: return 1; case 0: return 3;}
+
]], ({0, 1, 1, 3, 2, 2, 2}))
+
test_switch_ranges([[
+
switch (i) {case 1..: return 2; case ..-1: return 1; case 0: return 3;}
+
]], ({1, 1, 1, 3, 2, 2, 2}))
+
// Breaks and continues with labels test_compile_error([[break;]]) test_compile_error([[continue;]])