mirror of https://github.com/swig/swig
52 lines
1.3 KiB
Python
52 lines
1.3 KiB
Python
|
|
# This is the union runtime testcase. It ensures that values within a
|
|
# union embedded within a struct can be set and read correctly.
|
|
|
|
import unions
|
|
import sys
|
|
import string
|
|
|
|
# Create new instances of SmallStruct and BigStruct for later use
|
|
small = unions.SmallStruct()
|
|
small.jill = 200
|
|
|
|
big = unions.BigStruct()
|
|
big.smallstruct = small
|
|
big.jack = 300
|
|
|
|
# Use SmallStruct then BigStruct to setup EmbeddedUnionTest.
|
|
# Ensure values in EmbeddedUnionTest are set correctly for each.
|
|
eut = unions.EmbeddedUnionTest()
|
|
|
|
# First check the SmallStruct in EmbeddedUnionTest
|
|
eut.number = 1
|
|
eut.uni.small = small
|
|
Jill1 = eut.uni.small.jill
|
|
if (Jill1 != 200):
|
|
print "Runtime test1 failed. eut.uni.small.jill=" , Jill1
|
|
sys.exit(1)
|
|
|
|
Num1 = eut.number
|
|
if (Num1 != 1):
|
|
print "Runtime test2 failed. eut.number=" , Num1
|
|
sys.exit(1)
|
|
|
|
# Secondly check the BigStruct in EmbeddedUnionTest
|
|
eut.number = 2
|
|
eut.uni.big = big
|
|
Jack1 = eut.uni.big.jack
|
|
if (Jack1 != 300):
|
|
print "Runtime test3 failed. eut.uni.big.jack=" , Jack1
|
|
sys.exit(1)
|
|
|
|
Jill2 = eut.uni.big.smallstruct.jill
|
|
if (Jill2 != 200):
|
|
print "Runtime test4 failed. eut.uni.big.smallstruct.jill=" , Jill2
|
|
sys.exit(1)
|
|
|
|
Num2 = eut.number
|
|
if (Num2 != 2):
|
|
print "Runtime test5 failed. eut.number=" , Num2
|
|
sys.exit(1)
|
|
|