| |
| if [ catch { load ./overload_simple[info sharedlibextension] overload_simple} err_msg ] { |
| puts stderr "Could not load shared object:\n$err_msg" |
| } |
| |
| set f [new_Foo] |
| set b [new_Bar] |
| set v [malloc_void 32] |
| |
| set x [foo 3] |
| if {$x != "foo:int"} { |
| puts stderr "foo(int) test failed $x" |
| exit 1 |
| } |
| |
| set x [foo 3.4] |
| if {$x != "foo:double"} { |
| puts stderr "foo(double) test failed" |
| exit 1 |
| } |
| |
| set x [foo hello] |
| if {$x != "foo:char *"} { |
| puts stderr "foo(char *) test failed" |
| exit 1 |
| } |
| |
| set x [foo $f] |
| if {$x != "foo:Foo *"} { |
| puts stderr "foo(Foo *) test failed" |
| exit 1 |
| } |
| |
| set x [foo $b] |
| if {$x != "foo:Bar *"} { |
| puts stderr "foo(Bar *) test failed" |
| exit 1 |
| } |
| |
| set x [foo $v] |
| if {$x != "foo:void *"} { |
| puts stderr "foo(void *) test failed" |
| exit 1 |
| } |
| |
| Spam s |
| |
| set x [s foo 3] |
| if {$x != "foo:int"} { |
| puts stderr "Spam::foo(int) test failed" |
| exit 1 |
| } |
| |
| set x [s foo 3.4] |
| if {$x != "foo:double"} { |
| puts stderr "Spam::foo(double) test failed" |
| exit 1 |
| } |
| |
| set x [s foo hello] |
| if {$x != "foo:char *"} { |
| puts stderr "Spam::foo(char *) test failed" |
| exit 1 |
| } |
| |
| set x [s foo $f] |
| if {$x != "foo:Foo *"} { |
| puts stderr "Spam::foo(Foo *) test failed" |
| exit 1 |
| } |
| |
| set x [s foo $b] |
| if {$x != "foo:Bar *"} { |
| puts stderr "Spam::foo(Bar *) test failed" |
| exit 1 |
| } |
| |
| set x [s foo $v] |
| if {$x != "foo:void *"} { |
| puts stderr "Spam::foo(void *) test failed" |
| exit 1 |
| } |
| |
| |
| set x [Spam_bar 3] |
| if {$x != "bar:int"} { |
| puts stderr "Spam::bar(int) test failed" |
| exit 1 |
| } |
| |
| set x [Spam_bar 3.4] |
| if {$x != "bar:double"} { |
| puts stderr "Spam::bar(double) test failed" |
| exit 1 |
| } |
| |
| set x [Spam_bar hello] |
| if {$x != "bar:char *"} { |
| puts stderr "Spam::bar(char *) test failed" |
| exit 1 |
| } |
| |
| set x [Spam_bar $f] |
| if {$x != "bar:Foo *"} { |
| puts stderr "Spam::bar(Foo *) test failed" |
| exit 1 |
| } |
| |
| set x [Spam_bar $b] |
| if {$x != "bar:Bar *"} { |
| puts stderr "Spam::bar(Bar *) test failed" |
| exit 1 |
| } |
| |
| set x [Spam_bar $v] |
| if {$x != "bar:void *"} { |
| puts stderr "Spam::bar(void *) test failed" |
| exit 1 |
| } |
| |
| Spam s |
| set x [s cget -type] |
| if {$x != "none"} { |
| puts stderr "Spam() test failed" |
| } |
| |
| Spam s 3 |
| set x [s cget -type] |
| if {$x != "int"} { |
| puts stderr "Spam(int) test failed" |
| } |
| |
| Spam s 3.4 |
| set x [s cget -type] |
| if {$x != "double"} { |
| puts stderr "Spam(double) test failed" |
| } |
| |
| Spam s hello |
| set x [s cget -type] |
| if {$x != "char *"} { |
| puts stderr "Spam(char *) test failed" |
| } |
| |
| Spam s $f |
| set x [s cget -type] |
| if {$x != "Foo *"} { |
| puts stderr "Spam(Foo *) test failed" |
| } |
| |
| Spam s $b |
| set x [s cget -type] |
| if {$x != "Bar *"} { |
| puts stderr "Spam(Bar *) test failed" |
| } |
| |
| Spam s $v |
| set x [s cget -type] |
| if {$x != "void *"} { |
| puts stderr "Spam(void *) test failed" |
| } |
| |
| free_void $v |
| |
| |
| |