ronnie
2022-10-14 1504bb53e29d3d46222c0b3ea994fc494b48e153
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
Testing for type A
A-virtual           A.SayHi()='Hi '
A-interface   Greeter.SayHi()='Hi '
A-virtual           A.SayHiTwice()='Hi Hi '
A-interface   Greeter.SayHiTwice()='Hi Hi '
End testing for type A
Testing for type B
B-virtual           B.SayHi()='Hello '
B-interface   Greeter.SayHi()='Hello '
B-interface  Greeter2.SayHi()='Hello '
B-virtual           B.SayHiTwice()='I say Hello Hello '
B-interface   Greeter.SayHiTwice()='I say Hello Hello '
B-interface  Greeter2.SayHiTwice()='I say Hello Hello '
End testing for type B
Testing for type C
C-virtual           A.SayHi()='Hi '
C-virtual           C.SayHi()='Hi '
C-interface   Greeter.SayHi()='Hi '
C-virtual           A.SayHiTwice()='You don't control me'
C-virtual           C.SayHiTwice()='You don't control me'
C-interface   Greeter.SayHiTwice()='You don't control me'
End testing for type C
Testing for type D
D-virtual           D.GetName()='Alex '
D-interface  Greeter3.GetName()='Alex '
D-virtual           D.SayHi()='Hello Alex '
D-interface   Greeter.SayHi()='Hello Alex '
D-interface  Greeter3.SayHi()='Hello Alex '
D-virtual           D.SayHiTwice()='Hello Alex Hello Alex '
D-interface   Greeter.SayHiTwice()='Hello Alex Hello Alex '
D-interface  Greeter3.SayHiTwice()='Hello Alex Hello Alex '
End testing for type D
Testing for type E
E-virtual           A.SayHi()='Hi2 '
E-virtual           E.SayHi()='Hi2 '
E-interface   Greeter.SayHi()='Hi2 '
E-interface  Greeter2.SayHi()='Hi2 '
E-virtual           A.SayHiTwice()='I say Hi2 Hi2 '
E-virtual           E.SayHiTwice()='I say Hi2 Hi2 '
E-interface   Greeter.SayHiTwice()='I say Hi2 Hi2 '
E-interface  Greeter2.SayHiTwice()='I say Hi2 Hi2 '
End testing for type E
Testing for type F
F-interface Attendant.GetPlace()='android'
F-virtual           F.GetPlace()='android'
F-virtual           A.SayHi()='Hi '
F-interface Attendant.SayHi()='Hi '
F-virtual           F.SayHi()='Hi '
F-interface   Greeter.SayHi()='Hi '
F-virtual           A.SayHiTwice()='We can override both interfaces'
F-interface Attendant.SayHiTwice()='We can override both interfaces'
F-virtual           F.SayHiTwice()='We can override both interfaces'
F-interface   Greeter.SayHiTwice()='We can override both interfaces'
End testing for type F
Testing for type G
G-interface Attendant.GetPlace()='android'
G-virtual           G.GetPlace()='android'
G-interface Attendant.SayHi()='welcome to android'
G-virtual           G.SayHi()='welcome to android'
G-interface Attendant.SayHiTwice()='welcome to androidwelcome to android'
G-virtual           G.SayHiTwice()='welcome to androidwelcome to android'
End testing for type G
Testing for type H
H-interface Extension.SayHi()='welcome '
H-virtual           H.SayHi()='welcome '
End testing for type H
Testing for type I
I-virtual           A.SayHi()='Hi '
I-interface   Greeter.SayHi()='Hi '
I-interface  Greeter2.SayHi()='Hi '
I-virtual           I.SayHi()='Hi '
I-virtual           A.SayHiTwice()='I say Hi Hi '
I-interface   Greeter.SayHiTwice()='I say Hi Hi '
I-interface  Greeter2.SayHiTwice()='I say Hi Hi '
I-virtual           I.SayHiTwice()='I say Hi Hi '
End testing for type I
Testing for type J
J-virtual           A.SayHi()='Hi '
J-interface   Greeter.SayHi()='Hi '
J-virtual           J.SayHi()='Hi '
J-virtual           A.SayHiTwice()='Hi Hi '
J-interface   Greeter.SayHiTwice()='Hi Hi '
J-virtual           J.SayHiTwice()='Hi Hi '
End testing for type J
Testing for type K
K-interface       Foo.bar()='foobar'
K-virtual           K.bar()='foobar'
End testing for type K
Testing for type L
L-interface       Foo.bar()='foobar'
L-virtual           K.bar()='foobar'
L-virtual           L.bar()='foobar'
End testing for type L
Testing for type M
M-interface       Foo.bar()='BAZ!'
M-interface     Fooer.bar()='BAZ!'
M-virtual           K.bar()='BAZ!'
M-virtual           L.bar()='BAZ!'
M-virtual           M.bar()='BAZ!'
End testing for type M
Testing for type N
N-interface       Foo.bar()='foobar'
N-virtual           N.bar()='foobar'
End testing for type N
Testing for type O
O-interface       Foo.bar()='foobar foobar'
O-interface      Foo2.bar()='foobar foobar'
O-virtual           N.bar()='foobar foobar'
O-virtual           O.bar()='foobar foobar'
End testing for type O
Testing for type P
P-interface       Foo.bar()='not foobar!'
P-interface      Foo2.bar()='not foobar!'
P-virtual           N.bar()='not foobar!'
P-virtual           O.bar()='not foobar!'
P-virtual           P.bar()='not foobar!'
End testing for type P
Testing for type Q
Q-interface on Foo: bar() threw exception!
Exception is of type java.lang.IncompatibleClassChangeError
Q-interface on Foo2: bar() threw exception!
Exception is of type java.lang.IncompatibleClassChangeError
Q-interface on Foo3: bar() threw exception!
Exception is of type java.lang.IncompatibleClassChangeError
Q-virtual on N: bar() threw exception!
Exception is of type java.lang.IncompatibleClassChangeError
Q-virtual on O: bar() threw exception!
Exception is of type java.lang.IncompatibleClassChangeError
Q-virtual on Q: bar() threw exception!
Exception is of type java.lang.IncompatibleClassChangeError
End testing for type Q