RAW enc/dec error, hexstring, FILEDORDER(msb), HEXORDER(high), field starts on half octet
Copy of https://gitlab.eclipse.org/eclipse/titan/titan.core/-/issues/557 ## Summary The encoding of the hexstring is faulty if: - FILEDORDER(msb) - HEXORDER(high) - The field starts on the half octet ## Steps and/or TTCN-3 code to reproduce ``` module proba { type record R4{ bitstring f1 length(4), hexstring f2 } with { variant (f2) "HEXORDER(high)" variant "FIELDORDER(msb)" } type component CT{} template bitstring t_expected_encoded:=oct2bit('F123456789'O) template R4 t_expected_decoded:={'1111'B, '123456789'H } testcase TC2() runs on CT { var R4 vl_pdu4:={'1111'B, '123456789'H } var bitstring vl_encoded:=encvalue(vl_pdu4) log(vl_pdu4, " encoded as ",bit2oct(vl_encoded), " expected as ", bit2oct(valueof(t_expected_encoded))) if(match(vl_encoded,t_expected_encoded)){ setverdict(pass) } else { setverdict(fail, "wrong encoded value") } vl_encoded:=valueof(t_expected_encoded) var integer vl_res:=decvalue(vl_encoded,vl_pdu4) log("decode result: ", vl_res) if(vl_res == 0) { setverdict(pass) log(bit2oct(valueof(t_expected_encoded)), " decoded as ",vl_pdu4, " expected as ", t_expected_decoded) if(match(vl_pdu4,t_expected_decoded)){ setverdict(pass) } else { setverdict(fail, "wrong decoded value") } } else { setverdict(fail, "Decoding failed") } } control { execute(TC2()) } } with {encode "RAW"} ``` ## What is the current bug behavior? ``` 15:05:12.936648 proba.ttcn:69 Component type proba.CT was initialized. 15:05:12.937090 proba.ttcn:73 { f1 := '1111'B, f2 := '123456789'H }encoded as 'F315274968'O expected as 'F123456789'O 15:05:12.937457 proba.ttcn:77 setverdict(fail): none -> fail reason: "wrong encoded value", new component reason: "wrong encoded value" 15:05:12.937788 proba.ttcn:83 decode result: 0 15:05:12.938259 proba.ttcn:87 'F123456789'Odecoded as { f1 := '1111'B, f2 := '241638597'H } expected as { f1 := '1111'B, f2 := '123456789'H } 15:05:12.938626 proba.ttcn:91 setverdict(fail): fail -> fail reason: "wrong decoded value", component reason not changed ``` ## What is the expected correct behavior? ``` 15:08:15.666778 proba.ttcn:73 { f1 := '1111'B, f2 := '123456789'H } encoded as 'F123456789'O expected as 'F123456789'O 15:08:15.667254 proba.ttcn:75 setverdict(pass): none -> pass 15:08:15.667984 proba.ttcn:83 decode result: 0 15:08:15.668373 proba.ttcn:86 setverdict(pass): pass -> pass, component reason not changed 15:08:15.668687 proba.ttcn:87 'F123456789'O decoded as { f1 := '1111'B, f2 := '123456789'H } expected as { f1 := '1111'B, f2 := '123456789'H } 15:08:15.669039 proba.ttcn:89 setverdict(pass): pass -> pass, component reason not changed ``` ## Titan version Up to 8.0.0
issue

Copyright © Eclipse Foundation AISBL. All rights reserved.     Privacy Policy | Terms of Use | Copyright Agent