1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
// This is the union runtime testcase. It ensures that values within a
// union embedded within a struct can be set and read correctly.
package main
import "swigtests/unions"
func main() {
// Create new instances of SmallStruct and BigStruct for later use
small := unions.NewSmallStruct()
small.SetJill(200)
big := unions.NewBigStruct()
big.SetSmallstruct(small)
big.SetJack(300)
// Use SmallStruct then BigStruct to setup EmbeddedUnionTest.
// Ensure values in EmbeddedUnionTest are set correctly for each.
eut := unions.NewEmbeddedUnionTest()
// First check the SmallStruct in EmbeddedUnionTest
eut.SetNumber(1)
eut.GetUni().SetSmall(small)
Jill1 := eut.GetUni().GetSmall().GetJill()
if Jill1 != 200 {
panic("Runtime test1 failed")
}
Num1 := eut.GetNumber()
if Num1 != 1 {
panic("Runtime test2 failed")
}
// Secondly check the BigStruct in EmbeddedUnionTest
eut.SetNumber(2)
eut.GetUni().SetBig(big)
Jack1 := eut.GetUni().GetBig().GetJack()
if Jack1 != 300 {
panic("Runtime test3 failed")
}
Jill2 := eut.GetUni().GetBig().GetSmallstruct().GetJill()
if Jill2 != 200 {
panic("Runtime test4 failed")
}
Num2 := eut.GetNumber()
if Num2 != 2 {
panic("Runtime test5 failed")
}
}
|