Sync with 5.4.0
[deliverable/titan.core.git] / regression_test / iconv / convertest.ttcn
1 /******************************************************************************
2 * Copyright (c) 2000-2015 Ericsson Telecom AB
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
72 if (output == "31415") {setverdict(pass);}
73 else {setverdict(fail, "output is ", output);}
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); }
132
133 if (output == '323731383238'O) {setverdict(pass);}
134 else {setverdict(fail, "output is ", output);}
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 }
This page took 0.053721 seconds and 5 git commands to generate.