167 lines
2.6 KiB
Tcl
167 lines
2.6 KiB
Tcl
|
|
|
||
|
|
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
|
||
|
|
|
||
|
|
|
||
|
|
|