diff options
Diffstat (limited to 'Examples/test-suite/go/argcargvtest_runme.go')
-rw-r--r-- | Examples/test-suite/go/argcargvtest_runme.go | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/Examples/test-suite/go/argcargvtest_runme.go b/Examples/test-suite/go/argcargvtest_runme.go new file mode 100644 index 000000000..1bb1feb77 --- /dev/null +++ b/Examples/test-suite/go/argcargvtest_runme.go @@ -0,0 +1,55 @@ +package main + +import wrap "swigtests/argcargvtest" + +func main() { + largs := []string{"hi", "hola", "hello"} + if ri := wrap.Mainc(largs); ri != 3 { + panic(ri) + } + + targs := []string{"hi", "hola"} + if rs := wrap.Mainv(targs, 0); rs != "hi" { + panic(rs) + } + if rs := wrap.Mainv(targs, 1); rs != "hola" { + panic(rs) + } + if rs := wrap.Mainv(targs, 2); rs != "<<NULL>>" { + panic(rs) + } + +// For dynamically typed languages we test this throws an exception or similar +// at runtime, but for Go this doesn't even compile (but we can't easily +// test for that here). +// wrap.Mainv("hello", 1) + + wrap.InitializeApp(largs) + + // Check that an empty array works. + empty_args := []string{}; + if ri := wrap.Mainc(empty_args); ri != 0 { + panic(ri) + } + if rs := wrap.Mainv(empty_args, 0); rs != "<<NULL>>" { + panic(rs) + } + + // Check that empty strings are handled. + empty_string := []string{"hello", "", "world"}; + if ri := wrap.Mainc(empty_string); ri != 3 { + panic(ri) + } + if rs := wrap.Mainv(empty_string, 0); rs != "hello" { + panic(rs) + } + if rs := wrap.Mainv(empty_string, 1); rs != "" { + panic(rs) + } + if rs := wrap.Mainv(empty_string, 2); rs != "world" { + panic(rs) + } + if rs := wrap.Mainv(empty_string, 3); rs != "<<NULL>>" { + panic(rs) + } +} |