changes.txt Author: Christoph Csallner 2005-06-14 started ==================================================================== 0.8.6 + Added option to RaGTestRunner to suppress any exception thrown by a method transitively called by the method under test: -directCallOnly 0.8.4 + Added option to CnC to search for explicitly thrown exceptions: -explicitException 0.8.1 + Use utilMDE/MathMDE from Daikon 4.1.4. The most recent version (Daikon 4.1.6) contains Java 5 constructs, which causes ESC to abort with a parse error. 0.8.1 + Use daikon/Quant.java from Daikon 4.1.4. The most recent version (Daikon 4.1.6) contains Java 5 constructs, which causes ESC to abort with a parse error. 0.8.0 + Cleaned up build.xml. Use libraries like BCEL from the Daikon distribution. 0.7.85 + Prepare a version for experiments: Daikon-CnC vs. Daikon-Eclat. 0.7.67 + Clean up verbose output 0.7.61 + Compile CnC with Java 1.5. Note that the testee still needs to be compiled with Java 1.4. 0.7.58 + Print value parsing warnings if in -counterexample mode + All warnings/logs printed by Out.verbose or Out.debug 0.7.57 + Recompile sources after annotating them, so execution has new line numbers + Print all error messages to System.out to be in sync with ESC's output 0.7.56 + Support JML types bigint and real (like ESC: long and double) [groovy-cnc-0.7.56-2005-09-13-1626-no-more-parse-errors.zip] 0.7.54 + Better reporting of exceptions thrown by parse actions 0.7.53 + Added to syntax: completed array construction constructs + No more syntax errors on Groovy subject [groovy-cnc-0.7.53-2005-09-13-1018-no-more-syntax-errors.zip] 0.7.52 + Added to syntax: (+ |size:199.8| intLast 1) + Less redundancy in debug output (-counterexample) 0.7.51 + Added to syntax: (is (_array |T_java.lang.Object|) T_double) + More liberal definition of IDENTESC 0.7.43 Fix parse errors: + Reflected in ParseFct1.getCreateSpecializeParam that Class[] is a subtype of Object[] in ESC/Java. I assume (A <: B) ==> (A[] <: B[]) + Added |getClass#| as a synonym for typeof (within our constraint solving). + Added nested typeof. 0.7.42 + FilteringTestCase.dispatchException uses PreciseCallStack (which uses BCEL) to map stack trace information to a precise method signature. 0.7.41 + AnnotateWeakerVisitor adds methods and constructors that do not have params to the list of the methods with preconditions. 0.7.40 + FilteringTestCase.dispatchException bypasses JCrasher's exception heuristic if the method called by the test case has a Daikon-inferred precondition. 0.7.39 + AnnotateWeakerVisitor creates a list of methods that have a precondition 0.7.20 + Moved package-name stripping into the plan hierarchy 0.7.17 + Refactored edu.gatech.cc.jcrasher.generator.CodeWriterImpl to not import junit packages 0.7.16 + Removed mentionings of current package name from test cases in edu.gatech.cc.jcrasher.plans.blocks.BlockImpl.toString() 0.7.10 + Moved exception-trimming to edu.gatech.cc.junit.framework.GroupedTestFailure.trace() 0.7.9 + More descriptive summary output in edu.gatech.cc.junit.textui.RaGTestRunner + Strip last five lines from exception output in RaGTestRunner 0.7.8 + Annotate daikon.Quant.size(Collection) as well 0.7.0 + Annotate daikon.Quant.size with JML specification: daikon.VarInfoName.SizeOf.java_family_impl(..) inserts ``Quant.size(..)'' 0.6.47 + Preset an empty array and null for each array type 0.6.46 + Prefer chains that do not have any null over chains that use null over null 0.6.45 + Pass info whether null is allowed recursively through methods: edu.gatech.cc.jcrasher.plans.compute.TypeNeededNode.TypeNeededNode(..) 0.6.43 + Removed some seemingly redundant plans from PresetPlans + Added String for Comparable in PresetPlans 0.6.42 + Added new Vector(), new Hashtable() to PresetPlans + edu.gatech.cc.cnc.Main.MAX_PLAN_RECURSION = 1 Otherwise too many confusing method calls 0.6.41 + Moved JCrasher's preset plans to edu.gatech.cc.jcrasher.plans.PresetPlans + Added new Object(), Object.class to PresetPlans 0.6.40 + edu.gatech.cc.jcrasher.plans.PlanForMethod: added outer () for: (new Victim()) + Object.class as default plan for Class. 0.6.38 + edu.gatech.cc.cnc.Main.MAX_PLAN_RECURSION = 2 Should give us less NPE while creating the needed instances 0.6.37 + Use new Object() in 80%, null in 20% of cases where Object required 0.6.33 + --ppt-select-pattern for Chicory and Daikon 0.6.32 + Split daikon.analyze into Chicory and Daikon task 0.6.31 + Made execution directory of inferee configurable via build.xml + Execute JUnit only if CnC has generated test cases 0.6.30 + Ignore exit(1) of JUnit in daikon/Chicory + Invoke target java runtime with 256 MB instead of 128 MB in daikon/Chicory 0.6.27 + Added edu/gatech/cc/junit/CreateJUnitAll, which creates a JUnitAll.java calling all test suites found for the project in the file system. 0.6.25 + Added a generic test-suite that collects all compiled Test classes: edu/gatech/cc/junit/CollectingTestSuite 0.6.24 + Separated generated binaries from testee binaries 0.6.20 + Added manifest from Daikon 0.6.19 + Daikon 4.1.4, which fixes daikon.tools.jtb.AnnotateVisitor: Assignable in pure function daikon.tools.jtb.Ast: Annotation within statement --std-vis added --premain added 0.6.13 + Use BCEL from Daikon distribution as Daikon requires Java 1.5 0.6.8 + Support annotation of mutliple testees + Moved compilation from testee's build.xml tasks to use.xml 0.6.7 + Removed buggy JDK specifications: java/util/SortedMap, java/net/URL 0.6.4 + Disabled all invariants that do not have a JML spec: Vast majority of Daikon invariants, disabled via daikon-config.txt 0.6.3 + Changed from Eclat's runtime filter to daikon-config.txt + Added following flags to Daikon //reason [Daikon manual section] --omit_from_output 0r //``safe to use the 0 and r omissions'' [4.1] --conf_limit 1 //``Larger values yield stronger filtering'' [4.2] 0.6.2 + Removed pureInJML hack from daikon.tools.jtb.AnnotateVisitor.insertModifies as ESC/Java2 complains about assignable \everything in pure methods. 0.6.1 + Analyze only testee: --ppt-select-pattern=testee (which drastically increased Daikon's efficiency) 0.5.41 + Turn off that ESC warns if Daikon-inferred invariant violated. 0.5.40 + ESC warns if Daikon-inferred invariant violated. + Keep all debug information (removed debuglevel parameters). 0.5.39 + Incorporate Michael Ernst's fix of daikon.tools.jtb.Ast. 0.5.38 + use.xml backs up the annoated sources 0.5.33 + Parameterize how to modify pre- and post-conditions 0.5.32 + Changed to Daikon 4.1.3 0.5.31 + Use Eclat's invariant filter daikon.tools.runtimechecker.InstrumentVisitor 0.5.29 + use.xml calls AnnotateWeaker with --weaken switch 0.5.23 + Contains modified daikon.tools.jtb.AnnotateVisitor (members now protected). 0.5.21 + Use same Daikon command line options as Eclat 1.1 0.5.20 + Optional use of Daikon to infer invariants and annotate the testees (if infer-from-execution set to test suite to be observed). + Archive daikon.out and Daikon-annotated sources. + Delete Daikon-generated files. 0.5.18 + Added ChicoryPremain.jar to classpath in use.xml, why do we need this? 0.5.16 + Package Daikon 4.1.2 0.5.15 + Compile with Java 1.5 0.5.12 + Support: |o:54.65.41%2| 0.5.11 + Fixed constant parsing in edu.gatech.cc.cnc.ParseFct2: r2VarConst, r2ConstVar, r2rAppConst + Refactoring as suggested by Eclipse to eliminate hiding of fields. 0.5.10 + Support: |equals##state#java.lang.Object| 0.5.9 + CnC distribution contains this file. + Corrected to |F_-Infinity| 0.5.8 + Use ESC/Java 2.0a8 + Support: _array, T_real, T_bigint, T_anytype, T_.TYPE, C_ + Default to use ESC's JML specs of the JDK. 0.5.1 + Distribution renamed to cnc-VERSION.jar + build.xml works on a single source tree (eliminated redundant Eclipse tree). 0.4.10 + Used for experiments in final ICSE 2005 paper. + Added license. + Fixed bug in CodeWriterImpl. 0.4.0 + Ant-based, refactored, bugfixes. 0.3.7 + Used for experiments in inital ICSE 2005 submission.