1 20 package gov.nasa.jpf.embedded; 21 22 import gov.nasa.jpf.JPF; 23 import gov.nasa.jpf.Config; 24 import gov.nasa.jpf.Transition; 25 import gov.nasa.jpf.SearchListener; 26 import gov.nasa.jpf.Search; 27 28 29 34 public class TestSearchListener implements SearchListener { 35 36 String padLeft (int n, int len) { 37 String s = Integer.toString(n); 38 39 if (s.length() >= len) { 40 return s; 41 } else { 42 return " ".substring(0, 6 - s.length()) + s; 43 } 44 } 45 46 void log (String prefix, Search search) { 47 Transition trans = search.getTransition(); 48 int depth = search.getSearchDepth(); 49 50 if (trans != null) { 51 System.out.print(prefix); 52 53 System.out.print('['); 54 System.out.print(trans.getThread()); 55 System.out.print("] "); 56 57 System.out.print( padLeft( search.getStateNumber(), 6)); 58 System.out.print( padLeft( depth, 4)); 59 60 61 System.out.print(" : "); 62 System.out.println(trans.getLabel().trim()); 63 } 64 } 65 66 public void stateRestored(Search search) { 67 log( "! ", search); 68 } 69 70 public void stateBacktracked(Search search) { 71 log( "< ", search); 72 } 73 74 public void searchStarted(Search search) { 75 System.out.println("-------------------- search started"); 76 } 77 78 public void searchFinished(Search search) { 79 System.out.println("-------------------- search finished"); 80 } 81 82 public void propertyViolated(Search search) { 83 } 85 86 public void searchConstraintHit(Search search) { 87 } 89 90 public void stateAdvanced(Search search) { 91 log( search.hasNextState() ? "> " : "* ", search); 92 } 93 94 public void stateProcessed (Search search) { 95 log( ".", search); 96 } 97 98 void filterArgs (String [] args) { 99 } 101 102 public static void main (String [] args) { 103 TestSearchListener listener = new TestSearchListener(); 104 listener.filterArgs(args); 105 106 Config conf = JPF.createConfig(args); 107 JPF jpf = new JPF(conf); 109 jpf.getSearch().addListener(listener); 110 111 System.out.println("---------------- starting JPF on class: " + args[0]); 114 jpf.run(); 115 System.out.println("---------------- JPF terminated"); 116 } 117 } 118 | Popular Tags |