1 2if [ catch { load ./cpp11_strongly_typed_enumerations[info sharedlibextension] cpp11_strongly_typed_enumerations} err_msg ] { 3 puts stderr "Could not load shared object:\n$err_msg" 4} 5 6proc enumCheck {actual expected} { 7 if {$actual != $expected} { 8 error "Enum value mismatch. Expected $expected. Actual: $actual" 9 } 10 return [expr $expected + 1] 11} 12 13#set val 0 14#set val [enumCheck $Enum1_Val1 $val] 15#set val [enumCheck $Enum1_Val2 $val] 16 17set val 0 18set val [enumCheck $Enum1_Val1 $val] 19set val [enumCheck $Enum1_Val2 $val] 20set val [enumCheck $Enum1_Val3 13] 21set val [enumCheck $Enum1_Val4 $val] 22set val [enumCheck $Enum1_Val5a 13] 23set val [enumCheck $Enum1_Val6a $val] 24 25set val 0 26set val [enumCheck $Enum2_Val1 $val] 27set val [enumCheck $Enum2_Val2 $val] 28set val [enumCheck $Enum2_Val3 23] 29set val [enumCheck $Enum2_Val4 $val] 30set val [enumCheck $Enum2_Val5b 23] 31set val [enumCheck $Enum2_Val6b $val] 32 33set val 0 34set val [enumCheck $Val1 $val] 35set val [enumCheck $Val2 $val] 36set val [enumCheck $Val3 43] 37set val [enumCheck $Val4 $val] 38 39set val 0 40set val [enumCheck $Enum5_Val1 $val] 41set val [enumCheck $Enum5_Val2 $val] 42set val [enumCheck $Enum5_Val3 53] 43set val [enumCheck $Enum5_Val4 $val] 44 45set val 0 46set val [enumCheck $Enum6_Val1 $val] 47set val [enumCheck $Enum6_Val2 $val] 48set val [enumCheck $Enum6_Val3 63] 49set val [enumCheck $Enum6_Val4 $val] 50 51set val 0 52set val [enumCheck $Enum7td_Val1 $val] 53set val [enumCheck $Enum7td_Val2 $val] 54set val [enumCheck $Enum7td_Val3 73] 55set val [enumCheck $Enum7td_Val4 $val] 56 57set val 0 58set val [enumCheck $Enum8_Val1 $val] 59set val [enumCheck $Enum8_Val2 $val] 60set val [enumCheck $Enum8_Val3 83] 61set val [enumCheck $Enum8_Val4 $val] 62 63set val 0 64set val [enumCheck $Enum10_Val1 $val] 65set val [enumCheck $Enum10_Val2 $val] 66set val [enumCheck $Enum10_Val3 103] 67set val [enumCheck $Enum10_Val4 $val] 68 69set val 0 70set val [enumCheck $Class1_Enum12_Val1 1121] 71set val [enumCheck $Class1_Enum12_Val2 1122] 72set val [enumCheck $Class1_Enum12_Val3 $val] 73set val [enumCheck $Class1_Enum12_Val4 $val] 74set val [enumCheck $Class1_Enum12_Val5c 1121] 75set val [enumCheck $Class1_Enum12_Val6c $val] 76 77set val 0 78set val [enumCheck $Class1_Val1 1131] 79set val [enumCheck $Class1_Val2 1132] 80set val [enumCheck $Class1_Val3 $val] 81set val [enumCheck $Class1_Val4 $val] 82set val [enumCheck $Class1_Val5d 1131] 83set val [enumCheck $Class1_Val6d $val] 84 85set val 0 86set val [enumCheck $Class1_Enum14_Val1 1141] 87set val [enumCheck $Class1_Enum14_Val2 1142] 88set val [enumCheck $Class1_Enum14_Val3 $val] 89set val [enumCheck $Class1_Enum14_Val4 $val] 90set val [enumCheck $Class1_Enum14_Val5e 1141] 91set val [enumCheck $Class1_Enum14_Val6e $val] 92 93# Requires nested class support to work 94#set val 0 95#set val [enumCheck $Class1_Struct1_Enum12_Val1 3121] 96#set val [enumCheck $Class1_Struct1_Enum12_Val2 3122] 97#set val [enumCheck $Class1_Struct1_Enum12_Val3 $val] 98#set val [enumCheck $Class1_Struct1_Enum12_Val4 $val] 99#set val [enumCheck $Class1_Struct1_Enum12_Val5f 3121] 100#set val [enumCheck $Class1_Struct1_Enum12_Val6f $val] 101# 102#set val 0 103#set val [enumCheck $Class1_Struct1_Val1 3131] 104#set val [enumCheck $Class1_Struct1_Val2 3132] 105#set val [enumCheck $Class1_Struct1_Val3 $val] 106#set val [enumCheck $Class1_Struct1_Val4 $val] 107# 108#set val 0 109#set val [enumCheck $Class1_Struct1_Enum14_Val1 3141] 110#set val [enumCheck $Class1_Struct1_Enum14_Val2 3142] 111#set val [enumCheck $Class1_Struct1_Enum14_Val3 $val] 112#set val [enumCheck $Class1_Struct1_Enum14_Val4 $val] 113#set val [enumCheck $Class1_Struct1_Enum14_Val5g 3141] 114#set val [enumCheck $Class1_Struct1_Enum14_Val6g $val] 115 116set val 0 117set val [enumCheck $Class2_Enum12_Val1 2121] 118set val [enumCheck $Class2_Enum12_Val2 2122] 119set val [enumCheck $Class2_Enum12_Val3 $val] 120set val [enumCheck $Class2_Enum12_Val4 $val] 121set val [enumCheck $Class2_Enum12_Val5h 2121] 122set val [enumCheck $Class2_Enum12_Val6h $val] 123 124set val 0 125set val [enumCheck $Class2_Val1 2131] 126set val [enumCheck $Class2_Val2 2132] 127set val [enumCheck $Class2_Val3 $val] 128set val [enumCheck $Class2_Val4 $val] 129set val [enumCheck $Class2_Val5i 2131] 130set val [enumCheck $Class2_Val6i $val] 131 132set val 0 133set val [enumCheck $Class2_Enum14_Val1 2141] 134set val [enumCheck $Class2_Enum14_Val2 2142] 135set val [enumCheck $Class2_Enum14_Val3 $val] 136set val [enumCheck $Class2_Enum14_Val4 $val] 137set val [enumCheck $Class2_Enum14_Val5j 2141] 138set val [enumCheck $Class2_Enum14_Val6j $val] 139 140# Requires nested class support to work 141#set val 0 142#set val [enumCheck $Class2_Struct1_Enum12_Val1 4121] 143#set val [enumCheck $Class2_Struct1_Enum12_Val2 4122] 144#set val [enumCheck $Class2_Struct1_Enum12_Val3 $val] 145#set val [enumCheck $Class2_Struct1_Enum12_Val4 $val] 146#set val [enumCheck $Class2_Struct1_Enum12_Val5k 4121] 147#set val [enumCheck $Class2_Struct1_Enum12_Val6k $val] 148# 149#set val 0 150#set val [enumCheck $Class2_Struct1_Val1 4131] 151#set val [enumCheck $Class2_Struct1_Val2 4132] 152#set val [enumCheck $Class2_Struct1_Val3 $val] 153#set val [enumCheck $Class2_Struct1_Val4 $val] 154#set val [enumCheck $Class2_Struct1_Val5l 4131] 155#set val [enumCheck $Class2_Struct1_Val6l $val] 156# 157#set val 0 158#set val [enumCheck $Class2_Struct1_Enum14_Val1 4141] 159#set val [enumCheck $Class2_Struct1_Enum14_Val2 4142] 160#set val [enumCheck $Class2_Struct1_Enum14_Val3 $val] 161#set val [enumCheck $Class2_Struct1_Enum14_Val4 $val] 162#set val [enumCheck $Class2_Struct1_Enum14_Val5m 4141] 163#set val [enumCheck $Class2_Struct1_Enum14_Val6m $val] 164 165set class1 [Class1] 166enumCheck [$class1 class1Test1 $Enum1_Val5a] 13 167enumCheck [$class1 class1Test2 $Class1_Enum12_Val5c] 1121 168#enumCheck [$class1 class1Test3 $Class1_Struct1_Enum12_Val5f] 3121 169 170enumCheck [globalTest1 $Enum1_Val5a] 13 171enumCheck [globalTest2 $Class1_Enum12_Val5c] 1121 172#enumCheck [globalTest3 $Class1_Struct1_Enum12_Val5f] 3121 173