tests: Port avmplus ByteArray tests
This commit is contained in:
parent
7dc0224451
commit
0d1d110660
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,13 @@
|
||||||
|
<flex-config>
|
||||||
|
<compiler>
|
||||||
|
<source-path>
|
||||||
|
<path-element>.</path-element>
|
||||||
|
<path-element>../../../lib</path-element>
|
||||||
|
</source-path>
|
||||||
|
<debug>false</debug>
|
||||||
|
<omit-trace-statements>false</omit-trace-statements>
|
||||||
|
<show-actionscript-warnings>false</show-actionscript-warnings>
|
||||||
|
<strict>false</strict>
|
||||||
|
</compiler>
|
||||||
|
<output>test.swf</output>
|
||||||
|
</flex-config>
|
|
@ -0,0 +1,425 @@
|
||||||
|
ByteArray constructor no args PASSED!
|
||||||
|
ByteArray length of empty PASSED!
|
||||||
|
ByteArray toString empty PASSED!
|
||||||
|
ByteArray available on empty PASSED!
|
||||||
|
ByteArray position on empty PASSED!
|
||||||
|
ByteArray endianness on empty PASSED!
|
||||||
|
ByteArray trivial length PASSED!
|
||||||
|
ByteArray trivial position PASSED!
|
||||||
|
ByteArray position after clearing PASSED!
|
||||||
|
ByteArray position can exceed length, #1 PASSED!
|
||||||
|
ByteArray position can exceed length, #2 PASSED!
|
||||||
|
ByteArray position can exceed length, #3 PASSED!
|
||||||
|
ByteArray position can exceed length, #4 PASSED!
|
||||||
|
ByteArray position can exceed length, #5 PASSED!
|
||||||
|
ByteArray position can exceed length, #6 PASSED!
|
||||||
|
ByteArray position after writing Booleans PASSED!
|
||||||
|
ByteArray move position to 0 PASSED!
|
||||||
|
ByteArray write/read boolean true PASSED!
|
||||||
|
ByteArray write/read boolean false PASSED!
|
||||||
|
ByteArray readShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readShort_2 #1 PASSED!
|
||||||
|
ByteArray readShort_2 #2 PASSED!
|
||||||
|
ByteArray readShort_2 #3 PASSED!
|
||||||
|
ByteArray readShort_3 #1 0 1 PASSED!
|
||||||
|
ByteArray readShort_3 #1 0 2 PASSED!
|
||||||
|
ByteArray readShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readShort_2 #1 PASSED!
|
||||||
|
ByteArray readShort_2 #2 PASSED!
|
||||||
|
ByteArray readShort_2 #3 PASSED!
|
||||||
|
ByteArray readShort_3 #1 1 1 PASSED!
|
||||||
|
ByteArray readShort_3 #1 1 2 PASSED!
|
||||||
|
ByteArray readShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readShort_2 #1 PASSED!
|
||||||
|
ByteArray readShort_2 #2 PASSED!
|
||||||
|
ByteArray readShort_2 #3 PASSED!
|
||||||
|
ByteArray readShort_3 #1 2 1 PASSED!
|
||||||
|
ByteArray readShort_3 #1 2 2 PASSED!
|
||||||
|
ByteArray readShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readShort_2 #1 PASSED!
|
||||||
|
ByteArray readShort_2 #2 PASSED!
|
||||||
|
ByteArray readShort_2 #3 PASSED!
|
||||||
|
ByteArray readShort_3 #1 3 1 PASSED!
|
||||||
|
ByteArray readShort_3 #1 3 2 PASSED!
|
||||||
|
ByteArray readUShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readUShort_2 #1 PASSED!
|
||||||
|
ByteArray readUShort_2 #2 PASSED!
|
||||||
|
ByteArray readUShort_2 #3 PASSED!
|
||||||
|
ByteArray readUShort_3 #1 0 1 PASSED!
|
||||||
|
ByteArray readUShort_3 #1 0 2 PASSED!
|
||||||
|
ByteArray readUShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readUShort_2 #1 PASSED!
|
||||||
|
ByteArray readUShort_2 #2 PASSED!
|
||||||
|
ByteArray readUShort_2 #3 PASSED!
|
||||||
|
ByteArray readUShort_3 #1 1 1 PASSED!
|
||||||
|
ByteArray readUShort_3 #1 1 2 PASSED!
|
||||||
|
ByteArray readUShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readUShort_2 #1 PASSED!
|
||||||
|
ByteArray readUShort_2 #2 PASSED!
|
||||||
|
ByteArray readUShort_2 #3 PASSED!
|
||||||
|
ByteArray readUShort_3 #1 2 1 PASSED!
|
||||||
|
ByteArray readUShort_3 #1 2 2 PASSED!
|
||||||
|
ByteArray readUShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readUShort_2 #1 PASSED!
|
||||||
|
ByteArray readUShort_2 #2 PASSED!
|
||||||
|
ByteArray readUShort_2 #3 PASSED!
|
||||||
|
ByteArray readUShort_3 #1 3 1 PASSED!
|
||||||
|
ByteArray readUShort_3 #1 3 2 PASSED!
|
||||||
|
ByteArray readInt_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readInt_2 #1 PASSED!
|
||||||
|
ByteArray readInt_2 #2 PASSED!
|
||||||
|
ByteArray readInt_2 #3 PASSED!
|
||||||
|
ByteArray readInt_3 #1 0 1 PASSED!
|
||||||
|
ByteArray readInt_3 #1 0 2 PASSED!
|
||||||
|
ByteArray readInt_3 #1 0 3 PASSED!
|
||||||
|
ByteArray readInt_3 #1 0 4 PASSED!
|
||||||
|
ByteArray readInt_3 #2 at position=2^32-16 PASSED!
|
||||||
|
ByteArray readInt_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readInt_2 #1 PASSED!
|
||||||
|
ByteArray readInt_2 #2 PASSED!
|
||||||
|
ByteArray readInt_2 #3 PASSED!
|
||||||
|
ByteArray readInt_3 #1 1 1 PASSED!
|
||||||
|
ByteArray readInt_3 #1 1 2 PASSED!
|
||||||
|
ByteArray readInt_3 #1 1 3 PASSED!
|
||||||
|
ByteArray readInt_3 #1 1 4 PASSED!
|
||||||
|
ByteArray readInt_3 #2 at position=2^32-16 PASSED!
|
||||||
|
ByteArray readInt_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readInt_2 #1 PASSED!
|
||||||
|
ByteArray readInt_2 #2 PASSED!
|
||||||
|
ByteArray readInt_2 #3 PASSED!
|
||||||
|
ByteArray readInt_3 #1 2 1 PASSED!
|
||||||
|
ByteArray readInt_3 #1 2 2 PASSED!
|
||||||
|
ByteArray readInt_3 #1 2 3 PASSED!
|
||||||
|
ByteArray readInt_3 #1 2 4 PASSED!
|
||||||
|
ByteArray readInt_3 #2 at position=2^32-16 PASSED!
|
||||||
|
ByteArray readInt_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readInt_2 #1 PASSED!
|
||||||
|
ByteArray readInt_2 #2 PASSED!
|
||||||
|
ByteArray readInt_2 #3 PASSED!
|
||||||
|
ByteArray readInt_3 #1 3 1 PASSED!
|
||||||
|
ByteArray readInt_3 #1 3 2 PASSED!
|
||||||
|
ByteArray readInt_3 #1 3 3 PASSED!
|
||||||
|
ByteArray readInt_3 #1 3 4 PASSED!
|
||||||
|
ByteArray readInt_3 #2 at position=2^32-16 PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_2 #1 PASSED!
|
||||||
|
ByteArray readUnsignedInt_2 #2 PASSED!
|
||||||
|
ByteArray readUnsignedInt_2 #3 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 0 1 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 0 2 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 0 3 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 0 4 PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_2 #1 PASSED!
|
||||||
|
ByteArray readUnsignedInt_2 #2 PASSED!
|
||||||
|
ByteArray readUnsignedInt_2 #3 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 1 1 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 1 2 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 1 3 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 1 4 PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_2 #1 PASSED!
|
||||||
|
ByteArray readUnsignedInt_2 #2 PASSED!
|
||||||
|
ByteArray readUnsignedInt_2 #3 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 2 1 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 2 2 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 2 3 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 2 4 PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #3bigEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readUnsignedInt_2 #1 PASSED!
|
||||||
|
ByteArray readUnsignedInt_2 #2 PASSED!
|
||||||
|
ByteArray readUnsignedInt_2 #3 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 3 1 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 3 2 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 3 3 PASSED!
|
||||||
|
ByteArray readUInt_3 #1 3 4 PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3bigEndian PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readFloat_2 #1 PASSED!
|
||||||
|
ByteArray readFloat_2 #2 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 0 1 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 0 2 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 0 3 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 0 4 PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3bigEndian PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readFloat_2 #1 PASSED!
|
||||||
|
ByteArray readFloat_2 #2 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 1 1 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 1 2 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 1 3 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 1 4 PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3bigEndian PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readFloat_2 #1 PASSED!
|
||||||
|
ByteArray readFloat_2 #2 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 2 1 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 2 2 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 2 3 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 2 4 PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3bigEndian PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readFloat_2 #1 PASSED!
|
||||||
|
ByteArray readFloat_2 #2 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 3 1 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 3 2 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 3 3 PASSED!
|
||||||
|
ByteArray readFloat_3 #1 3 4 PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3bigEndian PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readDouble_2 #1 PASSED!
|
||||||
|
ByteArray readDouble_2 #2 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 0 1 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 0 2 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 0 3 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 0 4 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 0 5 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 0 6 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 0 7 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 0 8 PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3bigEndian PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readDouble_2 #1 PASSED!
|
||||||
|
ByteArray readDouble_2 #2 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 1 1 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 1 2 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 1 3 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 1 4 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 1 5 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 1 6 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 1 7 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 1 8 PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3bigEndian PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readDouble_2 #1 PASSED!
|
||||||
|
ByteArray readDouble_2 #2 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 2 1 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 2 2 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 2 3 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 2 4 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 2 5 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 2 6 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 2 7 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 2 8 PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3bigEndian PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3littleEndian PASSED!
|
||||||
|
ByteArray readDouble_2 #1 PASSED!
|
||||||
|
ByteArray readDouble_2 #2 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 3 1 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 3 2 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 3 3 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 3 4 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 3 5 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 3 6 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 3 7 PASSED!
|
||||||
|
ByteArray readDouble_3 #1 3 8 PASSED!
|
||||||
|
testByte: ByteArray position PASSED!
|
||||||
|
testByte: ByteArray length PASSED!
|
||||||
|
ByteArray readByte PASSED!
|
||||||
|
ByteArray readByte PASSED!
|
||||||
|
ByteArray readByte EOF PASSED!
|
||||||
|
testUnsignedByte: ByteArray position PASSED!
|
||||||
|
testUnsignedByte: ByteArray length PASSED!
|
||||||
|
ByteArray readUnsignedByte PASSED!
|
||||||
|
ByteArray readUnsignedByte PASSED!
|
||||||
|
ByteArray readUnsignedByte EOF PASSED!
|
||||||
|
ByteArray position of utf string PASSED!
|
||||||
|
ByteArray length of utf string PASSED!
|
||||||
|
ByteArray readUTF PASSED!
|
||||||
|
ByteArray readUTF on contents containing NUL: contents PASSED!
|
||||||
|
ByteArray readUTF on contents containing NUL: position PASSED!
|
||||||
|
ReadUTF EOF in content PASSED!
|
||||||
|
ReadUTF EOF in length, #1 PASSED!
|
||||||
|
ReadUTF EOF in length, #2 PASSED!
|
||||||
|
RangeError in writeUTF PASSED!
|
||||||
|
ByteArray readUTF skips UTF8 BOM after length bytes but includes it in the length PASSED!
|
||||||
|
ByteArray length of utf bytes string PASSED!
|
||||||
|
ByteArray readUTFBytes PASSED!
|
||||||
|
ByteArray readUTFBytes on contents containing NUL: contents PASSED!
|
||||||
|
ByteArray readUTFBytes on contents containing NUL: position PASSED!
|
||||||
|
ReadUTFBytes EOF in content PASSED!
|
||||||
|
ByteArray readUTFBytes skips UTF8 BOM but includes it in the length PASSED!
|
||||||
|
get default endian PASSED!
|
||||||
|
set endian littleEndian PASSED!
|
||||||
|
set endian bigEndian PASSED!
|
||||||
|
exception thrown when endian is to littleEndian or bigEndian PASSED!
|
||||||
|
endian value is uchanged after invalid set PASSED!
|
||||||
|
ByteArray get [] syntax PASSED!
|
||||||
|
ByteArray set [] syntax PASSED!
|
||||||
|
ByteArray set [] / get [] syntax PASSED!
|
||||||
|
Bytearray get[] out of range PASSED!
|
||||||
|
ByteArray set[] out of range: changed element PASSED!
|
||||||
|
ByteArray set[] out of range: length PASSED!
|
||||||
|
ByteArray set[] out of range: zero-fill PASSED!
|
||||||
|
ByteArray get[] and set[]: position PASSED!
|
||||||
|
ByteArray set[] with Atom index PASSED!
|
||||||
|
ByteArray get[] with Atom index PASSED!
|
||||||
|
ByteArray empty slots filled with 0 PASSED!
|
||||||
|
ByteArray shrink length PASSED!
|
||||||
|
readBytes correct content PASSED!
|
||||||
|
readBytes correct content PASSED!
|
||||||
|
readBytes correct content PASSED!
|
||||||
|
readBytes correct content PASSED!
|
||||||
|
readBytes correct content PASSED!
|
||||||
|
readBytes correct content PASSED!
|
||||||
|
readBytes correct content PASSED!
|
||||||
|
readBytes correct content PASSED!
|
||||||
|
readBytes correct content PASSED!
|
||||||
|
readBytes correct content PASSED!
|
||||||
|
readBytes correct content PASSED!
|
||||||
|
ByteArray readBytes 8 length copies values, check size PASSED!
|
||||||
|
ByteArray readBytes 8 length copies values, check position PASSED!
|
||||||
|
EOF in readBytes PASSED!
|
||||||
|
RangeError in readBytes PASSED!
|
||||||
|
ByteArray writeBytes: length PASSED!
|
||||||
|
ByteArray writeBytes: position PASSED!
|
||||||
|
ByteArray writeBytes: content PASSED!
|
||||||
|
ByteArray writeBytes: content PASSED!
|
||||||
|
ByteArray writeBytes: content PASSED!
|
||||||
|
ByteArray writeBytes: content PASSED!
|
||||||
|
ByteArray writeBytes: content PASSED!
|
||||||
|
ByteArray writeBytes: content PASSED!
|
||||||
|
ByteArray writeBytes: content PASSED!
|
||||||
|
ByteArray writeBytes: content PASSED!
|
||||||
|
ByteArray writeBytes: content PASSED!
|
||||||
|
ByteArray writeBytes: content PASSED!
|
||||||
|
ByteArray writeBytes PASSED!
|
||||||
|
ByteArray hasAtomProperty true PASSED!
|
||||||
|
ByteArray hasAtomProperty false PASSED!
|
||||||
|
ByteArray with bom toString PASSED!
|
||||||
|
ByteArray with no bom toString PASSED!
|
||||||
|
ByteArray with partial bad utf-8 sequence PASSED!
|
||||||
|
ByteArray with truncated utf-8 sequence PASSED!
|
||||||
|
ByteArray with out-of-range utf-8 sequence PASSED!
|
||||||
|
ByteArray.compress bytearray length is different PASSED!
|
||||||
|
ByteArray.compress bytearray contents differ PASSED!
|
||||||
|
ByteArray.uncompress bytearray length matches before compress PASSED!
|
||||||
|
ByteArray.uncompress uncompressing compressed string matches original PASSED!
|
Binary file not shown.
|
@ -0,0 +1,2 @@
|
||||||
|
num_ticks = 1
|
||||||
|
known_failure = true
|
|
@ -0,0 +1,924 @@
|
||||||
|
/* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4 -*- */
|
||||||
|
/* vi: set ts=4 sw=4 expandtab: (add to ~/.vimrc: set modeline modelines=5) */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
// General principles for this test suite:
|
||||||
|
//
|
||||||
|
// - never write just one, write at least two (to test that position
|
||||||
|
// advances correctly and output is placed correctly)
|
||||||
|
// - ditto read
|
||||||
|
// - test both little and big endian for multibyte data
|
||||||
|
// - test both aligned and unaligned access for multibyte data
|
||||||
|
//
|
||||||
|
// Search for "TODO" for comments about missing tests.
|
||||||
|
|
||||||
|
package {
|
||||||
|
import flash.display.MovieClip;
|
||||||
|
public class Test extends MovieClip {}
|
||||||
|
}
|
||||||
|
|
||||||
|
import flash.errors.EOFError;
|
||||||
|
import flash.errors.IOError;
|
||||||
|
import flash.errors.MemoryError;
|
||||||
|
import flash.utils.ByteArray;
|
||||||
|
import flash.utils.CompressionAlgorithm;
|
||||||
|
|
||||||
|
import com.adobe.test.Assert;
|
||||||
|
|
||||||
|
// var SECTION = "ByteArrayWithLzmaTemplate";
|
||||||
|
// var VERSION = "as3";
|
||||||
|
// var TITLE = "test ByteArray class with lzma";
|
||||||
|
|
||||||
|
|
||||||
|
// Utility to make and pad a ByteArray
|
||||||
|
function makeByteArray(padding=0) : ByteArray
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray=new ByteArray();
|
||||||
|
for ( var i=0 ; i < padding ; i++ )
|
||||||
|
bytearray.writeByte(0);
|
||||||
|
return bytearray;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Utility to test for RangeError
|
||||||
|
function expectRangeError(tag, thunk)
|
||||||
|
{
|
||||||
|
var exn_ok = "No exn";
|
||||||
|
try { thunk(); }
|
||||||
|
catch (e: RangeError) { exn_ok = "OK"; }
|
||||||
|
catch (e) { exn_ok = "Wrong type"; }
|
||||||
|
Assert.expectEq(tag, "OK", exn_ok);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Utility to test for EOFError
|
||||||
|
function expectEOF(tag, thunk)
|
||||||
|
{
|
||||||
|
var exn_ok = "No exn";
|
||||||
|
try { thunk(); }
|
||||||
|
catch (e: EOFError) { exn_ok = "OK"; }
|
||||||
|
catch (e) { exn_ok = "Wrong type"; }
|
||||||
|
Assert.expectEq(tag, "OK", exn_ok);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Utility to test for IOError
|
||||||
|
function expectIOError(tag, thunk)
|
||||||
|
{
|
||||||
|
var exn_ok = "No exn";
|
||||||
|
try { thunk(); }
|
||||||
|
catch (e: IOError) { exn_ok = "OK"; }
|
||||||
|
catch (e) { exn_ok = "Wrong type"; }
|
||||||
|
Assert.expectEq(tag, "OK", exn_ok);
|
||||||
|
}
|
||||||
|
|
||||||
|
function callCompress(byteArray:ByteArray,description:String):void
|
||||||
|
{
|
||||||
|
var error_status:String='no error';
|
||||||
|
var len:int = byteArray.length;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
byteArray.compress(CompressionAlgorithm.LZMA);
|
||||||
|
byteArray.uncompress(CompressionAlgorithm.LZMA);
|
||||||
|
}
|
||||||
|
catch(error:Error)
|
||||||
|
{
|
||||||
|
error_status = error.message;
|
||||||
|
}
|
||||||
|
byteArray.position = len;
|
||||||
|
Assert.expectEq(description+": expecting no exception","no error",error_status);
|
||||||
|
Assert.expectEq(description+": expecting length no change ",len,byteArray.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testEmptyByteArrayWithLzma()
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray = new ByteArray();
|
||||||
|
callCompress(bytearray,"empty bytearray");
|
||||||
|
}
|
||||||
|
|
||||||
|
testEmptyByteArrayWithLzma();
|
||||||
|
|
||||||
|
function zeroByteArrayWithLzma()
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray = new ByteArray();
|
||||||
|
bytearray.writeByte(0);
|
||||||
|
callCompress(bytearray,"zero length bytearray");
|
||||||
|
}
|
||||||
|
zeroByteArrayWithLzma();
|
||||||
|
|
||||||
|
function nullByteArrayWithLzma()
|
||||||
|
{
|
||||||
|
var byteArray:ByteArray = null;
|
||||||
|
var error_status:String='no error';
|
||||||
|
try
|
||||||
|
{
|
||||||
|
byteArray.compress(CompressionAlgorithm.LZMA);
|
||||||
|
byteArray.uncompress(CompressionAlgorithm.LZMA);
|
||||||
|
}
|
||||||
|
catch(error:Error)
|
||||||
|
{
|
||||||
|
error_status ='error';
|
||||||
|
}
|
||||||
|
Assert.expectEq("expecting thrown exception","error",error_status);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
nullByteArrayWithLzma();
|
||||||
|
|
||||||
|
function compressWithZlibUncompressLzma()
|
||||||
|
{
|
||||||
|
var byteArray:ByteArray = new ByteArray();
|
||||||
|
byteArray.writeUTF("COMPRESS TEST");
|
||||||
|
var error_status:String = 'no error';
|
||||||
|
try
|
||||||
|
{
|
||||||
|
byteArray.compress(CompressionAlgorithm.ZLIB)
|
||||||
|
byteArray.uncompress(CompressionAlgorithm.LZMA);
|
||||||
|
}
|
||||||
|
catch(error:Error)
|
||||||
|
{
|
||||||
|
error_status ='error';
|
||||||
|
}
|
||||||
|
|
||||||
|
Assert.expectEq("expecting thrown exception compressWithZlibUncompressLzma", "error", error_status);
|
||||||
|
}
|
||||||
|
|
||||||
|
compressWithZlibUncompressLzma()
|
||||||
|
|
||||||
|
function uncompressWithoutCompressionLzma()
|
||||||
|
{
|
||||||
|
var byteArray:ByteArray = new ByteArray();
|
||||||
|
byteArray.writeUTF("UNCOMPRESS TEST");
|
||||||
|
|
||||||
|
var uncompressedLengthBefore : uint = byteArray.length;
|
||||||
|
|
||||||
|
var error_status:String = 'no error';
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
byteArray.uncompress(CompressionAlgorithm.LZMA);
|
||||||
|
}
|
||||||
|
catch(error:IOError)
|
||||||
|
{
|
||||||
|
error_status ='error';
|
||||||
|
}
|
||||||
|
catch(error:MemoryError)
|
||||||
|
{
|
||||||
|
error_status ='error';
|
||||||
|
}
|
||||||
|
|
||||||
|
Assert.expectEq("expecting thrown exception uncompressWithZlibUncompressLzma", "error", error_status);
|
||||||
|
|
||||||
|
Assert.expectEq("uncompressWithoutCompressionLzma bytearray length matches before uncompress",
|
||||||
|
uncompressedLengthBefore, byteArray.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
uncompressWithoutCompressionLzma()
|
||||||
|
|
||||||
|
function testBooleanWithLzma()
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray=makeByteArray();
|
||||||
|
bytearray.writeBoolean(true);
|
||||||
|
bytearray.writeBoolean(false);
|
||||||
|
Assert.expectEq("ByteArray position after writing Booleans",
|
||||||
|
2,
|
||||||
|
bytearray.position);
|
||||||
|
callCompress(bytearray,"boolean bytearray");
|
||||||
|
bytearray.position=0;
|
||||||
|
Assert.expectEq(
|
||||||
|
"ByteArray move position to 0",
|
||||||
|
0,
|
||||||
|
bytearray.position);
|
||||||
|
|
||||||
|
Assert.expectEq(
|
||||||
|
"ByteArray write/read boolean true",
|
||||||
|
true,
|
||||||
|
bytearray.readBoolean());
|
||||||
|
|
||||||
|
Assert.expectEq(
|
||||||
|
"ByteArray write/read boolean false",
|
||||||
|
false,
|
||||||
|
bytearray.readBoolean());
|
||||||
|
}
|
||||||
|
|
||||||
|
testBooleanWithLzma();
|
||||||
|
|
||||||
|
function testShortWithLzma()
|
||||||
|
{
|
||||||
|
// One endianness or the other
|
||||||
|
function readShort_tests1(endian, offset)
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray=makeByteArray(offset);
|
||||||
|
bytearray.endian = endian;
|
||||||
|
bytearray.position=offset;
|
||||||
|
bytearray.writeShort(100);
|
||||||
|
bytearray.writeShort(-200);
|
||||||
|
callCompress(bytearray,"bytearray of short");
|
||||||
|
bytearray.position=offset;
|
||||||
|
Assert.expectEq("ByteArray readShort_1 #1 " + endian,
|
||||||
|
100,
|
||||||
|
bytearray.readShort());
|
||||||
|
Assert.expectEq( "ByteArray readShort_1 #2 " + endian,
|
||||||
|
-200,
|
||||||
|
bytearray.readShort());
|
||||||
|
Assert.expectEq("ByteArray readShort_1 #3" + endian,
|
||||||
|
4+offset,
|
||||||
|
bytearray.position);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mixed endianness: write with one, read with the other
|
||||||
|
function readShort_tests2(offset)
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray=makeByteArray(offset);
|
||||||
|
bytearray.endian = "bigEndian";
|
||||||
|
bytearray.position=offset;
|
||||||
|
bytearray.writeShort(int(0x1234));
|
||||||
|
bytearray.writeShort(int(0xFEDC));
|
||||||
|
callCompress(bytearray,"bytearray of short mixed endianness");
|
||||||
|
bytearray.position=offset;
|
||||||
|
bytearray.endian = "littleEndian";
|
||||||
|
Assert.expectEq("ByteArray readShort_2 #1",
|
||||||
|
int(0x3412),
|
||||||
|
bytearray.readShort());
|
||||||
|
Assert.expectEq("ByteArray readShort_2 #2",
|
||||||
|
int(0xFFFFDCFE), // Sign extended
|
||||||
|
bytearray.readShort());
|
||||||
|
Assert.expectEq("ByteArray readShort_2 #3",
|
||||||
|
4+offset,
|
||||||
|
bytearray.position);
|
||||||
|
}
|
||||||
|
|
||||||
|
// EOF at various offsets and alignments
|
||||||
|
function readShort_tests3(offset)
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray=makeByteArray(offset); // use offset to create the alignment
|
||||||
|
bytearray.writeShort(0x1234);
|
||||||
|
callCompress(bytearray,"bytearray of shorts with EOFs at various offsets");
|
||||||
|
|
||||||
|
for ( var i=0 ; i < 2 ; i++ ) {
|
||||||
|
var v;
|
||||||
|
expectEOF("ByteArray readShort_3 #1 " + offset + " " + (i+1),
|
||||||
|
(function () {
|
||||||
|
bytearray.position = offset + i + 1;
|
||||||
|
v = bytearray.readShort();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( var offs=0 ; offs < 4 ; offs++ ) {
|
||||||
|
readShort_tests1("bigEndian", offs);
|
||||||
|
readShort_tests1("littleEndian", offs);
|
||||||
|
readShort_tests2(offs);
|
||||||
|
readShort_tests3(offs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
testShortWithLzma();
|
||||||
|
|
||||||
|
function testUnsignedShortWithLzma()
|
||||||
|
{
|
||||||
|
// One endianness or the other
|
||||||
|
function readUShort_tests1(endian, offset)
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray=makeByteArray(offset);
|
||||||
|
bytearray.endian = endian;
|
||||||
|
bytearray.position=offset;
|
||||||
|
bytearray.writeShort(100);
|
||||||
|
bytearray.writeShort(uint(-200) & 65535);
|
||||||
|
callCompress(bytearray,"unsigned short");
|
||||||
|
bytearray.position=offset;
|
||||||
|
Assert.expectEq("ByteArray readUShort_1 #1 " + endian,
|
||||||
|
uint(100),
|
||||||
|
bytearray.readUnsignedShort());
|
||||||
|
Assert.expectEq("ByteArray readUShort_1 #2 " + endian,
|
||||||
|
uint(-200) & 65535,
|
||||||
|
bytearray.readUnsignedShort());
|
||||||
|
Assert.expectEq("ByteArray readUShort_1 #3" + endian,
|
||||||
|
4+offset,
|
||||||
|
bytearray.position);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mixed endianness: write with one, read with the other
|
||||||
|
function readUShort_tests2(offset)
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray=makeByteArray(offset);
|
||||||
|
bytearray.endian = "bigEndian";
|
||||||
|
bytearray.position=offset;
|
||||||
|
bytearray.writeShort(uint(0x1234));
|
||||||
|
bytearray.writeShort(uint(0xFEDC) & 65535);
|
||||||
|
callCompress(bytearray,"unsigned short mixed endianness");
|
||||||
|
bytearray.position=offset;
|
||||||
|
bytearray.endian = "littleEndian";
|
||||||
|
Assert.expectEq("ByteArray readUShort_2 #1",
|
||||||
|
uint(0x3412),
|
||||||
|
bytearray.readUnsignedShort());
|
||||||
|
Assert.expectEq("ByteArray readUShort_2 #2",
|
||||||
|
uint(0xDCFE),
|
||||||
|
bytearray.readUnsignedShort());
|
||||||
|
Assert.expectEq("ByteArray readUShort_2 #3",
|
||||||
|
4+offset,
|
||||||
|
bytearray.position);
|
||||||
|
}
|
||||||
|
|
||||||
|
// EOF at various offsets and alignments
|
||||||
|
function readUShort_tests3(offset)
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray=makeByteArray(offset); // use offset to create the alignment
|
||||||
|
bytearray.writeShort(0x1234);
|
||||||
|
callCompress(bytearray,"unsigned short eof at various offsets");
|
||||||
|
for ( var i=0 ; i < 2 ; i++ ) {
|
||||||
|
var v;
|
||||||
|
expectEOF("ByteArray readUShort_3 #1 " + offset + " " + (i+1),
|
||||||
|
(function () {
|
||||||
|
bytearray.position = offset + i + 1;
|
||||||
|
v = bytearray.readUnsignedShort();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( var offs=0 ; offs < 4 ; offs++ ) {
|
||||||
|
readUShort_tests1("bigEndian", offs);
|
||||||
|
readUShort_tests1("littleEndian", offs);
|
||||||
|
readUShort_tests2(offs);
|
||||||
|
readUShort_tests3(offs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
testUnsignedShortWithLzma();
|
||||||
|
|
||||||
|
function testIntWithLzma()
|
||||||
|
{
|
||||||
|
// One endianness or the other
|
||||||
|
function readInt_tests1(endian, offset)
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray=makeByteArray(offset);
|
||||||
|
bytearray.endian = endian;
|
||||||
|
bytearray.position=offset;
|
||||||
|
bytearray.writeInt(100);
|
||||||
|
bytearray.writeInt(-200);
|
||||||
|
callCompress(bytearray,"int endianness");
|
||||||
|
bytearray.position=offset;
|
||||||
|
Assert.expectEq("ByteArray readInt_1 #1 " + endian,
|
||||||
|
100,
|
||||||
|
bytearray.readInt());
|
||||||
|
Assert.expectEq( "ByteArray readInt_1 #2 " + endian,
|
||||||
|
-200,
|
||||||
|
bytearray.readInt());
|
||||||
|
Assert.expectEq("ByteArray readInt_1 #3" + endian,
|
||||||
|
8+offset,
|
||||||
|
bytearray.position);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mixed endianness: write with one, read with the other
|
||||||
|
function readInt_tests2(offset)
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray=makeByteArray(offset);
|
||||||
|
bytearray.endian = "bigEndian";
|
||||||
|
bytearray.position=offset;
|
||||||
|
bytearray.writeInt(int(0x12345678));
|
||||||
|
bytearray.writeInt(int(0xFEDCBA98));
|
||||||
|
callCompress(bytearray,"int mixed endianness");
|
||||||
|
bytearray.position=offset;
|
||||||
|
bytearray.endian = "littleEndian";
|
||||||
|
Assert.expectEq("ByteArray readInt_2 #1",
|
||||||
|
int(0x78563412),
|
||||||
|
bytearray.readInt());
|
||||||
|
Assert.expectEq("ByteArray readInt_2 #2",
|
||||||
|
int(0x98BADCFE),
|
||||||
|
bytearray.readInt());
|
||||||
|
Assert.expectEq("ByteArray readInt_2 #3",
|
||||||
|
8+offset,
|
||||||
|
bytearray.position);
|
||||||
|
}
|
||||||
|
for ( var offs=0 ; offs < 4 ; offs++ ) {
|
||||||
|
readInt_tests1("bigEndian", offs);
|
||||||
|
readInt_tests1("littleEndian", offs);
|
||||||
|
readInt_tests2(offs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
testIntWithLzma();
|
||||||
|
|
||||||
|
function testFloatWithLzma()
|
||||||
|
{
|
||||||
|
// One endianness or the other
|
||||||
|
function readFloat_tests1(endian, offset)
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray=makeByteArray(offset);
|
||||||
|
bytearray.endian = endian;
|
||||||
|
bytearray.position=offset;
|
||||||
|
bytearray.writeFloat(1.25);
|
||||||
|
bytearray.writeFloat(12345.5);
|
||||||
|
callCompress(bytearray,"float");
|
||||||
|
Assert.expectEq("ByteArray writeFloat_1 #1 " + endian,
|
||||||
|
8+offset,
|
||||||
|
bytearray.position);
|
||||||
|
bytearray.position=offset;
|
||||||
|
Assert.expectEq("ByteArray readFloat_1 #1 " + endian,
|
||||||
|
1.25,
|
||||||
|
bytearray.readFloat());
|
||||||
|
Assert.expectEq("ByteArray readFloat_1 #2 " + endian,
|
||||||
|
12345.5,
|
||||||
|
bytearray.readFloat());
|
||||||
|
Assert.expectEq("ByteArray readFloat_1 #3" + endian,
|
||||||
|
8+offset,
|
||||||
|
bytearray.position);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mixed endianness: write with one, read with the other.
|
||||||
|
function readFloat_tests2(offset)
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray=makeByteArray(offset);
|
||||||
|
var temp:ByteArray=new ByteArray();
|
||||||
|
|
||||||
|
bytearray.endian = "bigEndian";
|
||||||
|
bytearray.position=offset;
|
||||||
|
|
||||||
|
bytearray.writeFloat(1.25); // write big
|
||||||
|
bytearray.writeFloat(12345.5); // endian
|
||||||
|
callCompress(bytearray,"float mixed endianness");
|
||||||
|
bytearray.endian = "littleEndian";
|
||||||
|
bytearray.position=offset;
|
||||||
|
|
||||||
|
temp.endian = "littleEndian";
|
||||||
|
|
||||||
|
temp.writeFloat(bytearray.readFloat()); // read little endian
|
||||||
|
temp.writeFloat(bytearray.readFloat()); // and write little endian
|
||||||
|
|
||||||
|
temp.position = 0;
|
||||||
|
temp.endian = "bigEndian";
|
||||||
|
Assert.expectEq("ByteArray readFloat_2 #1",
|
||||||
|
1.25,
|
||||||
|
temp.readFloat()); // read big endian
|
||||||
|
Assert.expectEq("ByteArray readFloat_2 #2",
|
||||||
|
12345.5,
|
||||||
|
temp.readFloat());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for ( var offs=0 ; offs < 4 ; offs++ ) {
|
||||||
|
readFloat_tests1("bigEndian", offs);
|
||||||
|
readFloat_tests1("littleEndian", offs);
|
||||||
|
readFloat_tests2(offs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
testFloatWithLzma();
|
||||||
|
|
||||||
|
function testDoubleWithLzma()
|
||||||
|
{
|
||||||
|
// One endianness or the other
|
||||||
|
function readDouble_tests1(endian, offset)
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray=makeByteArray(offset);
|
||||||
|
bytearray.endian = endian;
|
||||||
|
bytearray.position=offset;
|
||||||
|
bytearray.writeDouble(1.25);
|
||||||
|
bytearray.writeDouble(12345.5);
|
||||||
|
callCompress(bytearray,"double");
|
||||||
|
Assert.expectEq("ByteArray writeDouble_1 #1 " + endian,
|
||||||
|
16+offset,
|
||||||
|
bytearray.position);
|
||||||
|
bytearray.position=offset;
|
||||||
|
Assert.expectEq("ByteArray readDouble_1 #1 " + endian,
|
||||||
|
1.25,
|
||||||
|
bytearray.readDouble());
|
||||||
|
Assert.expectEq("ByteArray readDouble_1 #2 " + endian,
|
||||||
|
12345.5,
|
||||||
|
bytearray.readDouble());
|
||||||
|
Assert.expectEq("ByteArray readDouble_1 #3" + endian,
|
||||||
|
16+offset,
|
||||||
|
bytearray.position);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mixed endianness: write with one, read with the other.
|
||||||
|
function readDouble_tests2(offset)
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray=makeByteArray(offset);
|
||||||
|
var temp:ByteArray=new ByteArray;
|
||||||
|
|
||||||
|
bytearray.endian = "bigEndian";
|
||||||
|
bytearray.position=offset;
|
||||||
|
|
||||||
|
bytearray.writeDouble(1.25); // write big
|
||||||
|
bytearray.writeDouble(12345.5); // endian
|
||||||
|
callCompress(bytearray,"double mixed endianness");
|
||||||
|
bytearray.endian = "littleEndian";
|
||||||
|
bytearray.position=offset;
|
||||||
|
|
||||||
|
temp.endian = "littleEndian";
|
||||||
|
|
||||||
|
temp.writeDouble(bytearray.readDouble()); // read little endian
|
||||||
|
temp.writeDouble(bytearray.readDouble()); // and write little endian
|
||||||
|
|
||||||
|
temp.position = 0;
|
||||||
|
temp.endian = "bigEndian";
|
||||||
|
Assert.expectEq("ByteArray readDouble_2 #1",
|
||||||
|
1.25,
|
||||||
|
temp.readDouble()); // read big endian
|
||||||
|
Assert.expectEq("ByteArray readDouble_2 #2",
|
||||||
|
12345.5,
|
||||||
|
temp.readDouble());
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( var offs=0 ; offs < 4 ; offs++ ) {
|
||||||
|
readDouble_tests1("bigEndian", offs);
|
||||||
|
readDouble_tests1("littleEndian", offs);
|
||||||
|
readDouble_tests2(offs);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
testDoubleWithLzma();
|
||||||
|
|
||||||
|
function testByteWithLzma()
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray = makeByteArray();
|
||||||
|
bytearray.position=0;
|
||||||
|
bytearray.writeByte(-257);
|
||||||
|
bytearray.writeByte(37);
|
||||||
|
callCompress(bytearray,"byte");
|
||||||
|
Assert.expectEq("testByte: ByteArray position",
|
||||||
|
2,
|
||||||
|
bytearray.position);
|
||||||
|
Assert.expectEq("testByte: ByteArray length",
|
||||||
|
2,
|
||||||
|
bytearray.length);
|
||||||
|
bytearray.position=0;
|
||||||
|
Assert.expectEq( "ByteArray readByte",
|
||||||
|
-1,
|
||||||
|
bytearray.readByte());
|
||||||
|
Assert.expectEq( "ByteArray readByte",
|
||||||
|
37,
|
||||||
|
bytearray.readByte());
|
||||||
|
|
||||||
|
var v;
|
||||||
|
expectEOF("ByteArray readByte EOF",
|
||||||
|
(function () {
|
||||||
|
bytearray.position = bytearray.length;
|
||||||
|
v = bytearray.readByte();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
testByteWithLzma();
|
||||||
|
|
||||||
|
function testUtfWithLzma()
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray = makeByteArray();
|
||||||
|
bytearray.position=0;
|
||||||
|
bytearray.writeUTF("string");
|
||||||
|
callCompress(bytearray,"UTF");
|
||||||
|
Assert.expectEq(
|
||||||
|
"ByteArray position of utf string",
|
||||||
|
8,
|
||||||
|
bytearray.position);
|
||||||
|
bytearray.position=0;
|
||||||
|
Assert.expectEq(
|
||||||
|
"ByteArray length of utf string",
|
||||||
|
8,
|
||||||
|
bytearray.length);
|
||||||
|
Assert.expectEq(
|
||||||
|
"ByteArray readUTF",
|
||||||
|
"string",
|
||||||
|
bytearray.readUTF());
|
||||||
|
|
||||||
|
// Also see the readUTFBytes case below.
|
||||||
|
//
|
||||||
|
// This is arguably a bug but it's how it currently behaves (Bugzilla 687341).
|
||||||
|
// readUTF will return a string consisting of the characters up to and not including
|
||||||
|
// the NUL, but the position will be updated as if the entire string were consumed.
|
||||||
|
bytearray.length = 0;
|
||||||
|
bytearray.position = 0;
|
||||||
|
bytearray.endian = "bigEndian";
|
||||||
|
bytearray.writeByte(0);
|
||||||
|
bytearray.writeByte(4);
|
||||||
|
bytearray.writeByte(108);
|
||||||
|
bytearray.writeByte(97);
|
||||||
|
bytearray.writeByte(0);
|
||||||
|
bytearray.writeByte(115);
|
||||||
|
callCompress(bytearray,"bytes");
|
||||||
|
bytearray.position = 0;
|
||||||
|
Assert.expectEq("ByteArray readUTF on contents containing NUL: contents",
|
||||||
|
"la",
|
||||||
|
bytearray.readUTF());
|
||||||
|
Assert.expectEq("ByteArray readUTF on contents containing NUL: position",
|
||||||
|
6,
|
||||||
|
bytearray.position);
|
||||||
|
|
||||||
|
// Test EOF in data area
|
||||||
|
expectEOF("ReadUTF EOF in content",
|
||||||
|
(function () {
|
||||||
|
bytearray.length = 0;
|
||||||
|
bytearray.endian = "bigEndian";
|
||||||
|
bytearray.writeUTF("super");
|
||||||
|
bytearray[1] = 6; // One too much
|
||||||
|
bytearray.position = 0;
|
||||||
|
bytearray.readUTF();
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Test EOF in length area
|
||||||
|
expectEOF("ReadUTF EOF in length, #1",
|
||||||
|
(function () {
|
||||||
|
bytearray.length = 0;
|
||||||
|
bytearray.readUTF();
|
||||||
|
}));
|
||||||
|
|
||||||
|
expectEOF("ReadUTF EOF in length, #2",
|
||||||
|
(function () {
|
||||||
|
bytearray.length = 0;
|
||||||
|
bytearray.writeByte(0);
|
||||||
|
bytearray.position = 0;
|
||||||
|
bytearray.readUTF();
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Doc sez: A RangeError will be thrown for writeUTF if the string length exceeds 65535.
|
||||||
|
expectRangeError("RangeError in writeUTF",
|
||||||
|
(function () {
|
||||||
|
var s = "86868686";
|
||||||
|
while (s.length <= 65535)
|
||||||
|
s = s + s;
|
||||||
|
bytearray.writeUTF(s);
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Skip UTF-8 BOM.
|
||||||
|
// This seems fairly ill-defined and ad-hoc since the BOM is skipped but is accounted for in the byte count,
|
||||||
|
// but it's what we do, so test that we continue to do it...
|
||||||
|
bytearray.length = 0;
|
||||||
|
bytearray.position = 0;
|
||||||
|
bytearray.endian = "bigEndian";
|
||||||
|
bytearray.writeByte(0);
|
||||||
|
bytearray.writeByte(6);
|
||||||
|
bytearray.writeByte(0xEF);
|
||||||
|
bytearray.writeByte(0xBB);
|
||||||
|
bytearray.writeByte(0xBF);
|
||||||
|
bytearray.writeUTFBytes("string");
|
||||||
|
callCompress(bytearray,"skip UTF-8 BOM");
|
||||||
|
bytearray.position = 0;
|
||||||
|
Assert.expectEq("ByteArray readUTF skips UTF8 BOM after length bytes but includes it in the length",
|
||||||
|
"str",
|
||||||
|
bytearray.readUTF());
|
||||||
|
|
||||||
|
// TODO: test invalid UTF - we should still get data, in a predictable way (invalid input turns into individual bytes)
|
||||||
|
}
|
||||||
|
|
||||||
|
testUtfWithLzma();
|
||||||
|
|
||||||
|
function testUtfBytesWithLzma()
|
||||||
|
{
|
||||||
|
var bytearray:ByteArray = makeByteArray();
|
||||||
|
bytearray.position=0;
|
||||||
|
bytearray.writeUTFBytes("string");
|
||||||
|
callCompress(bytearray,"UTF bytes");
|
||||||
|
bytearray.position=0;
|
||||||
|
Assert.expectEq(
|
||||||
|
"ByteArray length of utf bytes string",
|
||||||
|
6,
|
||||||
|
bytearray.length);
|
||||||
|
Assert.expectEq(
|
||||||
|
"ByteArray readUTFBytes",
|
||||||
|
"string",
|
||||||
|
bytearray.readUTFBytes(6));
|
||||||
|
|
||||||
|
// Also see the readUTF case above.
|
||||||
|
//
|
||||||
|
// This is arguably a bug but it's how it currently behaves (Bugzilla 687341).
|
||||||
|
// readUTF will return a string consisting of the characters up to and not including
|
||||||
|
// the NUL, but the position will be updated as if the entire string were consumed.
|
||||||
|
bytearray.length = 0;
|
||||||
|
bytearray.position = 0;
|
||||||
|
bytearray.endian = "bigEndian";
|
||||||
|
bytearray.writeByte(108);
|
||||||
|
bytearray.writeByte(97);
|
||||||
|
bytearray.writeByte(0);
|
||||||
|
bytearray.writeByte(115);
|
||||||
|
callCompress(bytearray,"bytes contains NULL");
|
||||||
|
bytearray.position = 0;
|
||||||
|
Assert.expectEq("ByteArray readUTFBytes on contents containing NUL: contents",
|
||||||
|
"la",
|
||||||
|
bytearray.readUTFBytes(4));
|
||||||
|
Assert.expectEq("ByteArray readUTFBytes on contents containing NUL: position",
|
||||||
|
4,
|
||||||
|
bytearray.position);
|
||||||
|
|
||||||
|
// Test EOF in data area
|
||||||
|
expectEOF("ReadUTFBytes EOF in content",
|
||||||
|
(function () {
|
||||||
|
bytearray.length = 0;
|
||||||
|
bytearray.endian = "bigEndian";
|
||||||
|
bytearray.writeUTF("super");
|
||||||
|
bytearray.position = 2;
|
||||||
|
bytearray.readUTFBytes(6); // one too much
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Skip UTF-8 BOM.
|
||||||
|
// This seems fairly ill-defined and ad-hoc since the BOM is skipped but is accounted for in the byte count,
|
||||||
|
// but it's what we do, so test that we continue to do it...
|
||||||
|
bytearray.length = 0;
|
||||||
|
bytearray.position = 0;
|
||||||
|
bytearray.endian = "bigEndian";
|
||||||
|
bytearray.writeByte(0xEF);
|
||||||
|
bytearray.writeByte(0xBB);
|
||||||
|
bytearray.writeByte(0xBF);
|
||||||
|
bytearray.writeUTFBytes("string");
|
||||||
|
callCompress(bytearray,"bytes contain high value bytes");
|
||||||
|
bytearray.position = 0;
|
||||||
|
Assert.expectEq("ByteArray readUTFBytes skips UTF8 BOM but includes it in the length",
|
||||||
|
"str",
|
||||||
|
bytearray.readUTFBytes(6));
|
||||||
|
|
||||||
|
// TODO: test invalid UTF - we should still get data, in a predictable way (invalid input turns into individual bytes)
|
||||||
|
}
|
||||||
|
|
||||||
|
testUtfBytesWithLzma();
|
||||||
|
|
||||||
|
|
||||||
|
function testBracketSyntaxWithLzma() {
|
||||||
|
var bytearray:ByteArray = makeByteArray();
|
||||||
|
bytearray.position=0;
|
||||||
|
bytearray.writeByte(10);
|
||||||
|
bytearray.writeByte(11);
|
||||||
|
bytearray.writeByte(12);
|
||||||
|
callCompress(bytearray,"bracket syntax");
|
||||||
|
bytearray.position = 0;
|
||||||
|
|
||||||
|
Assert.expectEq(
|
||||||
|
"ByteArray get [] syntax",
|
||||||
|
12,
|
||||||
|
bytearray[2]);
|
||||||
|
|
||||||
|
bytearray[2]=13;
|
||||||
|
Assert.expectEq(
|
||||||
|
"ByteArray set [] syntax",
|
||||||
|
13,
|
||||||
|
bytearray[2]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
testBracketSyntaxWithLzma();
|
||||||
|
|
||||||
|
|
||||||
|
function testBOMWithLzma() {
|
||||||
|
// compress/uncompress with BOM
|
||||||
|
var bytearray_compress:ByteArray = new ByteArray();
|
||||||
|
bytearray_compress[0]=0xef;
|
||||||
|
bytearray_compress[1]=0xbb;
|
||||||
|
bytearray_compress[2]=0xbf;
|
||||||
|
bytearray_compress[3]=100;
|
||||||
|
bytearray_compress[4]=97;
|
||||||
|
bytearray_compress[5]=110;
|
||||||
|
bytearray_compress[6]=33;
|
||||||
|
// original length = 7
|
||||||
|
var origlength=bytearray_compress.length;
|
||||||
|
bytearray_compress.compress("lzma");
|
||||||
|
// test the compressed bytearray values are all different from the original
|
||||||
|
var compressstate=(bytearray_compress[0]==0xef ||
|
||||||
|
bytearray_compress[1]==0xbb ||
|
||||||
|
bytearray_compress[2]==0xbf ||
|
||||||
|
bytearray_compress[3]==100 ||
|
||||||
|
bytearray_compress[4]==97);
|
||||||
|
// check the compressed length = 15 (small strings compress larger in zlib)
|
||||||
|
var compresslength=bytearray_compress.length;
|
||||||
|
bytearray_compress.uncompress("lzma");
|
||||||
|
// check the uncompress/compress length should equal original length 7
|
||||||
|
var restoredlength=bytearray_compress.length;
|
||||||
|
var restorestate=(bytearray_compress[0]==0xef &&
|
||||||
|
bytearray_compress[1]==0xbb &&
|
||||||
|
bytearray_compress[2]==0xbf &&
|
||||||
|
bytearray_compress[3]==100 &&
|
||||||
|
bytearray_compress[4]==97 &&
|
||||||
|
bytearray_compress[5]==110 &&
|
||||||
|
bytearray_compress[6]==33
|
||||||
|
);
|
||||||
|
Assert.expectEq("ByteArray.compress bytearray length is different",
|
||||||
|
origlength==compresslength,false);
|
||||||
|
Assert.expectEq("ByteArray.compress bytearray contents differ",
|
||||||
|
compressstate,false);
|
||||||
|
Assert.expectEq("ByteArray.uncompress bytearray length matches before compress",
|
||||||
|
origlength,restoredlength);
|
||||||
|
Assert.expectEq("ByteArray.uncompress uncompressing compressed string matches original",
|
||||||
|
restorestate,true);
|
||||||
|
}
|
||||||
|
|
||||||
|
testBOMWithLzma();
|
||||||
|
|
||||||
|
// lzma-compressed data format:
|
||||||
|
// 5 bytes: LZMA properties
|
||||||
|
// 8 bytes: uncompressed size k (little-endian)
|
||||||
|
// k bytes: payload (the compressed data)
|
||||||
|
|
||||||
|
function testIllFormedLzmaLowSize():void {
|
||||||
|
var b1:ByteArray = new ByteArray();
|
||||||
|
b1.writeUTF("string");
|
||||||
|
b1.compress(CompressionAlgorithm.LZMA);
|
||||||
|
|
||||||
|
var b2:ByteArray = new ByteArray();
|
||||||
|
|
||||||
|
// muck with low 32 bits of size
|
||||||
|
for (var i:uint=0; i < 4; i++) {
|
||||||
|
b2.clear();
|
||||||
|
b1.position = 0;
|
||||||
|
b1.readBytes(b2);
|
||||||
|
|
||||||
|
b2[5 + i] += 1;
|
||||||
|
|
||||||
|
var result;
|
||||||
|
try {
|
||||||
|
b2.uncompress(CompressionAlgorithm.LZMA);
|
||||||
|
result = "unexpected"
|
||||||
|
} catch (e:IOError) {
|
||||||
|
result = "ioerror on wrong size"
|
||||||
|
}
|
||||||
|
|
||||||
|
Assert.expectEq("ByteArray.uncompress ill-formed LZMA size "+i+" byte",
|
||||||
|
"ioerror on wrong size",result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// comment out test due to bug: https://bugzilla.mozilla.org/show_bug.cgi?id=778727
|
||||||
|
//testIllFormedLzmaLowSize();
|
||||||
|
|
||||||
|
function testIllFormedLzmaHighSize():void {
|
||||||
|
var b1:ByteArray = new ByteArray();
|
||||||
|
b1.writeUTF("string");
|
||||||
|
b1.compress(CompressionAlgorithm.LZMA);
|
||||||
|
|
||||||
|
var b2:ByteArray = new ByteArray();
|
||||||
|
|
||||||
|
|
||||||
|
// muck with high 32 bits of size
|
||||||
|
for (var i:uint=4; i < 8; i++) {
|
||||||
|
b2.clear();
|
||||||
|
b1.position = 0;
|
||||||
|
b1.readBytes(b2);
|
||||||
|
|
||||||
|
b2[5 + i] += 1;
|
||||||
|
|
||||||
|
var result;
|
||||||
|
try {
|
||||||
|
b2.uncompress(CompressionAlgorithm.LZMA);
|
||||||
|
result = "unexpected"
|
||||||
|
} catch (e:MemoryError) {
|
||||||
|
result = "memoryerror on huge size"
|
||||||
|
}
|
||||||
|
|
||||||
|
Assert.expectEq("ByteArray.uncompress ill-formed LZMA size "+i+" byte",
|
||||||
|
"memoryerror on huge size",result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// comment out test due to bug: https://bugzilla.mozilla.org/show_bug.cgi?id=778727
|
||||||
|
// testIllFormedLzmaHighSize();
|
||||||
|
|
||||||
|
// (Below is not necessarily working; in particular Felix would have expected
|
||||||
|
// it to hit the IllFormedLzma cases above, but for some reason it is not.)
|
||||||
|
function testFuzzedLzma():void {
|
||||||
|
var b1:ByteArray = new ByteArray();
|
||||||
|
b1.writeUTF("string");
|
||||||
|
b1.compress(CompressionAlgorithm.LZMA);
|
||||||
|
|
||||||
|
var b2:ByteArray = new ByteArray();
|
||||||
|
|
||||||
|
var errors:String="";
|
||||||
|
for (var i:uint=0; i < b1.length * 8; i++) {
|
||||||
|
b2.clear();
|
||||||
|
b1.position = 0;
|
||||||
|
// print("b1.length A: "+b1.length);
|
||||||
|
b1.readBytes(b2);
|
||||||
|
// print("b1.length B: "+b1.length);
|
||||||
|
|
||||||
|
var byteOffset:uint = i / 8;
|
||||||
|
var bitOffset:uint = i % 8;
|
||||||
|
|
||||||
|
var oldByte:uint = b2[byteOffset];
|
||||||
|
var oldBit:uint = (oldByte >> bitOffset) & 0x1;
|
||||||
|
var newByte:uint = (oldByte ^ (oldBit << bitOffset)) & 0xFF;
|
||||||
|
b2[byteOffset] = newByte;
|
||||||
|
|
||||||
|
// print('b1 ['+Array.prototype.join.call(b1, ',')+']');
|
||||||
|
// print('b2 ['+Array.prototype.join.call(b2, ',')+']');
|
||||||
|
|
||||||
|
var result;
|
||||||
|
// This test is largely fishing for segfaults (and striving for code coverage)
|
||||||
|
try {
|
||||||
|
b2.uncompress(CompressionAlgorithm.LZMA);
|
||||||
|
|
||||||
|
// If we get here, then the LZMA algorithm completed and
|
||||||
|
// we have no idea what the resulting byte array contains.
|
||||||
|
result = "expected" // no exn
|
||||||
|
} catch (e:MemoryError) {
|
||||||
|
result = "expected"
|
||||||
|
} catch (e:IOError) {
|
||||||
|
// should also verify that original data was restored
|
||||||
|
result = "expected"
|
||||||
|
}
|
||||||
|
if (result!="expected") {
|
||||||
|
errors+=" error fuzzing bit "+i+" ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Assert.expectEq("ByteArray.uncompress fuzzed LZMA input check for errors",
|
||||||
|
"",errors);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Commenting out test because it is not behaving the way Felix would
|
||||||
|
// expect and he does not want to take the time now to debug it.
|
||||||
|
|
||||||
|
// comment out test due to bug: https://bugzilla.mozilla.org/show_bug.cgi?id=778727
|
||||||
|
// testFuzzedLzma();
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
<flex-config>
|
||||||
|
<compiler>
|
||||||
|
<source-path>
|
||||||
|
<path-element>.</path-element>
|
||||||
|
<path-element>../../../lib</path-element>
|
||||||
|
</source-path>
|
||||||
|
<debug>false</debug>
|
||||||
|
<omit-trace-statements>false</omit-trace-statements>
|
||||||
|
<show-actionscript-warnings>false</show-actionscript-warnings>
|
||||||
|
<strict>false</strict>
|
||||||
|
</compiler>
|
||||||
|
<output>test.swf</output>
|
||||||
|
</flex-config>
|
|
@ -0,0 +1,397 @@
|
||||||
|
empty bytearray: expecting no exception PASSED!
|
||||||
|
empty bytearray: expecting length no change PASSED!
|
||||||
|
zero length bytearray: expecting no exception PASSED!
|
||||||
|
zero length bytearray: expecting length no change PASSED!
|
||||||
|
expecting thrown exception PASSED!
|
||||||
|
expecting thrown exception compressWithZlibUncompressLzma PASSED!
|
||||||
|
expecting thrown exception uncompressWithZlibUncompressLzma PASSED!
|
||||||
|
uncompressWithoutCompressionLzma bytearray length matches before uncompress PASSED!
|
||||||
|
ByteArray position after writing Booleans PASSED!
|
||||||
|
boolean bytearray: expecting no exception PASSED!
|
||||||
|
boolean bytearray: expecting length no change PASSED!
|
||||||
|
ByteArray move position to 0 PASSED!
|
||||||
|
ByteArray write/read boolean true PASSED!
|
||||||
|
ByteArray write/read boolean false PASSED!
|
||||||
|
bytearray of short: expecting no exception PASSED!
|
||||||
|
bytearray of short: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3bigEndian PASSED!
|
||||||
|
bytearray of short: expecting no exception PASSED!
|
||||||
|
bytearray of short: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3littleEndian PASSED!
|
||||||
|
bytearray of short mixed endianness: expecting no exception PASSED!
|
||||||
|
bytearray of short mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_2 #1 PASSED!
|
||||||
|
ByteArray readShort_2 #2 PASSED!
|
||||||
|
ByteArray readShort_2 #3 PASSED!
|
||||||
|
bytearray of shorts with EOFs at various offsets: expecting no exception PASSED!
|
||||||
|
bytearray of shorts with EOFs at various offsets: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_3 #1 0 1 PASSED!
|
||||||
|
ByteArray readShort_3 #1 0 2 PASSED!
|
||||||
|
bytearray of short: expecting no exception PASSED!
|
||||||
|
bytearray of short: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3bigEndian PASSED!
|
||||||
|
bytearray of short: expecting no exception PASSED!
|
||||||
|
bytearray of short: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3littleEndian PASSED!
|
||||||
|
bytearray of short mixed endianness: expecting no exception PASSED!
|
||||||
|
bytearray of short mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_2 #1 PASSED!
|
||||||
|
ByteArray readShort_2 #2 PASSED!
|
||||||
|
ByteArray readShort_2 #3 PASSED!
|
||||||
|
bytearray of shorts with EOFs at various offsets: expecting no exception PASSED!
|
||||||
|
bytearray of shorts with EOFs at various offsets: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_3 #1 1 1 PASSED!
|
||||||
|
ByteArray readShort_3 #1 1 2 PASSED!
|
||||||
|
bytearray of short: expecting no exception PASSED!
|
||||||
|
bytearray of short: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3bigEndian PASSED!
|
||||||
|
bytearray of short: expecting no exception PASSED!
|
||||||
|
bytearray of short: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3littleEndian PASSED!
|
||||||
|
bytearray of short mixed endianness: expecting no exception PASSED!
|
||||||
|
bytearray of short mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_2 #1 PASSED!
|
||||||
|
ByteArray readShort_2 #2 PASSED!
|
||||||
|
ByteArray readShort_2 #3 PASSED!
|
||||||
|
bytearray of shorts with EOFs at various offsets: expecting no exception PASSED!
|
||||||
|
bytearray of shorts with EOFs at various offsets: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_3 #1 2 1 PASSED!
|
||||||
|
ByteArray readShort_3 #1 2 2 PASSED!
|
||||||
|
bytearray of short: expecting no exception PASSED!
|
||||||
|
bytearray of short: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3bigEndian PASSED!
|
||||||
|
bytearray of short: expecting no exception PASSED!
|
||||||
|
bytearray of short: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readShort_1 #3littleEndian PASSED!
|
||||||
|
bytearray of short mixed endianness: expecting no exception PASSED!
|
||||||
|
bytearray of short mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_2 #1 PASSED!
|
||||||
|
ByteArray readShort_2 #2 PASSED!
|
||||||
|
ByteArray readShort_2 #3 PASSED!
|
||||||
|
bytearray of shorts with EOFs at various offsets: expecting no exception PASSED!
|
||||||
|
bytearray of shorts with EOFs at various offsets: expecting length no change PASSED!
|
||||||
|
ByteArray readShort_3 #1 3 1 PASSED!
|
||||||
|
ByteArray readShort_3 #1 3 2 PASSED!
|
||||||
|
unsigned short: expecting no exception PASSED!
|
||||||
|
unsigned short: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3bigEndian PASSED!
|
||||||
|
unsigned short: expecting no exception PASSED!
|
||||||
|
unsigned short: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3littleEndian PASSED!
|
||||||
|
unsigned short mixed endianness: expecting no exception PASSED!
|
||||||
|
unsigned short mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_2 #1 PASSED!
|
||||||
|
ByteArray readUShort_2 #2 PASSED!
|
||||||
|
ByteArray readUShort_2 #3 PASSED!
|
||||||
|
unsigned short eof at various offsets: expecting no exception PASSED!
|
||||||
|
unsigned short eof at various offsets: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_3 #1 0 1 PASSED!
|
||||||
|
ByteArray readUShort_3 #1 0 2 PASSED!
|
||||||
|
unsigned short: expecting no exception PASSED!
|
||||||
|
unsigned short: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3bigEndian PASSED!
|
||||||
|
unsigned short: expecting no exception PASSED!
|
||||||
|
unsigned short: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3littleEndian PASSED!
|
||||||
|
unsigned short mixed endianness: expecting no exception PASSED!
|
||||||
|
unsigned short mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_2 #1 PASSED!
|
||||||
|
ByteArray readUShort_2 #2 PASSED!
|
||||||
|
ByteArray readUShort_2 #3 PASSED!
|
||||||
|
unsigned short eof at various offsets: expecting no exception PASSED!
|
||||||
|
unsigned short eof at various offsets: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_3 #1 1 1 PASSED!
|
||||||
|
ByteArray readUShort_3 #1 1 2 PASSED!
|
||||||
|
unsigned short: expecting no exception PASSED!
|
||||||
|
unsigned short: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3bigEndian PASSED!
|
||||||
|
unsigned short: expecting no exception PASSED!
|
||||||
|
unsigned short: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3littleEndian PASSED!
|
||||||
|
unsigned short mixed endianness: expecting no exception PASSED!
|
||||||
|
unsigned short mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_2 #1 PASSED!
|
||||||
|
ByteArray readUShort_2 #2 PASSED!
|
||||||
|
ByteArray readUShort_2 #3 PASSED!
|
||||||
|
unsigned short eof at various offsets: expecting no exception PASSED!
|
||||||
|
unsigned short eof at various offsets: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_3 #1 2 1 PASSED!
|
||||||
|
ByteArray readUShort_3 #1 2 2 PASSED!
|
||||||
|
unsigned short: expecting no exception PASSED!
|
||||||
|
unsigned short: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3bigEndian PASSED!
|
||||||
|
unsigned short: expecting no exception PASSED!
|
||||||
|
unsigned short: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readUShort_1 #3littleEndian PASSED!
|
||||||
|
unsigned short mixed endianness: expecting no exception PASSED!
|
||||||
|
unsigned short mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_2 #1 PASSED!
|
||||||
|
ByteArray readUShort_2 #2 PASSED!
|
||||||
|
ByteArray readUShort_2 #3 PASSED!
|
||||||
|
unsigned short eof at various offsets: expecting no exception PASSED!
|
||||||
|
unsigned short eof at various offsets: expecting length no change PASSED!
|
||||||
|
ByteArray readUShort_3 #1 3 1 PASSED!
|
||||||
|
ByteArray readUShort_3 #1 3 2 PASSED!
|
||||||
|
int endianness: expecting no exception PASSED!
|
||||||
|
int endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readInt_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3bigEndian PASSED!
|
||||||
|
int endianness: expecting no exception PASSED!
|
||||||
|
int endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readInt_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3littleEndian PASSED!
|
||||||
|
int mixed endianness: expecting no exception PASSED!
|
||||||
|
int mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readInt_2 #1 PASSED!
|
||||||
|
ByteArray readInt_2 #2 PASSED!
|
||||||
|
ByteArray readInt_2 #3 PASSED!
|
||||||
|
int endianness: expecting no exception PASSED!
|
||||||
|
int endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readInt_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3bigEndian PASSED!
|
||||||
|
int endianness: expecting no exception PASSED!
|
||||||
|
int endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readInt_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3littleEndian PASSED!
|
||||||
|
int mixed endianness: expecting no exception PASSED!
|
||||||
|
int mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readInt_2 #1 PASSED!
|
||||||
|
ByteArray readInt_2 #2 PASSED!
|
||||||
|
ByteArray readInt_2 #3 PASSED!
|
||||||
|
int endianness: expecting no exception PASSED!
|
||||||
|
int endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readInt_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3bigEndian PASSED!
|
||||||
|
int endianness: expecting no exception PASSED!
|
||||||
|
int endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readInt_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3littleEndian PASSED!
|
||||||
|
int mixed endianness: expecting no exception PASSED!
|
||||||
|
int mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readInt_2 #1 PASSED!
|
||||||
|
ByteArray readInt_2 #2 PASSED!
|
||||||
|
ByteArray readInt_2 #3 PASSED!
|
||||||
|
int endianness: expecting no exception PASSED!
|
||||||
|
int endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readInt_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3bigEndian PASSED!
|
||||||
|
int endianness: expecting no exception PASSED!
|
||||||
|
int endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readInt_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readInt_1 #3littleEndian PASSED!
|
||||||
|
int mixed endianness: expecting no exception PASSED!
|
||||||
|
int mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readInt_2 #1 PASSED!
|
||||||
|
ByteArray readInt_2 #2 PASSED!
|
||||||
|
ByteArray readInt_2 #3 PASSED!
|
||||||
|
float: expecting no exception PASSED!
|
||||||
|
float: expecting length no change PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3bigEndian PASSED!
|
||||||
|
float: expecting no exception PASSED!
|
||||||
|
float: expecting length no change PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3littleEndian PASSED!
|
||||||
|
float mixed endianness: expecting no exception PASSED!
|
||||||
|
float mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readFloat_2 #1 PASSED!
|
||||||
|
ByteArray readFloat_2 #2 PASSED!
|
||||||
|
float: expecting no exception PASSED!
|
||||||
|
float: expecting length no change PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3bigEndian PASSED!
|
||||||
|
float: expecting no exception PASSED!
|
||||||
|
float: expecting length no change PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3littleEndian PASSED!
|
||||||
|
float mixed endianness: expecting no exception PASSED!
|
||||||
|
float mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readFloat_2 #1 PASSED!
|
||||||
|
ByteArray readFloat_2 #2 PASSED!
|
||||||
|
float: expecting no exception PASSED!
|
||||||
|
float: expecting length no change PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3bigEndian PASSED!
|
||||||
|
float: expecting no exception PASSED!
|
||||||
|
float: expecting length no change PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3littleEndian PASSED!
|
||||||
|
float mixed endianness: expecting no exception PASSED!
|
||||||
|
float mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readFloat_2 #1 PASSED!
|
||||||
|
ByteArray readFloat_2 #2 PASSED!
|
||||||
|
float: expecting no exception PASSED!
|
||||||
|
float: expecting length no change PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3bigEndian PASSED!
|
||||||
|
float: expecting no exception PASSED!
|
||||||
|
float: expecting length no change PASSED!
|
||||||
|
ByteArray writeFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readFloat_1 #3littleEndian PASSED!
|
||||||
|
float mixed endianness: expecting no exception PASSED!
|
||||||
|
float mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readFloat_2 #1 PASSED!
|
||||||
|
ByteArray readFloat_2 #2 PASSED!
|
||||||
|
double: expecting no exception PASSED!
|
||||||
|
double: expecting length no change PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3bigEndian PASSED!
|
||||||
|
double: expecting no exception PASSED!
|
||||||
|
double: expecting length no change PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3littleEndian PASSED!
|
||||||
|
double mixed endianness: expecting no exception PASSED!
|
||||||
|
double mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readDouble_2 #1 PASSED!
|
||||||
|
ByteArray readDouble_2 #2 PASSED!
|
||||||
|
double: expecting no exception PASSED!
|
||||||
|
double: expecting length no change PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3bigEndian PASSED!
|
||||||
|
double: expecting no exception PASSED!
|
||||||
|
double: expecting length no change PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3littleEndian PASSED!
|
||||||
|
double mixed endianness: expecting no exception PASSED!
|
||||||
|
double mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readDouble_2 #1 PASSED!
|
||||||
|
ByteArray readDouble_2 #2 PASSED!
|
||||||
|
double: expecting no exception PASSED!
|
||||||
|
double: expecting length no change PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3bigEndian PASSED!
|
||||||
|
double: expecting no exception PASSED!
|
||||||
|
double: expecting length no change PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3littleEndian PASSED!
|
||||||
|
double mixed endianness: expecting no exception PASSED!
|
||||||
|
double mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readDouble_2 #1 PASSED!
|
||||||
|
ByteArray readDouble_2 #2 PASSED!
|
||||||
|
double: expecting no exception PASSED!
|
||||||
|
double: expecting length no change PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 bigEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3bigEndian PASSED!
|
||||||
|
double: expecting no exception PASSED!
|
||||||
|
double: expecting length no change PASSED!
|
||||||
|
ByteArray writeDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #1 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #2 littleEndian PASSED!
|
||||||
|
ByteArray readDouble_1 #3littleEndian PASSED!
|
||||||
|
double mixed endianness: expecting no exception PASSED!
|
||||||
|
double mixed endianness: expecting length no change PASSED!
|
||||||
|
ByteArray readDouble_2 #1 PASSED!
|
||||||
|
ByteArray readDouble_2 #2 PASSED!
|
||||||
|
byte: expecting no exception PASSED!
|
||||||
|
byte: expecting length no change PASSED!
|
||||||
|
testByte: ByteArray position PASSED!
|
||||||
|
testByte: ByteArray length PASSED!
|
||||||
|
ByteArray readByte PASSED!
|
||||||
|
ByteArray readByte PASSED!
|
||||||
|
ByteArray readByte EOF PASSED!
|
||||||
|
UTF: expecting no exception PASSED!
|
||||||
|
UTF: expecting length no change PASSED!
|
||||||
|
ByteArray position of utf string PASSED!
|
||||||
|
ByteArray length of utf string PASSED!
|
||||||
|
ByteArray readUTF PASSED!
|
||||||
|
bytes: expecting no exception PASSED!
|
||||||
|
bytes: expecting length no change PASSED!
|
||||||
|
ByteArray readUTF on contents containing NUL: contents PASSED!
|
||||||
|
ByteArray readUTF on contents containing NUL: position PASSED!
|
||||||
|
ReadUTF EOF in content PASSED!
|
||||||
|
ReadUTF EOF in length, #1 PASSED!
|
||||||
|
ReadUTF EOF in length, #2 PASSED!
|
||||||
|
RangeError in writeUTF PASSED!
|
||||||
|
skip UTF-8 BOM: expecting no exception PASSED!
|
||||||
|
skip UTF-8 BOM: expecting length no change PASSED!
|
||||||
|
ByteArray readUTF skips UTF8 BOM after length bytes but includes it in the length PASSED!
|
||||||
|
UTF bytes: expecting no exception PASSED!
|
||||||
|
UTF bytes: expecting length no change PASSED!
|
||||||
|
ByteArray length of utf bytes string PASSED!
|
||||||
|
ByteArray readUTFBytes PASSED!
|
||||||
|
bytes contains NULL: expecting no exception PASSED!
|
||||||
|
bytes contains NULL: expecting length no change PASSED!
|
||||||
|
ByteArray readUTFBytes on contents containing NUL: contents PASSED!
|
||||||
|
ByteArray readUTFBytes on contents containing NUL: position PASSED!
|
||||||
|
ReadUTFBytes EOF in content PASSED!
|
||||||
|
bytes contain high value bytes: expecting no exception PASSED!
|
||||||
|
bytes contain high value bytes: expecting length no change PASSED!
|
||||||
|
ByteArray readUTFBytes skips UTF8 BOM but includes it in the length PASSED!
|
||||||
|
bracket syntax: expecting no exception PASSED!
|
||||||
|
bracket syntax: expecting length no change PASSED!
|
||||||
|
ByteArray get [] syntax PASSED!
|
||||||
|
ByteArray set [] syntax PASSED!
|
||||||
|
ByteArray.compress bytearray length is different PASSED!
|
||||||
|
ByteArray.compress bytearray contents differ PASSED!
|
||||||
|
ByteArray.uncompress bytearray length matches before compress PASSED!
|
||||||
|
ByteArray.uncompress uncompressing compressed string matches original PASSED!
|
Binary file not shown.
|
@ -0,0 +1,5 @@
|
||||||
|
num_ticks = 1
|
||||||
|
known_failure = true
|
||||||
|
|
||||||
|
[required_features]
|
||||||
|
lzma = true
|
356
tests/tests/swfs/avm2/from_avmplus/as3/ByteArray/ByteArrayLzmaThirdParty/Test.as
vendored
Normal file
356
tests/tests/swfs/avm2/from_avmplus/as3/ByteArray/ByteArrayLzmaThirdParty/Test.as
vendored
Normal file
|
@ -0,0 +1,356 @@
|
||||||
|
/* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4 -*- */
|
||||||
|
/* vi: set ts=4 sw=4 expandtab: (add to ~/.vimrc: set modeline modelines=5) */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
// General principles for this test suite:
|
||||||
|
//
|
||||||
|
// - never write just one, write at least two (to test that position
|
||||||
|
// advances correctly and output is placed correctly)
|
||||||
|
// - ditto read
|
||||||
|
// - test both little and big endian for multibyte data
|
||||||
|
// - test both aligned and unaligned access for multibyte data
|
||||||
|
//
|
||||||
|
// Search for "TODO" for comments about missing tests.
|
||||||
|
|
||||||
|
package {
|
||||||
|
import flash.display.MovieClip;
|
||||||
|
public class Test extends MovieClip {}
|
||||||
|
}
|
||||||
|
|
||||||
|
import flash.errors.EOFError;
|
||||||
|
import flash.errors.IOError;
|
||||||
|
import flash.utils.ByteArray;
|
||||||
|
import flash.utils.ByteArray;
|
||||||
|
import flash.utils.ByteArray;
|
||||||
|
import flash.utils.CompressionAlgorithm;
|
||||||
|
|
||||||
|
import com.adobe.test.Assert;
|
||||||
|
|
||||||
|
// var SECTION = "ByteArrayWithLzmaThirdParty";
|
||||||
|
// var VERSION = "as3";
|
||||||
|
// var TITLE = "test ByteArray class with lzma inputs generated via LZMA.jar";
|
||||||
|
|
||||||
|
var abc_compressed_hello = new ByteArray();
|
||||||
|
abc_compressed_hello.writeByte(0x5D);
|
||||||
|
abc_compressed_hello.writeByte(0x00);
|
||||||
|
abc_compressed_hello.writeByte(0x00);
|
||||||
|
abc_compressed_hello.writeByte(0x80);
|
||||||
|
abc_compressed_hello.writeByte(0x00);
|
||||||
|
abc_compressed_hello.writeByte(0x92);
|
||||||
|
abc_compressed_hello.writeByte(0x01);
|
||||||
|
abc_compressed_hello.writeByte(0x00);
|
||||||
|
abc_compressed_hello.writeByte(0x00);
|
||||||
|
abc_compressed_hello.writeByte(0x00);
|
||||||
|
abc_compressed_hello.writeByte(0x00);
|
||||||
|
abc_compressed_hello.writeByte(0x00);
|
||||||
|
abc_compressed_hello.writeByte(0x00);
|
||||||
|
abc_compressed_hello.writeByte(0x00);
|
||||||
|
abc_compressed_hello.writeByte(0x24);
|
||||||
|
abc_compressed_hello.writeByte(0x19);
|
||||||
|
abc_compressed_hello.writeByte(0x49);
|
||||||
|
abc_compressed_hello.writeByte(0x98);
|
||||||
|
abc_compressed_hello.writeByte(0x6F);
|
||||||
|
abc_compressed_hello.writeByte(0x10);
|
||||||
|
abc_compressed_hello.writeByte(0x11);
|
||||||
|
abc_compressed_hello.writeByte(0xC8);
|
||||||
|
abc_compressed_hello.writeByte(0x5F);
|
||||||
|
abc_compressed_hello.writeByte(0xE6);
|
||||||
|
abc_compressed_hello.writeByte(0xD5);
|
||||||
|
abc_compressed_hello.writeByte(0x8A);
|
||||||
|
abc_compressed_hello.writeByte(0x64);
|
||||||
|
abc_compressed_hello.writeByte(0x72);
|
||||||
|
abc_compressed_hello.writeByte(0x70);
|
||||||
|
abc_compressed_hello.writeByte(0x9E);
|
||||||
|
abc_compressed_hello.writeByte(0xA8);
|
||||||
|
abc_compressed_hello.writeByte(0x41);
|
||||||
|
abc_compressed_hello.writeByte(0x82);
|
||||||
|
abc_compressed_hello.writeByte(0x52);
|
||||||
|
abc_compressed_hello.writeByte(0x13);
|
||||||
|
abc_compressed_hello.writeByte(0x1B);
|
||||||
|
abc_compressed_hello.writeByte(0x09);
|
||||||
|
abc_compressed_hello.writeByte(0xB2);
|
||||||
|
abc_compressed_hello.writeByte(0x30);
|
||||||
|
abc_compressed_hello.writeByte(0x51);
|
||||||
|
abc_compressed_hello.writeByte(0xAD);
|
||||||
|
abc_compressed_hello.writeByte(0x62);
|
||||||
|
abc_compressed_hello.writeByte(0x82);
|
||||||
|
abc_compressed_hello.writeByte(0xA4);
|
||||||
|
abc_compressed_hello.writeByte(0x1B);
|
||||||
|
abc_compressed_hello.writeByte(0x14);
|
||||||
|
abc_compressed_hello.writeByte(0x99);
|
||||||
|
abc_compressed_hello.writeByte(0xF4);
|
||||||
|
abc_compressed_hello.writeByte(0xBB);
|
||||||
|
abc_compressed_hello.writeByte(0xCB);
|
||||||
|
abc_compressed_hello.writeByte(0x46);
|
||||||
|
abc_compressed_hello.writeByte(0xF9);
|
||||||
|
abc_compressed_hello.writeByte(0x2F);
|
||||||
|
abc_compressed_hello.writeByte(0x5D);
|
||||||
|
abc_compressed_hello.writeByte(0x05);
|
||||||
|
abc_compressed_hello.writeByte(0x6F);
|
||||||
|
abc_compressed_hello.writeByte(0xA1);
|
||||||
|
abc_compressed_hello.writeByte(0xA0);
|
||||||
|
abc_compressed_hello.writeByte(0x46);
|
||||||
|
abc_compressed_hello.writeByte(0xB7);
|
||||||
|
abc_compressed_hello.writeByte(0x9D);
|
||||||
|
abc_compressed_hello.writeByte(0x4C);
|
||||||
|
abc_compressed_hello.writeByte(0x1A);
|
||||||
|
abc_compressed_hello.writeByte(0x7F);
|
||||||
|
abc_compressed_hello.writeByte(0xB4);
|
||||||
|
abc_compressed_hello.writeByte(0xD4);
|
||||||
|
abc_compressed_hello.writeByte(0xFC);
|
||||||
|
abc_compressed_hello.writeByte(0x7C);
|
||||||
|
abc_compressed_hello.writeByte(0x4B);
|
||||||
|
abc_compressed_hello.writeByte(0x83);
|
||||||
|
abc_compressed_hello.writeByte(0x84);
|
||||||
|
abc_compressed_hello.writeByte(0x97);
|
||||||
|
abc_compressed_hello.writeByte(0x7C);
|
||||||
|
abc_compressed_hello.writeByte(0x25);
|
||||||
|
abc_compressed_hello.writeByte(0xCB);
|
||||||
|
abc_compressed_hello.writeByte(0x0E);
|
||||||
|
abc_compressed_hello.writeByte(0xA4);
|
||||||
|
abc_compressed_hello.writeByte(0xEB);
|
||||||
|
abc_compressed_hello.writeByte(0x5C);
|
||||||
|
abc_compressed_hello.writeByte(0xD5);
|
||||||
|
abc_compressed_hello.writeByte(0x69);
|
||||||
|
abc_compressed_hello.writeByte(0x91);
|
||||||
|
abc_compressed_hello.writeByte(0xE0);
|
||||||
|
abc_compressed_hello.writeByte(0xE3);
|
||||||
|
abc_compressed_hello.writeByte(0x1B);
|
||||||
|
abc_compressed_hello.writeByte(0xD9);
|
||||||
|
abc_compressed_hello.writeByte(0x8A);
|
||||||
|
abc_compressed_hello.writeByte(0x7F);
|
||||||
|
abc_compressed_hello.writeByte(0x63);
|
||||||
|
abc_compressed_hello.writeByte(0x44);
|
||||||
|
abc_compressed_hello.writeByte(0xB7);
|
||||||
|
abc_compressed_hello.writeByte(0x89);
|
||||||
|
abc_compressed_hello.writeByte(0x36);
|
||||||
|
abc_compressed_hello.writeByte(0x82);
|
||||||
|
abc_compressed_hello.writeByte(0x68);
|
||||||
|
abc_compressed_hello.writeByte(0x6F);
|
||||||
|
abc_compressed_hello.writeByte(0xBD);
|
||||||
|
abc_compressed_hello.writeByte(0x1C);
|
||||||
|
abc_compressed_hello.writeByte(0x3F);
|
||||||
|
abc_compressed_hello.writeByte(0x1F);
|
||||||
|
abc_compressed_hello.writeByte(0xE5);
|
||||||
|
abc_compressed_hello.writeByte(0xC1);
|
||||||
|
abc_compressed_hello.writeByte(0xF9);
|
||||||
|
abc_compressed_hello.writeByte(0xE5);
|
||||||
|
abc_compressed_hello.writeByte(0x36);
|
||||||
|
abc_compressed_hello.writeByte(0xB4);
|
||||||
|
abc_compressed_hello.writeByte(0x08);
|
||||||
|
abc_compressed_hello.writeByte(0x71);
|
||||||
|
abc_compressed_hello.writeByte(0x14);
|
||||||
|
abc_compressed_hello.writeByte(0xAC);
|
||||||
|
abc_compressed_hello.writeByte(0x9E);
|
||||||
|
abc_compressed_hello.writeByte(0xEC);
|
||||||
|
abc_compressed_hello.writeByte(0x24);
|
||||||
|
abc_compressed_hello.writeByte(0x82);
|
||||||
|
abc_compressed_hello.writeByte(0x77);
|
||||||
|
abc_compressed_hello.writeByte(0x5E);
|
||||||
|
abc_compressed_hello.writeByte(0x68);
|
||||||
|
abc_compressed_hello.writeByte(0x00);
|
||||||
|
abc_compressed_hello.writeByte(0x23);
|
||||||
|
abc_compressed_hello.writeByte(0x75);
|
||||||
|
abc_compressed_hello.writeByte(0x68);
|
||||||
|
abc_compressed_hello.writeByte(0xEE);
|
||||||
|
abc_compressed_hello.writeByte(0x03);
|
||||||
|
abc_compressed_hello.writeByte(0x9A);
|
||||||
|
abc_compressed_hello.writeByte(0x62);
|
||||||
|
abc_compressed_hello.writeByte(0x2D);
|
||||||
|
abc_compressed_hello.writeByte(0xFE);
|
||||||
|
abc_compressed_hello.writeByte(0xA0);
|
||||||
|
abc_compressed_hello.writeByte(0x72);
|
||||||
|
abc_compressed_hello.writeByte(0x13);
|
||||||
|
abc_compressed_hello.writeByte(0x80);
|
||||||
|
abc_compressed_hello.writeByte(0x58);
|
||||||
|
abc_compressed_hello.writeByte(0x8B);
|
||||||
|
abc_compressed_hello.writeByte(0x79);
|
||||||
|
abc_compressed_hello.writeByte(0x63);
|
||||||
|
abc_compressed_hello.writeByte(0x6E);
|
||||||
|
abc_compressed_hello.writeByte(0x14);
|
||||||
|
abc_compressed_hello.writeByte(0xF3);
|
||||||
|
abc_compressed_hello.writeByte(0x72);
|
||||||
|
abc_compressed_hello.writeByte(0x70);
|
||||||
|
abc_compressed_hello.writeByte(0x4F);
|
||||||
|
abc_compressed_hello.writeByte(0xFD);
|
||||||
|
abc_compressed_hello.writeByte(0x81);
|
||||||
|
abc_compressed_hello.writeByte(0xCA);
|
||||||
|
abc_compressed_hello.writeByte(0x3D);
|
||||||
|
abc_compressed_hello.writeByte(0xD5);
|
||||||
|
abc_compressed_hello.writeByte(0xB6);
|
||||||
|
abc_compressed_hello.writeByte(0x6F);
|
||||||
|
abc_compressed_hello.writeByte(0xD2);
|
||||||
|
abc_compressed_hello.writeByte(0xAF);
|
||||||
|
abc_compressed_hello.writeByte(0x79);
|
||||||
|
abc_compressed_hello.writeByte(0x09);
|
||||||
|
abc_compressed_hello.writeByte(0xE5);
|
||||||
|
abc_compressed_hello.writeByte(0x27);
|
||||||
|
abc_compressed_hello.writeByte(0x03);
|
||||||
|
abc_compressed_hello.writeByte(0x8C);
|
||||||
|
abc_compressed_hello.writeByte(0x2F);
|
||||||
|
abc_compressed_hello.writeByte(0x73);
|
||||||
|
abc_compressed_hello.writeByte(0x29);
|
||||||
|
abc_compressed_hello.writeByte(0xED);
|
||||||
|
abc_compressed_hello.writeByte(0xAC);
|
||||||
|
abc_compressed_hello.writeByte(0xC2);
|
||||||
|
abc_compressed_hello.writeByte(0xD9);
|
||||||
|
abc_compressed_hello.writeByte(0xC3);
|
||||||
|
abc_compressed_hello.writeByte(0x86);
|
||||||
|
abc_compressed_hello.writeByte(0x27);
|
||||||
|
abc_compressed_hello.writeByte(0x38);
|
||||||
|
abc_compressed_hello.writeByte(0x23);
|
||||||
|
abc_compressed_hello.writeByte(0xDC);
|
||||||
|
abc_compressed_hello.writeByte(0x84);
|
||||||
|
abc_compressed_hello.writeByte(0x52);
|
||||||
|
abc_compressed_hello.writeByte(0xA7);
|
||||||
|
abc_compressed_hello.writeByte(0x9F);
|
||||||
|
abc_compressed_hello.writeByte(0xF7);
|
||||||
|
abc_compressed_hello.writeByte(0x5F);
|
||||||
|
abc_compressed_hello.writeByte(0xF3);
|
||||||
|
abc_compressed_hello.writeByte(0x1B);
|
||||||
|
abc_compressed_hello.writeByte(0x7E);
|
||||||
|
abc_compressed_hello.writeByte(0x74);
|
||||||
|
abc_compressed_hello.writeByte(0x57);
|
||||||
|
abc_compressed_hello.writeByte(0xD6);
|
||||||
|
abc_compressed_hello.writeByte(0xEB);
|
||||||
|
abc_compressed_hello.writeByte(0x62);
|
||||||
|
abc_compressed_hello.writeByte(0xF4);
|
||||||
|
abc_compressed_hello.writeByte(0x31);
|
||||||
|
abc_compressed_hello.writeByte(0x3B);
|
||||||
|
abc_compressed_hello.writeByte(0x11);
|
||||||
|
abc_compressed_hello.writeByte(0xE5);
|
||||||
|
abc_compressed_hello.writeByte(0x50);
|
||||||
|
abc_compressed_hello.writeByte(0x1C);
|
||||||
|
abc_compressed_hello.writeByte(0x49);
|
||||||
|
abc_compressed_hello.writeByte(0x10);
|
||||||
|
abc_compressed_hello.writeByte(0x61);
|
||||||
|
abc_compressed_hello.writeByte(0xC9);
|
||||||
|
abc_compressed_hello.writeByte(0x5D);
|
||||||
|
abc_compressed_hello.writeByte(0x1C);
|
||||||
|
abc_compressed_hello.writeByte(0x15);
|
||||||
|
abc_compressed_hello.writeByte(0x45);
|
||||||
|
abc_compressed_hello.writeByte(0x87);
|
||||||
|
abc_compressed_hello.writeByte(0x55);
|
||||||
|
abc_compressed_hello.writeByte(0x10);
|
||||||
|
abc_compressed_hello.writeByte(0x21);
|
||||||
|
abc_compressed_hello.writeByte(0x7F);
|
||||||
|
abc_compressed_hello.writeByte(0x83);
|
||||||
|
abc_compressed_hello.writeByte(0x1B);
|
||||||
|
abc_compressed_hello.writeByte(0xFD);
|
||||||
|
abc_compressed_hello.writeByte(0x8E);
|
||||||
|
abc_compressed_hello.writeByte(0x4C);
|
||||||
|
abc_compressed_hello.writeByte(0xD1);
|
||||||
|
abc_compressed_hello.writeByte(0x9B);
|
||||||
|
abc_compressed_hello.writeByte(0x27);
|
||||||
|
abc_compressed_hello.writeByte(0x01);
|
||||||
|
abc_compressed_hello.writeByte(0x0E);
|
||||||
|
abc_compressed_hello.writeByte(0x35);
|
||||||
|
abc_compressed_hello.writeByte(0x34);
|
||||||
|
abc_compressed_hello.writeByte(0xFB);
|
||||||
|
abc_compressed_hello.writeByte(0x1D);
|
||||||
|
abc_compressed_hello.writeByte(0xA7);
|
||||||
|
abc_compressed_hello.writeByte(0xA1);
|
||||||
|
abc_compressed_hello.writeByte(0xA9);
|
||||||
|
abc_compressed_hello.writeByte(0x1A);
|
||||||
|
abc_compressed_hello.writeByte(0x42);
|
||||||
|
abc_compressed_hello.writeByte(0xAB);
|
||||||
|
abc_compressed_hello.writeByte(0x4F);
|
||||||
|
abc_compressed_hello.writeByte(0xA3);
|
||||||
|
abc_compressed_hello.writeByte(0x82);
|
||||||
|
abc_compressed_hello.writeByte(0xA7);
|
||||||
|
abc_compressed_hello.writeByte(0x37);
|
||||||
|
abc_compressed_hello.writeByte(0x04);
|
||||||
|
abc_compressed_hello.writeByte(0x95);
|
||||||
|
abc_compressed_hello.writeByte(0x1E);
|
||||||
|
abc_compressed_hello.writeByte(0xF8);
|
||||||
|
abc_compressed_hello.writeByte(0x8E);
|
||||||
|
abc_compressed_hello.writeByte(0xA5);
|
||||||
|
abc_compressed_hello.writeByte(0x0F);
|
||||||
|
abc_compressed_hello.writeByte(0x9A);
|
||||||
|
abc_compressed_hello.writeByte(0xE4);
|
||||||
|
abc_compressed_hello.position = 0;
|
||||||
|
|
||||||
|
var abc_compressed_small = new ByteArray();
|
||||||
|
abc_compressed_small.writeByte(0x5D);
|
||||||
|
abc_compressed_small.writeByte(0x00);
|
||||||
|
abc_compressed_small.writeByte(0x00);
|
||||||
|
abc_compressed_small.writeByte(0x80);
|
||||||
|
abc_compressed_small.writeByte(0x00);
|
||||||
|
abc_compressed_small.writeByte(0x1C);
|
||||||
|
abc_compressed_small.writeByte(0x00);
|
||||||
|
abc_compressed_small.writeByte(0x00);
|
||||||
|
abc_compressed_small.writeByte(0x00);
|
||||||
|
abc_compressed_small.writeByte(0x00);
|
||||||
|
abc_compressed_small.writeByte(0x00);
|
||||||
|
abc_compressed_small.writeByte(0x00);
|
||||||
|
abc_compressed_small.writeByte(0x00);
|
||||||
|
abc_compressed_small.writeByte(0x00);
|
||||||
|
abc_compressed_small.writeByte(0x22);
|
||||||
|
abc_compressed_small.writeByte(0x19);
|
||||||
|
abc_compressed_small.writeByte(0x49);
|
||||||
|
abc_compressed_small.writeByte(0x86);
|
||||||
|
abc_compressed_small.writeByte(0xB0);
|
||||||
|
abc_compressed_small.writeByte(0x70);
|
||||||
|
abc_compressed_small.writeByte(0x8E);
|
||||||
|
abc_compressed_small.writeByte(0xD1);
|
||||||
|
abc_compressed_small.writeByte(0xE2);
|
||||||
|
abc_compressed_small.writeByte(0xA2);
|
||||||
|
abc_compressed_small.writeByte(0x80);
|
||||||
|
abc_compressed_small.writeByte(0x2D);
|
||||||
|
abc_compressed_small.writeByte(0xE1);
|
||||||
|
abc_compressed_small.writeByte(0x85);
|
||||||
|
abc_compressed_small.writeByte(0x6F);
|
||||||
|
abc_compressed_small.writeByte(0x1E);
|
||||||
|
abc_compressed_small.writeByte(0xE6);
|
||||||
|
abc_compressed_small.writeByte(0xD5);
|
||||||
|
abc_compressed_small.writeByte(0x4B);
|
||||||
|
abc_compressed_small.writeByte(0x2A);
|
||||||
|
abc_compressed_small.writeByte(0x79);
|
||||||
|
abc_compressed_small.writeByte(0x6C);
|
||||||
|
abc_compressed_small.writeByte(0x55);
|
||||||
|
abc_compressed_small.writeByte(0x20);
|
||||||
|
abc_compressed_small.writeByte(0x8E);
|
||||||
|
abc_compressed_small.writeByte(0x60);
|
||||||
|
abc_compressed_small.writeByte(0x9D);
|
||||||
|
abc_compressed_small.writeByte(0x9A);
|
||||||
|
abc_compressed_small.writeByte(0x61);
|
||||||
|
abc_compressed_small.writeByte(0x26);
|
||||||
|
abc_compressed_small.writeByte(0x00);
|
||||||
|
abc_compressed_small.writeByte(0x00);
|
||||||
|
abc_compressed_small.position = 0;
|
||||||
|
|
||||||
|
|
||||||
|
// Bugzilla 733051: ByteArrayLzma callCompress tests are doing
|
||||||
|
// round-trips through compress and uncompress; this test is checking
|
||||||
|
// that we correctly handle inputs that have been compressed by
|
||||||
|
// third-party utilities (see LZMA.jar attached to Bugzilla 729336).
|
||||||
|
function testThirdPartyLzmaInputs()
|
||||||
|
{
|
||||||
|
var compressedHello:ByteArray = new ByteArray();
|
||||||
|
compressedHello.writeBytes(abc_compressed_hello);
|
||||||
|
var compressedSmall:ByteArray = new ByteArray();
|
||||||
|
compressedSmall.writeBytes(abc_compressed_small);
|
||||||
|
|
||||||
|
var helloString:String = "Hello World!\n" +
|
||||||
|
"\n" +
|
||||||
|
"More text; Felix wants to illustrate content that is compressed by\n" +
|
||||||
|
"LZMA, but a 13 byte file with just \"Hello World!\\n\" is compressed to a\n" +
|
||||||
|
"31 byte file by LZMA. (Though perhaps a large portion is LZMA header?\n" +
|
||||||
|
"Not sure yet.) Easy ending: LZMA LZMA LZMA Hello World LZMA LZMA LZMA\n" +
|
||||||
|
"LZMA LZMA LZMA Hello World LZMA LZMA LZMA Malkovich Malkovich LZMA\n" +
|
||||||
|
"LZMA LZMA Malkovich LZMA LZMA LZMA LZMA.\n";
|
||||||
|
var smallString:String = "Deliberately small snippet.\n";
|
||||||
|
|
||||||
|
compressedHello.uncompress(CompressionAlgorithm.LZMA);
|
||||||
|
var helloString2:String = compressedHello.readUTFBytes(compressedHello.length);
|
||||||
|
Assert.expectEq("Correct lzma uncompression on hello", helloString, helloString2);
|
||||||
|
|
||||||
|
compressedSmall.uncompress(CompressionAlgorithm.LZMA);
|
||||||
|
var smallString2:String = compressedSmall.readUTFBytes(compressedSmall.length);
|
||||||
|
Assert.expectEq("Correct lzma uncompression on small", smallString, smallString2);
|
||||||
|
}
|
||||||
|
|
||||||
|
testThirdPartyLzmaInputs();
|
||||||
|
|
13
tests/tests/swfs/avm2/from_avmplus/as3/ByteArray/ByteArrayLzmaThirdParty/config.xml
vendored
Normal file
13
tests/tests/swfs/avm2/from_avmplus/as3/ByteArray/ByteArrayLzmaThirdParty/config.xml
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<flex-config>
|
||||||
|
<compiler>
|
||||||
|
<source-path>
|
||||||
|
<path-element>.</path-element>
|
||||||
|
<path-element>../../../lib</path-element>
|
||||||
|
</source-path>
|
||||||
|
<debug>false</debug>
|
||||||
|
<omit-trace-statements>false</omit-trace-statements>
|
||||||
|
<show-actionscript-warnings>false</show-actionscript-warnings>
|
||||||
|
<strict>false</strict>
|
||||||
|
</compiler>
|
||||||
|
<output>test.swf</output>
|
||||||
|
</flex-config>
|
2
tests/tests/swfs/avm2/from_avmplus/as3/ByteArray/ByteArrayLzmaThirdParty/output.txt
vendored
Normal file
2
tests/tests/swfs/avm2/from_avmplus/as3/ByteArray/ByteArrayLzmaThirdParty/output.txt
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Correct lzma uncompression on hello PASSED!
|
||||||
|
Correct lzma uncompression on small PASSED!
|
BIN
tests/tests/swfs/avm2/from_avmplus/as3/ByteArray/ByteArrayLzmaThirdParty/test.swf
vendored
Normal file
BIN
tests/tests/swfs/avm2/from_avmplus/as3/ByteArray/ByteArrayLzmaThirdParty/test.swf
vendored
Normal file
Binary file not shown.
4
tests/tests/swfs/avm2/from_avmplus/as3/ByteArray/ByteArrayLzmaThirdParty/test.toml
vendored
Normal file
4
tests/tests/swfs/avm2/from_avmplus/as3/ByteArray/ByteArrayLzmaThirdParty/test.toml
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
num_ticks = 1
|
||||||
|
|
||||||
|
[required_features]
|
||||||
|
lzma = true
|
Loading…
Reference in New Issue