Add typed exception unit tests
This commit is contained in:
parent
ef69e4a2f1
commit
497dd89046
21
unittests/exception_typed.chai
Normal file
21
unittests/exception_typed.chai
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
auto x = 1
|
||||||
|
try {
|
||||||
|
throw(x)
|
||||||
|
x = 2
|
||||||
|
}
|
||||||
|
catch(int e) {
|
||||||
|
x = e + 3
|
||||||
|
}
|
||||||
|
assert_equal(4, x);
|
||||||
|
|
||||||
|
x = 1
|
||||||
|
try {
|
||||||
|
throw(x)
|
||||||
|
x = 2
|
||||||
|
}
|
||||||
|
catch(string e) {
|
||||||
|
}
|
||||||
|
catch(e) {
|
||||||
|
x = e + 4
|
||||||
|
}
|
||||||
|
assert_equal(5, x);
|
34
unittests/exception_typed_2.chai
Normal file
34
unittests/exception_typed_2.chai
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
auto results = [];
|
||||||
|
|
||||||
|
for (auto i = 2; i < 6; ++i) {
|
||||||
|
try {
|
||||||
|
throw(i)
|
||||||
|
}
|
||||||
|
catch(int e) : e < 2 {
|
||||||
|
results.push_back("c1: " + e.to_string());
|
||||||
|
}
|
||||||
|
catch(int e) : e < 4 {
|
||||||
|
results.push_back("c2: " + e.to_string());
|
||||||
|
}
|
||||||
|
catch(e) {
|
||||||
|
results.push_back("c3: " + e.to_string());
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
// Should never get called
|
||||||
|
assert_equal(false, true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
throw(3)
|
||||||
|
}
|
||||||
|
catch(int e) : e < 3
|
||||||
|
{
|
||||||
|
// Should never get called
|
||||||
|
assert_equal(false, true);
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
results.push_back("defaultcatch");
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_equal(["c2: 2", "c2: 3", "c3: 4", "c3: 5", "defaultcatch"], results);
|
Loading…
x
Reference in New Issue
Block a user