diff --git a/src/core/org/luaj/vm2/LuaDouble.java b/src/core/org/luaj/vm2/LuaDouble.java index a8175b3f..2e5c148e 100644 --- a/src/core/org/luaj/vm2/LuaDouble.java +++ b/src/core/org/luaj/vm2/LuaDouble.java @@ -47,7 +47,8 @@ public class LuaDouble extends LuaNumber { } public int hashCode() { - return (int) Double.doubleToLongBits(v); + long l = Double.doubleToLongBits(v); + return ((int)(l>>32)) | (int) l; } public boolean islong() { @@ -145,7 +146,7 @@ public class LuaDouble extends LuaNumber { return JSTR_NAN; if ( Double.isInfinite(v) ) return (v<0? JSTR_NEGINF: JSTR_POSINF); - return Double.toString(v); + return Float.toString((float)v); } public LuaString strvalue() { diff --git a/test/junit/org/luaj/vm2/AllTests.java b/test/junit/org/luaj/vm2/AllTests.java index 52fa665a..765c225b 100644 --- a/test/junit/org/luaj/vm2/AllTests.java +++ b/test/junit/org/luaj/vm2/AllTests.java @@ -26,6 +26,10 @@ import junit.framework.TestSuite; import org.luaj.vm2.WeakTableTest.WeakKeyTableTest; import org.luaj.vm2.WeakTableTest.WeakKeyValueTableTest; +import org.luaj.vm2.compiler.CompilerUnitTests; +import org.luaj.vm2.compiler.DumpLoadEndianIntTest; +import org.luaj.vm2.compiler.RegressionTests; +import org.luaj.vm2.compiler.SimpleTests; import org.luaj.vm2.lib.jse.LuaJavaCoercionTest; import org.luaj.vm2.vm1.Luajvm1CompatibilityTest; @@ -52,6 +56,14 @@ public class AllTests { table.addTestSuite(WeakKeyValueTableTest.class); suite.addTest(table); + // prototype compiler + TestSuite compiler = new TestSuite("Lua Compiler Tests"); + compiler.addTestSuite(CompilerUnitTests.class); + compiler.addTestSuite(DumpLoadEndianIntTest.class); + compiler.addTestSuite(RegressionTests.class); + compiler.addTestSuite(SimpleTests.class); + suite.addTest(compiler); + // library tests TestSuite lib = new TestSuite("Library Tests"); lib.addTestSuite(LuaJavaCoercionTest.class); @@ -62,7 +74,7 @@ public class AllTests { suite.addTestSuite(Luajvm1CompatibilityTest.class); // luajc regression tests - TestSuite luajc = new TestSuite("Luajc Tests"); + TestSuite luajc = new TestSuite("Java Compiler Tests"); luajc.addTestSuite(FragmentsTest.class); suite.addTest(luajc); diff --git a/test/junit/org/luaj/vm2/compiler/AbstractUnitTests.java b/test/junit/org/luaj/vm2/compiler/AbstractUnitTests.java index 95355070..f72f02bc 100644 --- a/test/junit/org/luaj/vm2/compiler/AbstractUnitTests.java +++ b/test/junit/org/luaj/vm2/compiler/AbstractUnitTests.java @@ -41,7 +41,7 @@ abstract public class AbstractUnitTests extends TestCase { // compile in memory InputStream is = new ByteArrayInputStream(lua); - Prototype p = LuaC.compile(is, dir + "/" + file); + Prototype p = LuaC.compile(is, "@" + dir + "/" + file); String actual = protoToString(p); // load expected value from jar