Titan Core Initial Contribution
[deliverable/titan.core.git] / function_test / Semantic_Analyser / xer / encdec_OK.ttcn
1 /******************************************************************************
2 * Copyright (c) 2000-2014 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 encdec_OK {
9
10 type record R {
11 integer i,
12 float f
13 }
14
15 external function enc_conv(in R input) return octetstring
16 with { extension "prototype(convert) encode(XER:XER_EXTENDED)" }
17
18 external function dec_conv(in octetstring input) return R
19 with { extension "prototype(convert) decode(XER:XER_EXTENDED)" }
20
21 external function dec_fast(in octetstring input, out R ret)
22 with { extension "prototype(fast) decode(XER:XER_EXTENDED)" }
23
24 external function dec_bk(in octetstring input, out R ret) return integer
25 with { extension "prototype(backtrack) decode(XER:XER_EXTENDED)" }
26
27 external function dec_sl(inout octetstring input, out R ret) return integer
28 with { extension "prototype(sliding) decode(XER:XER_EXTENDED)" }
29
30 const R c_r := {
31 i := 3, f := 0.141592
32 }
33
34 type component pi {}
35
36 testcase t_pi() runs on pi
37 {
38 var octetstring encoded := enc_conv(c_r);
39 const octetstring comment := char2oct("<!-- nothing to see here -->");
40 encoded := comment & encoded & comment;
41
42 var R decoded_conv := dec_conv(encoded);
43 if (decoded_conv == c_r) { setverdict(pass); }
44 else { /*log(decoded_conv, "<>", c_r);*/ setverdict(fail, decoded_conv, "<>", c_r); }
45
46 var R decoded_fast, decoded_sliding, decoded_backtrack;
47
48 dec_fast(encoded, decoded_fast);
49 if (decoded_fast == c_r) { setverdict(pass); }
50 else { setverdict(fail); }
51
52 var integer i := dec_bk(encoded, decoded_backtrack);
53 if (i == 0){ setverdict(pass); }
54 else { setverdict(fail, "decoding failed"); }
55 if (decoded_backtrack == c_r) { setverdict(pass); }
56 else { setverdict(fail, decoded_backtrack, "<>", c_r); }
57
58 i := dec_sl(encoded, decoded_sliding);
59 if (i == 0){ setverdict(pass); }
60 else { setverdict(fail, "decoding failed"); }
61 if (decoded_sliding == c_r) { setverdict(pass); }
62 else { setverdict(fail, decoded_sliding, "<>", c_r); }
63
64 log(i);
65 }
66
67 control {
68 execute(t_pi());
69 }
70
71 }
72 with {
73 encode "XML";
74 }
75
This page took 0.032425 seconds and 5 git commands to generate.