Added new tests for float/double ops and bit-shift instructions.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/libjava/src/stx/libjava/tests/lang/FloatAndDoubleTests.java Tue Dec 25 17:37:38 2012 +0100
@@ -0,0 +1,17 @@
+package stx.libjava.tests.lang;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class FloatAndDoubleTests {
+
+ @Test
+ public void test() {
+ double f1 = Double.MAX_VALUE;
+ String s = Double.toString(f1);
+ double f2 = Double.valueOf(s);
+ assertTrue(f1 == f2);
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/libjava/src/stx/libjava/tests/vm/XSHX.java Tue Dec 25 17:37:38 2012 +0100
@@ -0,0 +1,50 @@
+package stx.libjava.tests.vm;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/*
+ * Test for B/I/L signer/unsigner SHift Left/Right
+ */
+public class XSHX {
+
+ private final byte[] cafebabe = { (byte) 0xCA, (byte) 0xFE, (byte) 0xBA, (byte) 0xBE, (byte) 0xCA, (byte) 0xFE, (byte) 0xBA, (byte) 0xBE };
+
+ @Test
+ public void testShiftingLong() {
+ byte[] buffer = new byte[8];
+ long v = readLong(cafebabe);
+
+ System.out.println("--->"+ v);
+
+ writeLong(v, buffer);
+
+ for (int i = 0; i < cafebabe.length; i++) {
+ assertTrue(cafebabe[i] == buffer[i]);
+ }
+ }
+
+ public final void writeLong(long v, byte[] writeBuffer) {
+ writeBuffer[0] = (byte)(v >>> 56);
+ writeBuffer[1] = (byte)(v >>> 48);
+ writeBuffer[2] = (byte)(v >>> 40);
+ writeBuffer[3] = (byte)(v >>> 32);
+ writeBuffer[4] = (byte)(v >>> 24);
+ writeBuffer[5] = (byte)(v >>> 16);
+ writeBuffer[6] = (byte)(v >>> 8);
+ writeBuffer[7] = (byte)(v >>> 0);
+ }
+
+ public final long readLong(byte[] readBuffer) {
+ return (((long)readBuffer[0] << 56) +
+ ((long)(readBuffer[1] & 255) << 48) +
+ ((long)(readBuffer[2] & 255) << 40) +
+ ((long)(readBuffer[3] & 255) << 32) +
+ ((long)(readBuffer[4] & 255) << 24) +
+ ((readBuffer[5] & 255) << 16) +
+ ((readBuffer[6] & 255) << 8) +
+ ((readBuffer[7] & 255) << 0));
+ }
+
+}