/test/kilim/test/TestJSR.java

http://github.com/kilim/kilim · Java · 42 lines · 29 code · 6 blank · 7 comment · 1 complexity · 1380d80f7c1cc34cee0c8e02abb51372 MD5 · raw file

  1. /* Copyright (c) 2006, Sriram Srinivasan
  2. *
  3. * You may distribute this software under the terms of the license
  4. * specified in the file "License"
  5. */
  6. package kilim.test;
  7. import java.util.ArrayList;
  8. import kilim.analysis.BasicBlock;
  9. import kilim.analysis.MethodFlow;
  10. public class TestJSR extends Base {
  11. public void testJSRSizes() throws Exception {
  12. String className = "kilim.test.ex.ExJSR";
  13. try {
  14. Class.forName(className);
  15. } catch (ClassNotFoundException cnfe) {
  16. fail("Please use jasmin to compile " + className);
  17. } catch (VerifyError e) {
  18. fail("Verification error for " + className + ": " + e.getMessage());
  19. }
  20. cache(className);
  21. MethodFlow flow = getFlow("simpleJSR");
  22. assertEquals(3, flow.getBasicBlocks().size());
  23. flow = getFlow("pausableJSR1");
  24. // System.out.println(flow.getBasicBlocks());
  25. assertEquals(5, flow.getBasicBlocks().size());
  26. flow = getFlow("pausableJSR2");
  27. ArrayList<BasicBlock> bbs = flow.getBasicBlocks();
  28. assertEquals(9, bbs.size());
  29. // make sure the blocks are unique
  30. int flag = 1 << 12;
  31. for (BasicBlock bb: bbs) {
  32. assertFalse("BasicBlock list contains duplicates", bb.hasFlag(flag));
  33. bb.setFlag(flag);
  34. }
  35. }
  36. }