From 0d5ff4de772a6f40b6d8e65d385ca28cf661d0ac Mon Sep 17 00:00:00 2001 From: catbref Date: Tue, 7 Apr 2020 17:01:40 +0100 Subject: [PATCH] Add slightly more coverage to DataOpCodeTests --- Java/src/test/java/DataOpCodeTests.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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); + } + }