/****************************************************************************** * Copyright (c) 2000-2014 Ericsson Telecom AB * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html ******************************************************************************/ module convertest { import from converter all; type component C {} const universal charstring nagy_arvizturo := char(0,0,0,193) & "RV" & char(0,0,0,205) & "ZT" & char(0,0,1,112) & "R" & char(0,0,1,80) & " T" & char(0,0,0,220) & "K" & char(0,0,0,214) & "RF" & char(0,0,0,218) & "R" & char(0,0,0,211) & "G" & char(0,0,0,201) & "P.\n"; const universal charstring kis_arvizturo := char(0,0,0,225) & "rv" & char(0,0,0,237) & "zt" & char(0,0,1,113) & "r" & char(0,0,1,81) & " t" & char(0,0,0,252) & "k" & char(0,0,0,246) & "rf" & char(0,0,0,250) & "r" & char(0,0,0,243) & "g" & char(0,0,0,233) & "p.\n"; const universal charstring csend := ""; const octetstring nagy_utf16be := '00 c1 00 52 00 56 00 cd 00 5a 00 54 01 70 00 52'O & // |...R.V...Z.T.p.R| '01 50 00 20 00 54 00 dc 00 4b 00 d6 00 52 00 46'O & // |.P. .T...K...R.F| '00 da 00 52 00 d3 00 47 00 c9 00 50 00 2e 00 0a'O ; // |...R...G...P....| const octetstring kis_utf16be := '00 e1 00 72 00 76 00 ed 00 7a 00 74 01 71 00 72'O & // |...r.v...z.t.q.r| '01 51 00 20 00 74 00 fc 00 6b 00 f6 00 72 00 66'O & // |.Q. .t...k...r.f| '00 fa 00 72 00 f3 00 67 00 e9 00 70 00 2e 00 0a'O ; // |...r...g...p....| const octetstring kis_utf16le := 'e1 00 72 00 76 00 ed 00 7a 00 74 00 71 01 72 00'O & // |..r.v...z.t.q.r.| '51 01 20 00 74 00 fc 00 6b 00 f6 00 72 00 66 00'O & // |Q. .t...k...r.f.| 'fa 00 72 00 f3 00 67 00 e9 00 70 00 2e 00 0a 00'O ; // |..r...g...p.....| const octetstring nagy_utf16le := 'c1 00 52 00 56 00 cd 00 5a 00 54 00 70 01 52 00'O & // |..R.V...Z.T.p.R.| '50 01 20 00 54 00 dc 00 4b 00 d6 00 52 00 46 00'O & // |P. .T...K...R.F.| 'da 00 52 00 d3 00 47 00 c9 00 50 00 2e 00 0a 00'O ; // |..R...G...P.....| const octetstring kis_utf8 := 'c3 a1 72 76 c3 ad 7a 74 c5 b1 72 c5 91 20 74 c3'O & // |..rv..zt..r.. t.| 'bc 6b c3 b6 72 66 c3 ba 72 c3 b3 67 c3 a9 70 2e'O & // |.k..rf..r..g..p.| '0a'O; const octetstring nagy_utf8 := 'c3 81 52 56 c3 8d 5a 54 c5 b0 52 c5 90 20 54'O & // |..RV..ZT..R.. T| 'c3 9c 4b c3 96 52 46 c3 9a 52 c3 93 47 c3 89 50'O & // |..K..RF..R..G..P| '2e 0a 'O ; // |..| const octetstring empty := ''O; type record unused { // This record type exist only to make the project fail to build // when compiled for RT2 but linked to libttcn3.a instead of libttcn3-parallel.a // (this worked accidentally, because only charstrings were used, which are // identical between libttcn3.a and libttcn3-parallel.a) }; testcase tc_o2u() runs on C { var octetstring input := '3331343135'O; var universal charstring output; var integer errno; errno := o2u("US-ASCII", input, output); if (errno != 0) { setverdict(fail, "conversion failed: ", errno); } log(output); if (output == "31415") {setverdict(pass);} else {setverdict(fail);} { var universal charstring rez; errno := o2u("UTF-16LE", nagy_utf16le, rez); if (nagy_arvizturo == rez) {setverdict(pass);} else {setverdict(fail, "\n", rez, "!=\n", nagy_utf16le);} } { var universal charstring rez; errno := o2u("UTF-16LE", kis_utf16le, rez); if (kis_arvizturo == rez) {setverdict(pass);} else {setverdict(fail, "\n", rez, "!=\n", kis_arvizturo);} } { var universal charstring rez; errno := o2u("UTF-16BE", nagy_utf16be, rez); if (nagy_arvizturo == rez) {setverdict(pass);} else {setverdict(fail, "\n", rez, "!=\n", nagy_arvizturo);} } { var universal charstring rez; errno := o2u("UTF-16BE", kis_utf16be, rez); if (kis_arvizturo == rez) {setverdict(pass);} else {setverdict(fail, "\n", rez, "!=\n", kis_arvizturo);} } { var universal charstring rez; errno := o2u("UTF-8", nagy_utf8, rez); if (nagy_arvizturo == rez) {setverdict(pass);} else {setverdict(fail, "\n", rez, "!=\n", nagy_arvizturo);} } { var universal charstring rez; errno := o2u("UTF-8", kis_utf8, rez); if (kis_arvizturo == rez) {setverdict(pass);} else {setverdict(fail, "\n", rez, "!=\n", kis_arvizturo);} } { var universal charstring rez; errno := o2u("UTF-8", empty, rez); if (csend == rez) {setverdict(pass);} else {setverdict(fail, "\n", rez, "!=\n", csend);} } } testcase tc_u2o() runs on C { var universal charstring input := "271828"; var octetstring output; var integer errno; errno := u2o("UTF-8", input, output); if (errno != 0) { setverdict(fail, "conversion failed: ", errno); } log(output); if (output == '323731383238'O) {setverdict(pass);} else {setverdict(fail);} /* var octetstring rez := u2o("UTF-16LE", nagy_arvizturo); if () {setverdict(pass);} else {setverdict(fail);} */ { var octetstring rez; errno := u2o("UTF-16LE", nagy_arvizturo, rez); if (nagy_utf16le == rez) {setverdict(pass);} else {setverdict(fail, "\n", rez, "!=\n", nagy_utf16le);} } { var octetstring rez; errno := u2o("UTF-16LE", kis_arvizturo, rez); if (kis_utf16le == rez) {setverdict(pass);} else {setverdict(fail, "\n", rez, "!=\n", kis_utf16le);} } { var octetstring rez; errno := u2o("UTF-16BE", nagy_arvizturo, rez); if (nagy_utf16be == rez) {setverdict(pass);} else {setverdict(fail, "\n", rez, "!=\n", nagy_utf16be);} } { var octetstring rez; errno := u2o("UTF-16BE", kis_arvizturo, rez); if (kis_utf16be == rez) {setverdict(pass);} else {setverdict(fail, "\n", rez, "!=\n", kis_utf16be);} } { var octetstring rez; errno := u2o("UTF-8", nagy_arvizturo, rez); if (nagy_utf8 == rez) {setverdict(pass);} else {setverdict(fail, "\n", rez, "!=\n", nagy_utf8);} } { var octetstring rez; errno := u2o("UTF-8", kis_arvizturo, rez); if (kis_utf8 == rez) {setverdict(pass);} else {setverdict(fail, "\n", rez, "!=\n", kis_utf8);} } { var octetstring rez; errno := u2o("UTF-8", csend, rez); if (empty == rez) {setverdict(pass);} else {setverdict(fail, "\n", rez, "!=\n", empty);} } } control { execute(tc_o2u()) execute(tc_u2o()) } } with { encode "Triple-ROT13" }