diff options
author | Jose <jose@zeroc.com> | 2016-03-10 09:33:14 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2016-03-10 09:33:14 +0100 |
commit | 709f8a26f7ac03bed5a4d1a0b9de6c4e9d14f806 (patch) | |
tree | 0665aa227fce4c4c369619fb2ea1d9f718979655 /objective-c | |
parent | Windows PHP build fixes (diff) | |
download | ice-709f8a26f7ac03bed5a4d1a0b9de6c4e9d14f806.tar.bz2 ice-709f8a26f7ac03bed5a4d1a0b9de6c4e9d14f806.tar.xz ice-709f8a26f7ac03bed5a4d1a0b9de6c4e9d14f806.zip |
String literals fixes
- Fixed escape sequences in C++ wide strings
- Fixed objetive-c escape sequences
- Update ruby to use magic comments to set the file encoding
Diffstat (limited to 'objective-c')
-rw-r--r-- | objective-c/test/Ice/operations/OperationsTest.ice | 69 | ||||
-rw-r--r-- | objective-c/test/Ice/operations/TestI.m | 45 | ||||
-rw-r--r-- | objective-c/test/Ice/operations/Twoways.m | 84 |
3 files changed, 198 insertions, 0 deletions
diff --git a/objective-c/test/Ice/operations/OperationsTest.ice b/objective-c/test/Ice/operations/OperationsTest.ice index 0f33cefb761..f64d9f5d5ce 100644 --- a/objective-c/test/Ice/operations/OperationsTest.ice +++ b/objective-c/test/Ice/operations/OperationsTest.ice @@ -277,6 +277,9 @@ class MyClass ByteBoolD opByteBoolD1(ByteBoolD opByteBoolD1); StringS opStringS2(StringS stringS); ByteBoolD opByteBoolD2(ByteBoolD byteBoolD); + + StringS opStringLiterals(); + StringS opWStringLiterals(); // // Operations below are specific to Objective-C @@ -314,4 +317,70 @@ class MyDerivedClass extends MyClass MyStruct1 opMyStruct1(MyStruct1 c); }; + +// +// String literals +// + +const string s0 = "\u005c"; // backslash +const string s1 = "\u0041"; // A +const string s2 = "\u0049\u0063\u0065"; // Ice +const string s3 = "\u004121"; // A21 +const string s4 = "\\u0041 \\U00000041"; // \\u0041 \\U00000041 +const string s5 = "\u00FF"; // ÿ +const string s6 = "\u03FF"; // GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL (U+03FF) +const string s7 = "\u05F0"; // HEBREW LIGATURE YIDDISH DOUBLE VAV (U+05F0) +const string s8 = "\U00010000"; // LINEAR B SYLLABLE B008 A (U+10000) +const string s9 = "\U0001F34C"; // BANANA (U+1F34C) +const string s10 = "\u0DA7"; // Sinhala Letter Alpapraana Ttayanna + +const string sw0 = "\U0000005c"; // backslash +const string sw1 = "\U00000041"; // A +const string sw2 = "\U00000049\U00000063\U00000065"; // Ice +const string sw3 = "\U0000004121"; // A21 +const string sw4 = "\\u0041 \\U00000041"; // \\u0041 \\U00000041 +const string sw5 = "\U000000FF"; // ÿ +const string sw6 = "\U000003FF"; // GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL (U+03FF) +const string sw7 = "\U000005F0"; // HEBREW LIGATURE YIDDISH DOUBLE VAV (U+05F0) +const string sw8 = "\U00010000"; // LINEAR B SYLLABLE B008 A (U+10000) +const string sw9 = "\U0001F34C"; // BANANA (U+1F34C) +const string sw10 = "\U00000DA7"; // Sinhala Letter Alpapraana Ttayanna + +/** +\' single quote byte 0x27 in ASCII encoding +\" double quote byte 0x22 in ASCII encoding +\? question mark byte 0x3f in ASCII encoding +\\ backslash byte 0x5c in ASCII encoding +\a audible bell byte 0x07 in ASCII encoding +\b backspace byte 0x08 in ASCII encoding +\f form feed - new page byte 0x0c in ASCII encoding +\n line feed - new line byte 0x0a in ASCII encoding +\r carriage return byte 0x0d in ASCII encoding +\t horizontal tab byte 0x09 in ASCII encoding +\v vertical tab byte 0x0b in ASCII encoding +**/ + +const string ss0 = "\'\"\?\\\a\b\f\n\r\t\v"; +const string ss1 = "\u0027\u0022\u003f\u005c\u0007\u0008\u000c\u000a\u000d\u0009\u000b"; +const string ss2 = "\U00000027\U00000022\U0000003f\U0000005c\U00000007\U00000008\U0000000c\U0000000a\U0000000d\U00000009\U0000000b"; + +const string ss3 = "\\\\U\\u\\"; /* \\U\u\ */ +const string ss4 = "\\\u0041\\"; /* \A\ */ +const string ss5 = "\\u0041\\"; /* \u0041\ */ + +// +// ÿ - Unicode Character 'LATIN SMALL LETTER Y WITH DIAERESIS' (U+00FF) +// Ā - Unicode Character 'LATIN CAPITAL LETTER A WITH MACRON' (U+0100) +// ἀ - Unicode Character 'GREEK SMALL LETTER ALPHA WITH PSILI' (U+1F00) +// 𐆔 - Unicode Character 'ROMAN DIMIDIA SEXTULA SIGN' (U+10194) +// 𐅪 - Unicode Character 'GREEK ACROPHONIC THESPIAN ONE HUNDRED' (U+1016A) +// 𐆘 - Unicode Character 'ROMAN SESTERTIUS SIGN' (U+10198) +// 🍀 - Unicode Character 'FOUR LEAF CLOVER' (U+1F340) +// 🍁 - Unicode Character 'MAPLE LEAF' (U+1F341) +// 🍂 - Unicode Character 'FALLEN LEAF' (U+1F342) +// 🍃 - Unicode Character 'LEAF FLUTTERING IN WIND' (U+1F343) +const string su0 = "ÿĀἀ𐆔𐅪𐆘🍀🍁🍂🍃"; +const string su1 = "\u00FF\u0100\u1F00\U00010194\U0001016A\U00010198\U0001F340\U0001F341\U0001F342\U0001F343"; +const string su2 = "\U000000FF\U00000100\U00001F00\U00010194\U0001016A\U00010198\U0001F340\U0001F341\U0001F342\U0001F343"; + }; diff --git a/objective-c/test/Ice/operations/TestI.m b/objective-c/test/Ice/operations/TestI.m index 18ce9629512..0eb40c665f3 100644 --- a/objective-c/test/Ice/operations/TestI.m +++ b/objective-c/test/Ice/operations/TestI.m @@ -719,6 +719,51 @@ return p; } +-(TestOperationsStringS *) opStringLiterals:(ICECurrent *)current +{ + TestOperationsStringS *s = [NSArray arrayWithObjects:TestOperationss0, + TestOperationss1, + TestOperationss2, + TestOperationss3, + TestOperationss4, + TestOperationss5, + TestOperationss6, + TestOperationss7, + TestOperationss8, + TestOperationss9, + TestOperationss10, + + TestOperationssw0, + TestOperationssw1, + TestOperationssw2, + TestOperationssw3, + TestOperationssw4, + TestOperationssw5, + TestOperationssw6, + TestOperationssw7, + TestOperationssw8, + TestOperationssw9, + TestOperationssw10, + + TestOperationsss0, + TestOperationsss1, + TestOperationsss2, + TestOperationsss3, + TestOperationsss4, + TestOperationsss5, + + TestOperationssu0, + TestOperationssu1, + TestOperationssu2, + nil]; + return s; +} + +-(TestOperationsStringS *) opWStringLiterals:(ICECurrent *)current +{ + return [self opStringLiterals:current]; +} + -(TestOperationsMyClass1*) opMyClass1:(TestOperationsMyClass1*)p current:(ICECurrent*)current { return p; diff --git a/objective-c/test/Ice/operations/Twoways.m b/objective-c/test/Ice/operations/Twoways.m index ab98727344e..77977e0c243 100644 --- a/objective-c/test/Ice/operations/Twoways.m +++ b/objective-c/test/Ice/operations/Twoways.m @@ -81,6 +81,90 @@ void twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) { { + TestOperationsStringS *literals = [p opStringLiterals]; + + test([TestOperationss0 isEqualToString:[literals objectAtIndex: 0]]); + + + test([TestOperationss0 isEqualToString:@"\\"] && + [TestOperationss0 isEqualToString:TestOperationssw0] && + [TestOperationss0 isEqualToString:[literals objectAtIndex:0]] && + [TestOperationss0 isEqualToString:[literals objectAtIndex:11]]); + + test([TestOperationss1 isEqualToString:@"A"] && + [TestOperationss1 isEqualToString:TestOperationssw1] && + [TestOperationss1 isEqualToString:[literals objectAtIndex:1]] && + [TestOperationss1 isEqualToString:[literals objectAtIndex:12]]); + + test([TestOperationss2 isEqualToString:@"Ice"] && + [TestOperationss2 isEqualToString:TestOperationssw2] && + [TestOperationss2 isEqualToString:[literals objectAtIndex:2]] && + [TestOperationss2 isEqualToString:[literals objectAtIndex:13]]); + + test([TestOperationss3 isEqualToString:@"A21"] && + [TestOperationss3 isEqualToString:TestOperationssw3] && + [TestOperationss3 isEqualToString:[literals objectAtIndex:3]] && + [TestOperationss3 isEqualToString:[literals objectAtIndex:14]]); + + test([TestOperationss4 isEqualToString:@"\\u0041 \\U00000041"] && + [TestOperationss4 isEqualToString:TestOperationssw4] && + [TestOperationss4 isEqualToString:[literals objectAtIndex:4]] && + [TestOperationss4 isEqualToString:[literals objectAtIndex:15]]); + + test([TestOperationss5 isEqualToString:@"ÿ"] && + [TestOperationss5 isEqualToString:TestOperationssw5] && + [TestOperationss5 isEqualToString:[literals objectAtIndex:5]] && + [TestOperationss5 isEqualToString:[literals objectAtIndex:16]]); + + test([TestOperationss6 isEqualToString:@"Ͽ"] && + [TestOperationss6 isEqualToString:TestOperationssw6] && + [TestOperationss6 isEqualToString:[literals objectAtIndex:6]] && + [TestOperationss6 isEqualToString:[literals objectAtIndex:17]]); + + test([TestOperationss7 isEqualToString:@"װ"] && + [TestOperationss7 isEqualToString:TestOperationssw7] && + [TestOperationss7 isEqualToString:[literals objectAtIndex:7]] && + [TestOperationss7 isEqualToString:[literals objectAtIndex:18]]); + + test([TestOperationss8 isEqualToString:@"\U00010000"] && + [TestOperationss8 isEqualToString:TestOperationssw8] && + [TestOperationss8 isEqualToString:[literals objectAtIndex:8]] && + [TestOperationss8 isEqualToString:[literals objectAtIndex:19]]); + + test([TestOperationss9 isEqualToString:@"\U0001F34C"] && + [TestOperationss9 isEqualToString:TestOperationssw9] && + [TestOperationss9 isEqualToString:[literals objectAtIndex:9]] && + [TestOperationss9 isEqualToString:[literals objectAtIndex:20]]); + + test([TestOperationss10 isEqualToString:@"ට"] && + [TestOperationss10 isEqualToString:TestOperationssw10] && + [TestOperationss10 isEqualToString:[literals objectAtIndex:10]] && + [TestOperationss10 isEqualToString:[literals objectAtIndex:21]]); + + test([TestOperationsss0 isEqualToString:@"\'\"\?\\\a\b\f\n\r\t\v"] && + [TestOperationsss0 isEqualToString:TestOperationsss1] && + [TestOperationsss0 isEqualToString:TestOperationsss2] && + [TestOperationsss0 isEqualToString:[literals objectAtIndex:22]] && + [TestOperationsss0 isEqualToString:[literals objectAtIndex:23]] && + [TestOperationsss0 isEqualToString:[literals objectAtIndex:24]]); + + test([TestOperationsss3 isEqualToString:@"\\\\U\\u\\"] && + [TestOperationsss3 isEqualToString:[literals objectAtIndex:25]]); + + test([TestOperationsss4 isEqualToString:@"\\A\\"] && + [TestOperationsss4 isEqualToString:[literals objectAtIndex:26]]); + + test([TestOperationsss5 isEqualToString:@"\\u0041\\"] && + [TestOperationsss5 isEqualToString:[literals objectAtIndex:27]]); + + test([TestOperationssu0 isEqualToString:TestOperationssu1] && + [TestOperationssu0 isEqualToString:TestOperationssu1] && + [TestOperationssu0 isEqualToString:[literals objectAtIndex:28]] && + [TestOperationssu0 isEqualToString:[literals objectAtIndex:29]] && + [TestOperationssu0 isEqualToString:[literals objectAtIndex:30]]); + } + + { [p opVoid]; } |