summaryrefslogtreecommitdiff
path: root/trunk/Examples/test-suite/perl5/unions_runme.pl
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2010-06-02 20:53:17 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2010-06-02 20:53:17 +0000
commit2824b0cbb66e715490e1ef13250bd675d87b32d9 (patch)
treec3bc8d54c6d73f2b7ce08cac34172dbc9f5e5b95 /trunk/Examples/test-suite/perl5/unions_runme.pl
parent289cfef4b4766ff266f3b1bdda8ca3a952e5a047 (diff)
downloadswig-39489534f6104d5a2938392418dbb7189c037f8b.tar.gz
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/tags/rel-2.0.0@12089 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Diffstat (limited to 'trunk/Examples/test-suite/perl5/unions_runme.pl')
-rw-r--r--trunk/Examples/test-suite/perl5/unions_runme.pl42
1 files changed, 42 insertions, 0 deletions
diff --git a/trunk/Examples/test-suite/perl5/unions_runme.pl b/trunk/Examples/test-suite/perl5/unions_runme.pl
new file mode 100644
index 000000000..7a62295c3
--- /dev/null
+++ b/trunk/Examples/test-suite/perl5/unions_runme.pl
@@ -0,0 +1,42 @@
+use strict;
+use warnings;
+use Test::More tests => 7;
+# This is the union runtime testcase. It ensures that values within a
+# union embedded within a struct can be set and read correctly.
+
+BEGIN { use_ok('unions') }
+require_ok('unions');
+
+# Create new instances of SmallStruct and BigStruct for later use
+my $small = new unions::SmallStruct();
+$small->{jill} = 200;
+
+my $big = new unions::BigStruct();
+$big->{smallstruct} = $small;
+$big->{jack} = 300;
+
+# Use SmallStruct then BigStruct to setup EmbeddedUnionTest.
+# Ensure values in EmbeddedUnionTest are set correctly for each.
+my $eut = new unions::EmbeddedUnionTest();
+
+# First check the SmallStruct in EmbeddedUnionTest
+$eut->{number} = 1;
+$eut->{uni}->{small} = $small;
+my $Jill1 = $eut->{uni}->{small}->{jill};
+is($Jill1, 200, "eut.uni.small.jill");
+
+my $Num1 = $eut->{number};
+is($Num1, 1, "test2 eut.number");
+
+# Secondly check the BigStruct in EmbeddedUnionTest
+$eut->{number} = 2;
+$eut->{uni}->{big} = $big;
+my $Jack1 = $eut->{uni}->{big}->{jack};
+is($Jack1, 300, "test3 eut.uni.big.jack");
+
+my $Jill2 = $eut->{uni}->{big}->{smallstruct}->{jill};
+is($Jill2, 200, "test4 eut.uni.big.smallstruct.jill");
+
+my $Num2 = $eut->{number};
+is($Num2, 2, "test5 eut.number");
+