Improve integer tests
[vala-lang.git] / tests / exceptions.test
blob46956493032f63a3d62970b848a7345557fa9af6
2 Program: test
4 using GLib;
6 errordomain Maman.BarError {
7         FOO,
8         BAR
11 class Maman.Bar : Object {
12         public void foo () throws BarError {
13                 stdout.printf (" 6");
15                 throw new BarError.FOO (" 8");
17                 stdout.printf (" BAD");
18         }
20         public int bad () throws BarError {
21                 stdout.printf (" 5");
23                 foo ();
25                 stdout.printf (" BAD");
27                 return 0;
28         }
30         public void good () throws BarError {
31                 stdout.printf (" 4");
32         }
34         public void error_cast_check (GLib.Error e) {}
36         public void run () {
37                 stdout.printf (" 2");
39                 try {
40                         stdout.printf (" 3");
42                         good ();
44                         int i = bad ();
46                         good ();
48                         stdout.printf (" BAD");
49                 } catch (BarError e) {
50                         stdout.printf (" 7");
52                         stdout.printf ("%s", e.message);
54                         stdout.printf (" 9");
55                 }
57                 stdout.printf (" 10");
58         }
60         static void test_generic_catch () {
61                 try {
62                         throw new BarError.FOO ("error message");
63                 } catch (Error e) {
64                         return;
65                 }
67                 assert_not_reached ();
68         }
70         static void test_try_without_error () {
71                 try {
72                 } catch (Error e) {
73                         assert_not_reached ();
74                 }
75         }
77         static int main (string[] args) {
78                 stdout.printf ("Exception Test: 1");
79                 
80                 var bar = new Bar ();
81                 bar.run ();
83                 stdout.printf (" 11\n");
85                 test_generic_catch ();
87                 return 0;
88         }