2 * Back 2 Browser Bytecode Translator
3 * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, version 2 of the License.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. Look for COPYING file in the top folder.
16 * If not, see http://opensource.org/licenses/GPL-2.0.
19 * To change this license header, choose License Headers in Project Properties.
20 * To change this template file, choose Tools | Templates
21 * and open the template in the editor.
24 package org.apidesign.vm4brwsr;
26 import static org.testng.Assert.assertEquals;
27 import static org.testng.Assert.assertTrue;
28 import org.testng.annotations.AfterClass;
29 import org.testng.annotations.BeforeClass;
30 import org.testng.annotations.Test;
34 * @author Jaroslav Tulach <jtulach@netbeans.org>
36 public class SizeOfAMethodTest {
37 private static TestVM code;
39 @Test public void sumXYShouldBeSmall() {
40 String s = code.codeSeq().toString();
41 int beg = s.indexOf("c.sum__III");
42 int end = s.indexOf("c.sum__III.access");
44 assertTrue(beg > 0, "Found sum method in " + code.toString());
45 assertTrue(beg < end, "Found end of sum method in " + code.toString());
47 String method = s.substring(beg, end);
49 assertEquals(method.indexOf("st"), -1, "There should be no stack operations:\n" + method);
54 public static void compileTheCode() throws Exception {
55 StringBuilder sb = new StringBuilder();
56 code = TestVM.compileClass(sb, "org/apidesign/vm4brwsr/StaticMethod");
59 public static void releaseTheCode() {