summaryrefslogtreecommitdiff
path: root/Examples/test-suite/perl5/minherit_runme.pl
blob: 1f3afadd2e527c920def663b8ac86e0a537c986e (plain)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/perl
use strict;
use warnings;
use Test::More tests => 38;
BEGIN { use_ok('minherit') }
require_ok('minherit');

# adapted from ../python/minherit_runme.py

my $a = minherit::Foo->new();
my $b = minherit::Bar->new();
my $c = minherit::FooBar->new();
my $d = minherit::Spam->new();

is($a->xget(), 1);

is($b->yget(), 2);

is($c->xget(), 1);
is($c->yget(), 2);
is($c->zget(), 3);

is($d->xget(), 1);
is($d->yget(), 2);
is($d->zget(), 3);
is($d->wget(), 4);

is(minherit::xget($a), 1);

is(minherit::yget($b), 2);

is(minherit::xget($c), 1);
is(minherit::yget($c), 2);
is(minherit::zget($c), 3);

is(minherit::xget($d), 1);
is(minherit::yget($d), 2);
is(minherit::zget($d), 3);
is(minherit::wget($d), 4);

# Cleanse all of the pointers and see what happens

my $aa = minherit::toFooPtr($a);
my $bb = minherit::toBarPtr($b);
my $cc = minherit::toFooBarPtr($c);
my $dd = minherit::toSpamPtr($d);

is($aa->xget, 1);

is($bb->yget(), 2);

is($cc->xget(), 1);
is($cc->yget(), 2);
is($cc->zget(), 3);

is($dd->xget(), 1);
is($dd->yget(), 2);
is($dd->zget(), 3);
is($dd->wget(), 4);

is(minherit::xget($aa), 1);

is(minherit::yget($bb), 2);

is(minherit::xget($cc), 1);
is(minherit::yget($cc), 2);
is(minherit::zget($cc), 3);

is(minherit::xget($dd), 1);
is(minherit::yget($dd), 2);
is(minherit::zget($dd), 3);
is(minherit::wget($dd), 4);