Commit | Line | Data |
---|---|---|
970ed795 | 1 | /****************************************************************************** |
3abe9331 | 2 | * Copyright (c) 2000-2015 Ericsson Telecom AB |
970ed795 EL |
3 | * All rights reserved. This program and the accompanying materials |
4 | * are made available under the terms of the Eclipse Public License v1.0 | |
5 | * which accompanies this distribution, and is available at | |
6 | * http://www.eclipse.org/legal/epl-v10.html | |
7 | ******************************************************************************/ | |
8 | module convertest { | |
9 | ||
10 | import from converter all; | |
11 | ||
12 | type component C {} | |
13 | ||
14 | const universal charstring nagy_arvizturo := | |
15 | char(0,0,0,193) & "RV" & char(0,0,0,205) & "ZT" & char(0,0,1,112) & "R" & | |
16 | char(0,0,1,80) & " T" & char(0,0,0,220) & "K" & char(0,0,0,214) & "RF" & | |
17 | char(0,0,0,218) & "R" & char(0,0,0,211) & "G" & char(0,0,0,201) & "P.\n"; | |
18 | const universal charstring kis_arvizturo := | |
19 | char(0,0,0,225) & "rv" & char(0,0,0,237) & "zt" & char(0,0,1,113) & "r" & | |
20 | char(0,0,1,81) & " t" & char(0,0,0,252) & "k" & char(0,0,0,246) & "rf" & | |
21 | char(0,0,0,250) & "r" & char(0,0,0,243) & "g" & char(0,0,0,233) & "p.\n"; | |
22 | const universal charstring csend := ""; | |
23 | ||
24 | const octetstring nagy_utf16be := | |
25 | '00 c1 00 52 00 56 00 cd 00 5a 00 54 01 70 00 52'O & // |...R.V...Z.T.p.R| | |
26 | '01 50 00 20 00 54 00 dc 00 4b 00 d6 00 52 00 46'O & // |.P. .T...K...R.F| | |
27 | '00 da 00 52 00 d3 00 47 00 c9 00 50 00 2e 00 0a'O ; // |...R...G...P....| | |
28 | ||
29 | const octetstring kis_utf16be := | |
30 | '00 e1 00 72 00 76 00 ed 00 7a 00 74 01 71 00 72'O & // |...r.v...z.t.q.r| | |
31 | '01 51 00 20 00 74 00 fc 00 6b 00 f6 00 72 00 66'O & // |.Q. .t...k...r.f| | |
32 | '00 fa 00 72 00 f3 00 67 00 e9 00 70 00 2e 00 0a'O ; // |...r...g...p....| | |
33 | ||
34 | const octetstring kis_utf16le := | |
35 | 'e1 00 72 00 76 00 ed 00 7a 00 74 00 71 01 72 00'O & // |..r.v...z.t.q.r.| | |
36 | '51 01 20 00 74 00 fc 00 6b 00 f6 00 72 00 66 00'O & // |Q. .t...k...r.f.| | |
37 | 'fa 00 72 00 f3 00 67 00 e9 00 70 00 2e 00 0a 00'O ; // |..r...g...p.....| | |
38 | ||
39 | const octetstring nagy_utf16le := | |
40 | 'c1 00 52 00 56 00 cd 00 5a 00 54 00 70 01 52 00'O & // |..R.V...Z.T.p.R.| | |
41 | '50 01 20 00 54 00 dc 00 4b 00 d6 00 52 00 46 00'O & // |P. .T...K...R.F.| | |
42 | 'da 00 52 00 d3 00 47 00 c9 00 50 00 2e 00 0a 00'O ; // |..R...G...P.....| | |
43 | ||
44 | const octetstring kis_utf8 := | |
45 | 'c3 a1 72 76 c3 ad 7a 74 c5 b1 72 c5 91 20 74 c3'O & // |..rv..zt..r.. t.| | |
46 | 'bc 6b c3 b6 72 66 c3 ba 72 c3 b3 67 c3 a9 70 2e'O & // |.k..rf..r..g..p.| | |
47 | '0a'O; | |
48 | ||
49 | const octetstring nagy_utf8 := | |
50 | 'c3 81 52 56 c3 8d 5a 54 c5 b0 52 c5 90 20 54'O & // |..RV..ZT..R.. T| | |
51 | 'c3 9c 4b c3 96 52 46 c3 9a 52 c3 93 47 c3 89 50'O & // |..K..RF..R..G..P| | |
52 | '2e 0a 'O ; // |..| | |
53 | ||
54 | const octetstring empty := ''O; | |
55 | ||
56 | type record unused { | |
57 | // This record type exist only to make the project fail to build | |
58 | // when compiled for RT2 but linked to libttcn3.a instead of libttcn3-parallel.a | |
59 | // (this worked accidentally, because only charstrings were used, which are | |
60 | // identical between libttcn3.a and libttcn3-parallel.a) | |
61 | }; | |
62 | ||
63 | testcase tc_o2u() runs on C | |
64 | { | |
65 | var octetstring input := '3331343135'O; | |
66 | var universal charstring output; | |
67 | var integer errno; | |
68 | ||
69 | errno := o2u("US-ASCII", input, output); | |
70 | if (errno != 0) { setverdict(fail, "conversion failed: ", errno); } | |
71 | ||
970ed795 | 72 | if (output == "31415") {setverdict(pass);} |
3abe9331 | 73 | else {setverdict(fail, "output is ", output);} |
970ed795 EL |
74 | { |
75 | var universal charstring rez; | |
76 | errno := o2u("UTF-16LE", nagy_utf16le, rez); | |
77 | if (nagy_arvizturo == rez) {setverdict(pass);} | |
78 | else {setverdict(fail, "\n", rez, "!=\n", nagy_utf16le);} | |
79 | } | |
80 | ||
81 | { | |
82 | var universal charstring rez; | |
83 | errno := o2u("UTF-16LE", kis_utf16le, rez); | |
84 | if (kis_arvizturo == rez) {setverdict(pass);} | |
85 | else {setverdict(fail, "\n", rez, "!=\n", kis_arvizturo);} | |
86 | } | |
87 | ||
88 | { | |
89 | var universal charstring rez; | |
90 | errno := o2u("UTF-16BE", nagy_utf16be, rez); | |
91 | if (nagy_arvizturo == rez) {setverdict(pass);} | |
92 | else {setverdict(fail, "\n", rez, "!=\n", nagy_arvizturo);} | |
93 | } | |
94 | ||
95 | { | |
96 | var universal charstring rez; | |
97 | errno := o2u("UTF-16BE", kis_utf16be, rez); | |
98 | if (kis_arvizturo == rez) {setverdict(pass);} | |
99 | else {setverdict(fail, "\n", rez, "!=\n", kis_arvizturo);} | |
100 | } | |
101 | ||
102 | { | |
103 | var universal charstring rez; | |
104 | errno := o2u("UTF-8", nagy_utf8, rez); | |
105 | if (nagy_arvizturo == rez) {setverdict(pass);} | |
106 | else {setverdict(fail, "\n", rez, "!=\n", nagy_arvizturo);} | |
107 | } | |
108 | ||
109 | { | |
110 | var universal charstring rez; | |
111 | errno := o2u("UTF-8", kis_utf8, rez); | |
112 | if (kis_arvizturo == rez) {setverdict(pass);} | |
113 | else {setverdict(fail, "\n", rez, "!=\n", kis_arvizturo);} | |
114 | } | |
115 | ||
116 | { | |
117 | var universal charstring rez; | |
118 | errno := o2u("UTF-8", empty, rez); | |
119 | if (csend == rez) {setverdict(pass);} | |
120 | else {setverdict(fail, "\n", rez, "!=\n", csend);} | |
121 | } | |
122 | } | |
123 | ||
124 | testcase tc_u2o() runs on C | |
125 | { | |
126 | var universal charstring input := "271828"; | |
127 | var octetstring output; | |
128 | var integer errno; | |
129 | ||
130 | errno := u2o("UTF-8", input, output); | |
131 | if (errno != 0) { setverdict(fail, "conversion failed: ", errno); } | |
970ed795 EL |
132 | |
133 | if (output == '323731383238'O) {setverdict(pass);} | |
3abe9331 | 134 | else {setverdict(fail, "output is ", output);} |
970ed795 EL |
135 | |
136 | /* | |
137 | var octetstring rez := u2o("UTF-16LE", nagy_arvizturo); | |
138 | if () {setverdict(pass);} | |
139 | else {setverdict(fail);} | |
140 | */ | |
141 | ||
142 | { | |
143 | var octetstring rez; | |
144 | errno := u2o("UTF-16LE", nagy_arvizturo, rez); | |
145 | if (nagy_utf16le == rez) {setverdict(pass);} | |
146 | else {setverdict(fail, "\n", rez, "!=\n", nagy_utf16le);} | |
147 | } | |
148 | ||
149 | { | |
150 | var octetstring rez; | |
151 | errno := u2o("UTF-16LE", kis_arvizturo, rez); | |
152 | if (kis_utf16le == rez) {setverdict(pass);} | |
153 | else {setverdict(fail, "\n", rez, "!=\n", kis_utf16le);} | |
154 | } | |
155 | ||
156 | { | |
157 | var octetstring rez; | |
158 | errno := u2o("UTF-16BE", nagy_arvizturo, rez); | |
159 | if (nagy_utf16be == rez) {setverdict(pass);} | |
160 | else {setverdict(fail, "\n", rez, "!=\n", nagy_utf16be);} | |
161 | } | |
162 | ||
163 | { | |
164 | var octetstring rez; | |
165 | errno := u2o("UTF-16BE", kis_arvizturo, rez); | |
166 | if (kis_utf16be == rez) {setverdict(pass);} | |
167 | else {setverdict(fail, "\n", rez, "!=\n", kis_utf16be);} | |
168 | } | |
169 | ||
170 | { | |
171 | var octetstring rez; | |
172 | errno := u2o("UTF-8", nagy_arvizturo, rez); | |
173 | if (nagy_utf8 == rez) {setverdict(pass);} | |
174 | else {setverdict(fail, "\n", rez, "!=\n", nagy_utf8);} | |
175 | } | |
176 | ||
177 | { | |
178 | var octetstring rez; | |
179 | errno := u2o("UTF-8", kis_arvizturo, rez); | |
180 | if (kis_utf8 == rez) {setverdict(pass);} | |
181 | else {setverdict(fail, "\n", rez, "!=\n", kis_utf8);} | |
182 | } | |
183 | ||
184 | { | |
185 | var octetstring rez; | |
186 | errno := u2o("UTF-8", csend, rez); | |
187 | if (empty == rez) {setverdict(pass);} | |
188 | else {setverdict(fail, "\n", rez, "!=\n", empty);} | |
189 | } | |
190 | } | |
191 | ||
192 | control { | |
193 | execute(tc_o2u()) | |
194 | execute(tc_u2o()) | |
195 | } | |
196 | ||
197 | } | |
198 | with { | |
199 | encode "Triple-ROT13" | |
200 | } |