1# 2# Copyright (c) ZeroC, Inc. All rights reserved. 3# 4 5import sys, string, re, traceback, Ice, Test 6 7def test(b): 8 if not b: 9 raise RuntimeError('test assertion failed') 10 11def allTests(helper, communicator): 12 ref = "test:{0}".format(helper.getTestEndpoint()) 13 base = communicator.stringToProxy(ref) 14 test(base) 15 16 proxy = Test.TestIntfPrx.checkedCast(base) 17 test(proxy) 18 19 sys.stdout.write("testing enum values... ") 20 sys.stdout.flush() 21 22 test(Test.ByteEnum.benum1.value == 0); 23 test(Test.ByteEnum.benum2.value == 1); 24 test(Test.ByteEnum.benum3.value == Test.ByteConst1); 25 test(Test.ByteEnum.benum4.value == Test.ByteConst1 + 1); 26 test(Test.ByteEnum.benum5.value == Test.ShortConst1); 27 test(Test.ByteEnum.benum6.value == Test.ShortConst1 + 1); 28 test(Test.ByteEnum.benum7.value == Test.IntConst1); 29 test(Test.ByteEnum.benum8.value == Test.IntConst1 + 1); 30 test(Test.ByteEnum.benum9.value == Test.LongConst1); 31 test(Test.ByteEnum.benum10.value == Test.LongConst1 + 1); 32 test(Test.ByteEnum.benum11.value == Test.ByteConst2); 33 34 test(Test.ByteEnum.valueOf(0) == Test.ByteEnum.benum1); 35 test(Test.ByteEnum.valueOf(1) == Test.ByteEnum.benum2); 36 test(Test.ByteEnum.valueOf(Test.ByteConst1) == Test.ByteEnum.benum3); 37 test(Test.ByteEnum.valueOf(Test.ByteConst1 + 1) == Test.ByteEnum.benum4); 38 test(Test.ByteEnum.valueOf(Test.ShortConst1) == Test.ByteEnum.benum5); 39 test(Test.ByteEnum.valueOf(Test.ShortConst1 + 1) == Test.ByteEnum.benum6); 40 test(Test.ByteEnum.valueOf(Test.IntConst1) == Test.ByteEnum.benum7); 41 test(Test.ByteEnum.valueOf(Test.IntConst1 + 1) == Test.ByteEnum.benum8); 42 test(Test.ByteEnum.valueOf(Test.LongConst1) == Test.ByteEnum.benum9); 43 test(Test.ByteEnum.valueOf(Test.LongConst1 + 1) == Test.ByteEnum.benum10); 44 test(Test.ByteEnum.valueOf(Test.ByteConst2) == Test.ByteEnum.benum11); 45 46 test(Test.ShortEnum.senum1.value == 3); 47 test(Test.ShortEnum.senum2.value == 4); 48 test(Test.ShortEnum.senum3.value == Test.ByteConst1); 49 test(Test.ShortEnum.senum4.value == Test.ByteConst1 + 1); 50 test(Test.ShortEnum.senum5.value == Test.ShortConst1); 51 test(Test.ShortEnum.senum6.value == Test.ShortConst1 + 1); 52 test(Test.ShortEnum.senum7.value == Test.IntConst1); 53 test(Test.ShortEnum.senum8.value == Test.IntConst1 + 1); 54 test(Test.ShortEnum.senum9.value == Test.LongConst1); 55 test(Test.ShortEnum.senum10.value == Test.LongConst1 + 1); 56 test(Test.ShortEnum.senum11.value == Test.ShortConst2); 57 58 test(Test.ShortEnum.valueOf(3) == Test.ShortEnum.senum1); 59 test(Test.ShortEnum.valueOf(4) == Test.ShortEnum.senum2); 60 test(Test.ShortEnum.valueOf(Test.ByteConst1) == Test.ShortEnum.senum3); 61 test(Test.ShortEnum.valueOf(Test.ByteConst1 + 1) == Test.ShortEnum.senum4); 62 test(Test.ShortEnum.valueOf(Test.ShortConst1) == Test.ShortEnum.senum5); 63 test(Test.ShortEnum.valueOf(Test.ShortConst1 + 1) == Test.ShortEnum.senum6); 64 test(Test.ShortEnum.valueOf(Test.IntConst1) == Test.ShortEnum.senum7); 65 test(Test.ShortEnum.valueOf(Test.IntConst1 + 1) == Test.ShortEnum.senum8); 66 test(Test.ShortEnum.valueOf(Test.LongConst1) == Test.ShortEnum.senum9); 67 test(Test.ShortEnum.valueOf(Test.LongConst1 + 1) == Test.ShortEnum.senum10); 68 test(Test.ShortEnum.valueOf(Test.ShortConst2) == Test.ShortEnum.senum11); 69 70 test(Test.IntEnum.ienum1.value == 0); 71 test(Test.IntEnum.ienum2.value == 1); 72 test(Test.IntEnum.ienum3.value == Test.ByteConst1); 73 test(Test.IntEnum.ienum4.value == Test.ByteConst1 + 1); 74 test(Test.IntEnum.ienum5.value == Test.ShortConst1); 75 test(Test.IntEnum.ienum6.value == Test.ShortConst1 + 1); 76 test(Test.IntEnum.ienum7.value == Test.IntConst1); 77 test(Test.IntEnum.ienum8.value == Test.IntConst1 + 1); 78 test(Test.IntEnum.ienum9.value == Test.LongConst1); 79 test(Test.IntEnum.ienum10.value == Test.LongConst1 + 1); 80 test(Test.IntEnum.ienum11.value == Test.IntConst2); 81 test(Test.IntEnum.ienum12.value == Test.LongConst2); 82 83 test(Test.IntEnum.valueOf(0) == Test.IntEnum.ienum1); 84 test(Test.IntEnum.valueOf(1) == Test.IntEnum.ienum2); 85 test(Test.IntEnum.valueOf(Test.ByteConst1) == Test.IntEnum.ienum3); 86 test(Test.IntEnum.valueOf(Test.ByteConst1 + 1) == Test.IntEnum.ienum4); 87 test(Test.IntEnum.valueOf(Test.ShortConst1) == Test.IntEnum.ienum5); 88 test(Test.IntEnum.valueOf(Test.ShortConst1 + 1) == Test.IntEnum.ienum6); 89 test(Test.IntEnum.valueOf(Test.IntConst1) == Test.IntEnum.ienum7); 90 test(Test.IntEnum.valueOf(Test.IntConst1 + 1) == Test.IntEnum.ienum8); 91 test(Test.IntEnum.valueOf(Test.LongConst1) == Test.IntEnum.ienum9); 92 test(Test.IntEnum.valueOf(Test.LongConst1 + 1) == Test.IntEnum.ienum10); 93 test(Test.IntEnum.valueOf(Test.IntConst2) == Test.IntEnum.ienum11); 94 test(Test.IntEnum.valueOf(Test.LongConst2) == Test.IntEnum.ienum12); 95 96 test(Test.SimpleEnum.red.value == 0); 97 test(Test.SimpleEnum.green.value == 1); 98 test(Test.SimpleEnum.blue.value == 2); 99 100 test(Test.SimpleEnum.valueOf(0) == Test.SimpleEnum.red); 101 test(Test.SimpleEnum.valueOf(1) == Test.SimpleEnum.green); 102 test(Test.SimpleEnum.valueOf(2) == Test.SimpleEnum.blue); 103 104 print("ok") 105 106 sys.stdout.write("testing enum operations... ") 107 sys.stdout.flush() 108 109 test(proxy.opByte(Test.ByteEnum.benum1) == (Test.ByteEnum.benum1, Test.ByteEnum.benum1)); 110 test(proxy.opByte(Test.ByteEnum.benum11) == (Test.ByteEnum.benum11, Test.ByteEnum.benum11)); 111 112 test(proxy.opShort(Test.ShortEnum.senum1) == (Test.ShortEnum.senum1, Test.ShortEnum.senum1)); 113 test(proxy.opShort(Test.ShortEnum.senum11) == (Test.ShortEnum.senum11, Test.ShortEnum.senum11)); 114 115 test(proxy.opInt(Test.IntEnum.ienum1) == (Test.IntEnum.ienum1, Test.IntEnum.ienum1)); 116 test(proxy.opInt(Test.IntEnum.ienum11) == (Test.IntEnum.ienum11, Test.IntEnum.ienum11)); 117 test(proxy.opInt(Test.IntEnum.ienum12) == (Test.IntEnum.ienum12, Test.IntEnum.ienum12)); 118 119 test(proxy.opSimple(Test.SimpleEnum.green) == (Test.SimpleEnum.green, Test.SimpleEnum.green)); 120 121 print("ok") 122 123 sys.stdout.write("testing enum sequences operations... ") 124 sys.stdout.flush() 125 126 b1 = [ Test.ByteEnum.benum1, Test.ByteEnum.benum2, Test.ByteEnum.benum3, Test.ByteEnum.benum4, Test.ByteEnum.benum5, 127 Test.ByteEnum.benum6, Test.ByteEnum.benum7, Test.ByteEnum.benum8, Test.ByteEnum.benum9, Test.ByteEnum.benum10, 128 Test.ByteEnum.benum11 ] 129 130 (b2, b3) = proxy.opByteSeq(b1) 131 132 for i in range(len(b1)): 133 test(b1[i] == b2[i]) 134 test(b1[i] == b3[i]) 135 136 s1 = [ Test.ShortEnum.senum1, Test.ShortEnum.senum2, Test.ShortEnum.senum3, Test.ShortEnum.senum4, 137 Test.ShortEnum.senum5, Test.ShortEnum.senum6, Test.ShortEnum.senum7, Test.ShortEnum.senum8, 138 Test.ShortEnum.senum9, Test.ShortEnum.senum10, Test.ShortEnum.senum11 ] 139 140 (s2, s3) = proxy.opShortSeq(s1) 141 142 for i in range(len(s1)): 143 test(s1[i] == s2[i]) 144 test(s1[i] == s3[i]) 145 146 i1 = [ Test.IntEnum.ienum1, Test.IntEnum.ienum2, Test.IntEnum.ienum3, Test.IntEnum.ienum4, 147 Test.IntEnum.ienum5, Test.IntEnum.ienum6, Test.IntEnum.ienum7, Test.IntEnum.ienum8, 148 Test.IntEnum.ienum9, Test.IntEnum.ienum10, Test.IntEnum.ienum11 ] 149 150 (i2, i3) = proxy.opIntSeq(i1) 151 152 for i in range(len(i1)): 153 test(i1[i] == i2[i]) 154 test(i1[i] == i3[i]) 155 156 s1 = [ Test.SimpleEnum.red, Test.SimpleEnum.green, Test.SimpleEnum.blue ] 157 158 (s2, s3) = proxy.opSimpleSeq(s1) 159 160 for i in range(len(s1)): 161 test(s1[i] == s2[i]) 162 test(s1[i] == s3[i]) 163 print("ok") 164 165 return proxy 166