swig/SWIG/Examples/tcl/import/runme.tcl
Dave Beazley 516036631c The great merge
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4141 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2002-11-30 22:01:28 +00:00

121 lines
2 KiB
Tcl

# file: runme.py
# Test various properties of classes defined in separate modules
puts "Testing the %import directive"
catch { load ./base.so base}
catch { load ./base.dll base} ;# Windows
catch { load ./foo.so foo}
catch { load ./foo.dll foo} ;# Windows
catch { load ./bar.so bar}
catch { load ./bar.dll bar} ;# Windows
catch { load ./spam.so spam}
catch { load ./spam.dll spam} ;# Windows
# Create some objects
puts "Creating some objects"
set a [Base]
set b [Foo]
set c [Bar]
set d [Spam]
# Try calling some methods
puts "Testing some methods"
puts "Should see 'Base::A' ---> "
$a A
puts "Should see 'Base::B' ---> "
$a B
puts "Should see 'Foo::A' ---> "
$b A
puts "Should see 'Foo::B' ---> "
$b B
puts "Should see 'Bar::A' ---> "
$c A
puts "Should see 'Bar::B' ---> "
$c B
puts "Should see 'Spam::A' ---> "
$d A
puts "Should see 'Spam::B' ---> "
$d B
# Try some casts
puts "\nTesting some casts\n"
Base x -this [$a toBase]
puts "Should see 'Base::A' ---> "
x A
puts "Should see 'Base::B' ---> "
x B
rename x ""
Base x -this [$b toBase]
puts "Should see 'Foo::A' ---> "
x A
puts "Should see 'Base::B' ---> "
x B
rename x ""
Base x -this [$c toBase]
puts "Should see 'Bar::A' ---> "
x A
puts "Should see 'Base::B' ---> "
x B
rename x ""
Base x -this [$d toBase]
puts "Should see 'Spam::A' ---> "
x A
puts "Should see 'Base::B' ---> "
x B
rename x ""
Bar x -this [$d toBar]
puts "Should see 'Bar::B' ---> "
x B
rename x ""
puts "\nTesting some dynamic casts\n"
Base x -this [$d toBase]
puts "Spam -> Base -> Foo : "
set y [Foo_fromBase [x cget -this]]
if {$y != "NULL"} {
puts "bad swig"
} {
puts "good swig"
}
puts "Spam -> Base -> Bar : "
set y [Bar_fromBase [x cget -this]]
if {$y != "NULL"} {
puts "good swig"
} {
puts "bad swig"
}
puts "Spam -> Base -> Spam : "
set y [Spam_fromBase [x cget -this]]
if {$y != "NULL"} {
puts "good swig"
} {
puts "bad swig"
}
puts "Foo -> Spam : "
set y [Spam_fromBase $b]
if {$y != "NULL"} {
puts "bad swig"
} {
puts "good swig"
}