Skip to content

Commit 64140c9

Browse files
committed
added one more test for uint use
1 parent 2e8d87d commit 64140c9

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

jbbp/src/test/java/com/igormaznitsa/jbbp/JBBPParserTest.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import com.igormaznitsa.jbbp.model.JBBPFieldArrayShort;
4545
import com.igormaznitsa.jbbp.model.JBBPFieldArrayStruct;
4646
import com.igormaznitsa.jbbp.model.JBBPFieldArrayUByte;
47+
import com.igormaznitsa.jbbp.model.JBBPFieldArrayUInt;
4748
import com.igormaznitsa.jbbp.model.JBBPFieldArrayUShort;
4849
import com.igormaznitsa.jbbp.model.JBBPFieldBit;
4950
import com.igormaznitsa.jbbp.model.JBBPFieldBoolean;
@@ -56,6 +57,7 @@
5657
import com.igormaznitsa.jbbp.model.JBBPFieldString;
5758
import com.igormaznitsa.jbbp.model.JBBPFieldStruct;
5859
import com.igormaznitsa.jbbp.model.JBBPFieldUByte;
60+
import com.igormaznitsa.jbbp.model.JBBPFieldUInt;
5961
import com.igormaznitsa.jbbp.model.JBBPFieldUShort;
6062
import com.igormaznitsa.jbbp.utils.JBBPIntCounter;
6163
import com.igormaznitsa.jbbp.utils.TargetSources;
@@ -2473,4 +2475,21 @@ public void testConvertToSrc_Java_DefaultPackage() {
24732475
assertTrue(src.get(0).getResult().get("SomeClass.java").length() > 128);
24742476
}
24752477

2478+
@Test
2479+
public void testUintUseInExpression() throws Exception {
2480+
final JBBPParser parser = JBBPParser.prepare("uint length; uint[(length * 2) >> 1] array;");
2481+
final JBBPFieldStruct struct = parser.parse(
2482+
new byte[] {0, 0, 0, 2, (byte) 0xFF, (byte) 0xF0, (byte) 0xE0, (byte) 0x12, 0x01, 0x02,
2483+
0x03, 0x04});
2484+
final JBBPFieldUInt length = struct.findFieldForPathAndType("length", JBBPFieldUInt.class);
2485+
final JBBPFieldArrayUInt array =
2486+
struct.findFieldForPathAndType("array", JBBPFieldArrayUInt.class);
2487+
2488+
assertEquals(2, length.getAsInt());
2489+
assertEquals(2, array.size());
2490+
assertThrows(IllegalStateException.class, () -> array.getElementAt(0).getAsInt());
2491+
assertEquals(0xFFF0E012L, array.getElementAt(0).getAsLong());
2492+
assertEquals(0x01020304, array.getElementAt(1).getAsInt());
2493+
}
2494+
24762495
}

0 commit comments

Comments
 (0)