diff -r 5652acd48509 -r 42bc1e89134d vm/src/test/java/org/apidesign/vm4brwsr/VMinVMTest.java --- a/vm/src/test/java/org/apidesign/vm4brwsr/VMinVMTest.java Mon Feb 25 19:00:08 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -/** - * Back 2 Browser Bytecode Translator - * Copyright (C) 2012 Jaroslav Tulach - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. Look for COPYING file in the top folder. - * If not, see http://opensource.org/licenses/GPL-2.0. - */ -package org.apidesign.vm4brwsr; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import static org.testng.Assert.*; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -/** - * - * @author Jaroslav Tulach - */ -public class VMinVMTest { - private static TestVM code; - - @Test public void compareGeneratedCodeForArrayClass() throws Exception { - compareCode("org/apidesign/vm4brwsr/Array.class"); - } - - @Test public void compareGeneratedCodeForClassesClass() throws Exception { - compareCode("org/apidesign/vm4brwsr/Classes.class"); - } - - @BeforeClass - public void compileTheCode() throws Exception { - code = TestVM.compileClass("org/apidesign/vm4brwsr/VMinVM"); - } - - private void compareCode(final String nm) throws Exception, IOException { - byte[] arr = BytesLoader.readClass(nm); - String ret1 = VMinVM.toJavaScript(arr); - - Object ret; - try { - ret = code.invokeFunction("bck2brwsr"); - ret = code.invokeMethod(ret, "loadClass", VMinVM.class.getName()); - ret = code.invokeMethod(ret, "toJavaScript__Ljava_lang_String_2_3B", arr); - } catch (Exception ex) { - File f = File.createTempFile("execution", ".js"); - FileWriter w = new FileWriter(f); - w.append("var byteCode = [\n "); - String sep = ""; - for (int i = 0; i < arr.length; i++) { - w.append(sep).append(Integer.toString((arr[i] + 256) % 256)); - sep = ", "; - if (i % 20 == 0) { - w.append("\n "); - } - } - w.append("\n];\n"); - w.append(code.toString()); - w.close(); - throw new Exception(ex.getMessage() + " file: " + f, ex); - } - - - assertTrue(ret instanceof String, "It is string: " + ret); - - if (!ret1.toString().equals(ret)) { - StringBuilder msg = new StringBuilder("Difference found between "); - msg.append(TestVM.dumpJS(ret1)); - msg.append(" "); - msg.append(TestVM.dumpJS((CharSequence) ret)); - msg.append(" compiled by "); - msg.append(code.toString()); - fail(msg.toString()); - } - } -}