The fillByte method in RuntimeData.scala has an assert that the encoding is known. This assertion is preventing test_encoding_property_expression in edu.illinois.ncsa.daffodil.section11.content_framing_properties.TestContentFramingProperties from successfully roundtripping. This test uses a runtime calculated encoding and at some point the fillByte is accessed, which throws the assertion.
There are probably two changes necessary here:
- Turn fillByte into an Evaluatable that is dependent on encoding and pass it into the unparsers that might need it. This has the bonus that we can remove something from the RuntimeData (we probably want this as small as possible).
- This test doesn't actually need the fill byte, but the StringLengthUnparser gets it just in case it will need it. We should modify StringLengthUnparser (and anything else that uses fillByte) to only calculate it when it will be used.