diff --git a/Java/src/test/java/DataOpCodeTests.java b/Java/src/test/java/DataOpCodeTests.java index 5881fbe..a525722 100644 --- a/Java/src/test/java/DataOpCodeTests.java +++ b/Java/src/test/java/DataOpCodeTests.java @@ -771,7 +771,7 @@ public class DataOpCodeTests extends ExecutableTest { assertTrue(state.getIsFinished()); assertFalse(state.getHadFatalError()); - assertEquals("Data does not match", 2222L >> 3, getData(2)); + assertEquals("Data does not match", 2222L >>> 3, getData(2)); } @Test @@ -788,4 +788,19 @@ public class DataOpCodeTests extends ExecutableTest { assertEquals("Data does not match", 0L, getData(2)); } + @Test + public void testSHR_DATsign() throws ExecutionException { + codeByteBuffer.put(OpCode.SET_VAL.value).putInt(2).putLong(-1L); + codeByteBuffer.put(OpCode.SET_VAL.value).putInt(3).putLong(3L); + codeByteBuffer.put(OpCode.SHR_DAT.value).putInt(2).putInt(3); + codeByteBuffer.put(OpCode.FIN_IMD.value); + + execute(true); + + assertTrue(state.getIsFinished()); + assertFalse(state.getHadFatalError()); + assertEquals("Data does not match", -1L >>> 3, getData(2)); + assertTrue("Sign does not match", getData(2) >= 0); + } + }