package cute; import cute.concolic.Globals; import cute.concolic.input.InputImpl; import cute.gui.JCuteGui; import junit.framework.TestCase; /** * Author: Koushik Sen <ksen@cs.uiuc.edu> */ //@todo array inputs //@todo handling unknown (library) functions with concurrency primitive public class Cute { public static int N; public static final int EXIT_COMPLETE = 2; public static final int EXIT_ASSERT_FAILED = 32; public static final int EXIT_ERROR = 8; public static final int EXIT_RACE = 4; public static final int EXIT_DEADLOCK = 16; public static Input input = new InputImpl(); public static void main(String[] args) { JCuteGui.main(args); } public static void Assume(boolean b){ if(!b) { if(Globals.globals.initialized){ if(Globals.globals.information.brackTrackAt<0) Globals.globals.information.brackTrackAt = Globals.globals.path.size()-1; Thread.currentThread().stop(); } else { System.exit(0); } } } public static void Assert(boolean b){ if(!b) { if(Globals.globals.initialized){ System.err.println("Assertion failed"); Thread.dumpStack(); System.err.println("Exiting with error"); Globals.globals.information.returnVal = Cute.EXIT_ASSERT_FAILED+Globals.globals.information.returnVal; Globals.globals.solver.predict(); } else { TestCase.assertTrue(b); } } } }