From 6ac7e6e45240f448be4cbcb025fd509eefe696bb Mon Sep 17 00:00:00 2001 From: James Roseborough Date: Fri, 31 Aug 2012 15:02:52 +0000 Subject: [PATCH] Remove lua1 compatibility tests. --- test/junit/org/luaj/vm2/AllTests.java | 2 - .../vm2/vm1/Luajvm1CompatibilityTest.java | 207 ------------------ test/junit/org/luaj/vm2/vm1/luajvm1-tests.zip | Bin 31612 -> 0 bytes test/junit/org/luaj/vm2/vm1/sample.lua | 7 - 4 files changed, 216 deletions(-) delete mode 100644 test/junit/org/luaj/vm2/vm1/Luajvm1CompatibilityTest.java delete mode 100644 test/junit/org/luaj/vm2/vm1/luajvm1-tests.zip delete mode 100644 test/junit/org/luaj/vm2/vm1/sample.lua diff --git a/test/junit/org/luaj/vm2/AllTests.java b/test/junit/org/luaj/vm2/AllTests.java index 7bede95b..0b9da872 100644 --- a/test/junit/org/luaj/vm2/AllTests.java +++ b/test/junit/org/luaj/vm2/AllTests.java @@ -35,7 +35,6 @@ import org.luaj.vm2.compiler.SimpleTests; import org.luaj.vm2.lib.jse.LuaJavaCoercionTest; import org.luaj.vm2.lib.jse.LuajavaAccessibleMembersTest; import org.luaj.vm2.lib.jse.LuajavaClassMembersTest; -import org.luaj.vm2.vm1.Luajvm1CompatibilityTest; public class AllTests { @@ -87,7 +86,6 @@ public class AllTests { TestSuite compat = CompatibiltyTest.suite(); suite.addTest( compat ); compat.addTestSuite(ErrorsTest.class); - compat.addTestSuite(Luajvm1CompatibilityTest.class); return suite; } diff --git a/test/junit/org/luaj/vm2/vm1/Luajvm1CompatibilityTest.java b/test/junit/org/luaj/vm2/vm1/Luajvm1CompatibilityTest.java deleted file mode 100644 index 825ca3ff..00000000 --- a/test/junit/org/luaj/vm2/vm1/Luajvm1CompatibilityTest.java +++ /dev/null @@ -1,207 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Luaj.org. All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - ******************************************************************************/ -package org.luaj.vm2.vm1; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.PrintStream; -import java.net.MalformedURLException; -import java.net.URL; - -import junit.framework.TestCase; - -import org.luaj.vm2.LuaTable; -import org.luaj.vm2.LuaThread; -import org.luaj.vm2.LuaValue; -import org.luaj.vm2.ScriptDrivenTest; - -/** - * Test for compatiblity between luaj 1.0 and 2.0. - * - * Runs an archive of the tests that were used in - * the luaj-vm 1.0 development, modified to account - * for changes to interpetation of the lua vm spec. - */ -public class Luajvm1CompatibilityTest extends TestCase { - - private static final String zipfile = "luajvm1-tests.zip"; - private static String jarpath; - - protected void runTest(String test) { - try { - URL zip = null; - zip = getClass().getResource(zipfile); - if ( zip == null ) { - File file = new File("test/junit/org/luaj/vm2/vm1/"+zipfile); - try { - if ( file.exists() ) - zip = file.toURI().toURL(); - } catch (MalformedURLException e) { - e.printStackTrace(); - } - } - if ( zip == null ) - throw new RuntimeException("not found: "+zipfile); - jarpath = "jar:"+zip.toExternalForm()+"!/"; - String lua = luaRun(test); - String luaj20 = luaj20Run(test); - lua = lua.replaceAll("\r\n", "\n"); - luaj20 = luaj20.replaceAll("\r\n", "\n"); - assertEquals( lua, luaj20 ); - } catch ( Exception ioe ) { - fail( ioe.toString() ); - } - } - - private static InputStream open(String file) { - try { - File f = new File(file); - return f.exists()? - new FileInputStream(f): - new URL(jarpath+file).openStream(); - } catch ( Exception e ) { - return null; - } - } - - private String luaRun(String test) throws Exception { - InputStream script =open(test+".lua"); - if ( script == null ) - fail("Could not load script for test case: " + test); - try { - String luaCommand = System.getProperty("LUA_COMMAND"); - if ( luaCommand == null ) - luaCommand = "lua"; - String[] args = new String[] { luaCommand, "-", "jse" }; - return ScriptDrivenTest.collectProcessOutput(args, script); - } finally { - script.close(); - } - } - - /* - private String luaj10Run(String test) throws Exception { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - try { - org.luaj.vm.Platform.setInstance(new org.luaj.platform.J2sePlatform() { - public InputStream openFile(String fileName) { - return open( fileName ); - } - }); - org.luaj.vm.LuaState vm = org.luaj.vm.Platform.newLuaState(); - org.luaj.compiler.LuaC.install(); - org.luaj.lib.DebugLib.install( vm ); - org.luaj.lib.BaseLib.redirectOutput(outputStream); - vm.getglobal("require"); - vm.pushstring(test); - vm.call(1,0); - return outputStream.toString(); - } finally { - org.luaj.lib.BaseLib.restoreStandardOutput(); - outputStream.close(); - } - } - */ - - private String luaj20Run(String test) throws IOException { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - PrintStream printStream = new PrintStream( outputStream ); - try { - org.luaj.vm2.LuaTable _G = org.luaj.vm2.lib.jse.JsePlatform.debugGlobals(); - LuaThread.getRunning().setfenv(_G); - LuaValue loader = new org.luaj.vm2.lib.OneArgFunction(_G) { - public LuaValue call(LuaValue arg) { - String name = arg.tojstring(); - String file = name + ".lua"; - InputStream is = open( file ); - if ( is == null ) - return LuaValue.valueOf("not found: "+file); - try { - return org.luaj.vm2.LoadState.load(is, "@stdin", env); - } catch (IOException e) { - return LuaValue.valueOf(e.toString()); - } finally { - try { is.close(); } catch ( IOException ioe ) {} - } - } - }; - LuaTable loaders = _G.get("package").get("loaders").checktable(); - loaders.insert(1, loader); - org.luaj.vm2.lib.BaseLib.instance.STDOUT = printStream; - loader.call(LuaValue.valueOf(test)).invoke(LuaValue.valueOf(test)); - } finally { - printStream.close(); - } - return outputStream.toString(); - } - - public Luajvm1CompatibilityTest() { - } - - public void testTest1() { runTest("test1"); } - public void testTest2() { runTest("test2"); } - public void testTest3() { runTest("test3"); } - public void testTest4() { runTest("test4"); } - public void testTest5() { runTest("test5"); } - public void testTest6() { runTest("test6"); } - public void testTest8() { runTest("test8"); } - public void testTest9() { runTest("test9"); } - public void testAutoload() { runTest("autoload"); } - public void testBaseLib() { runTest("baselib"); } - public void testBoolean() { runTest("boolean"); } - public void testCalls() { runTest("calls"); } - public void testCoercions() { runTest("coercions"); } - public void testCoroutines() { runTest("coroutines"); } - public void testCompare() { runTest("compare"); } - public void testDebugLib() { runTest("debuglib"); } - public void testErrors() { runTest("errors"); } - public void testHugeTable() { runTest("hugetable"); } - public void testIoLib() { runTest("iolib"); } - public void testLoops() { runTest("loops"); } - public void testManyLocals() { runTest("manylocals"); } - public void testMathLib() { runTest("mathlib"); } - public void testMetatables() { runTest("metatables"); } - public void testModule() { runTest("module"); } - public void testNext() { runTest("next"); } - public void testOsLib() { runTest("oslib"); } - public void testPcalls() { runTest("pcalls"); } - public void testPrint() { runTest("print"); } - public void testRequire() { runTest("require"); } - public void testSelect() { runTest("select"); } - public void testSetfenv() { runTest("setfenv"); } - public void testSetlist() { runTest("setlist"); } - public void testSimpleMetatables() { runTest("simplemetatables"); } - public void testStack() { runTest("stack"); } - public void testStrLib() { runTest("strlib"); } - public void testSort() { runTest("sort"); } - public void testTable() { runTest("table"); } - public void testTailcall() { runTest("tailcall"); } - public void testType() { runTest("type"); } - public void testUpvalues() { runTest("upvalues"); } - public void testUpvalues2() { runTest("upvalues2"); } - public void testUpvalues3() { runTest("upvalues3"); } - public void testVarargs() { runTest("varargs"); } - public void testWeakTable() { runTest("weaktable"); } -} diff --git a/test/junit/org/luaj/vm2/vm1/luajvm1-tests.zip b/test/junit/org/luaj/vm2/vm1/luajvm1-tests.zip deleted file mode 100644 index 5d332aa39ec91da6f75450bd6a66cd584094c771..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31612 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 RU~Iro37|ZW)b8oK{|Cs;EkpnS diff --git a/test/junit/org/luaj/vm2/vm1/sample.lua b/test/junit/org/luaj/vm2/vm1/sample.lua deleted file mode 100644 index 712560f7..00000000 --- a/test/junit/org/luaj/vm2/vm1/sample.lua +++ /dev/null @@ -1,7 +0,0 @@ --- helper file for require() tests -module( 'sample', package.seeall ) -function h() - print 'in sample.h' -end -print 'loading sample.lua' -