| |
| # 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 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): |
| raise RuntimeError("Runtime test1 failed. eut.uni.small.jill={}".format(Jill1)) |
| |
| Num1 = eut.number |
| if (Num1 != 1): |
| raise RuntimeError("Runtime test2 failed. eut.number=".format(Num1)) |
| |
| # Secondly check the BigStruct in EmbeddedUnionTest |
| eut.number = 2 |
| eut.uni.big = big |
| Jack1 = eut.uni.big.jack |
| if (Jack1 != 300): |
| raise RuntimeError("Runtime test3 failed. eut.uni.big.jack={}".format(Jack1)) |
| |
| Jill2 = eut.uni.big.smallstruct.jill |
| if (Jill2 != 200): |
| raise RuntimeError("Runtime test4 failed. eut.uni.big.smallstruct.jill={}".format(Jill2)) |
| |
| Num2 = eut.number |
| if (Num2 != 2): |
| raise RuntimeError("Runtime test5 failed. eut.number={}".format(Num2)) |