File: unions_runme.go

package info (click to toggle)
swig 4.1.0-0.2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 47,992 kB
  • sloc: cpp: 50,555; ansic: 27,840; java: 15,366; python: 11,221; cs: 8,852; ruby: 6,307; yacc: 6,290; makefile: 5,702; sh: 5,492; perl: 3,818; php: 3,046; ml: 2,094; lisp: 1,756; javascript: 1,751; tcl: 1,499; xml: 115
file content (51 lines) | stat: -rw-r--r-- 1,224 bytes parent folder | download | duplicates (4)
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")
	}
}