Skip to content

RAW encoder: wrong value if FIELDORDER msb with PADDING

Copy of titan.core#575 (closed)

Summary

The RAW encoder produces wrong encoded value if the FIELDORDER is msb and padding is used.

Steps and/or TTCN-3 code to reproduce

module proba{

type component CT {};


type record my_rec{
  bitstring f1 length(6)
} with {
  variant "FIELDORDER(msb)"
  variant "PADDING(dword32)"
}

template my_rec t_expected:={f1:='111111'B}

testcase t_1() runs on CT{
  var bitstring vl_encoded
  var my_rec vl_pdu:={f1:='111111'B}
  var integer vl_res
  
  vl_encoded:=encvalue(vl_pdu)
  
  log(vl_encoded)

  
}

control{
  execute(t_1())
}
} with {encode "RAW"}

What is the current bug behavior?

'11000000000000000000000000000000'B

What is the expected correct behavior?

'11111100000000000000000000000000'B

Titan version

Up to 8.0.0

/cc @aknappqwt

Edited by Adam Knapp