Skip to content

Configuration Parameter details

Claire Le Goues edited this page Jun 4, 2018 · 1 revision
  • negativeTestWeight=2.0 Relative weight given to negative tests for fitness, relative to passing tests. Only necessary for evolutionary algorithms (GenProg, not TrpAutoRepair). Default value is fine.
  • classSourceFolder=/home/ubuntu/defects4j/ExamplesCheckedOut//lang1Buggy/target/classes (default)
  • srcClassPath=/home/ubuntu/defects4j/ExamplesCheckedOut/lang1Buggy/target/classes (default)
  • sourceVersion=1.6 (default)
  • sampleStrategy=variant (default?)
  • popsize=40 As of 9/18/16, CLG modified in codebase to 40, to match C implementation.
  • regenPaths=false Whether to regenerate fault localization paths if present. If path files are present and this is set to false, will just use existing path files and not recompute. If set to true, will run fault localization even if paths are present. If no paths are present, then fault localization will be run regardless of the value of this parameter.
  • posCoverageFile=coverage.path.pos (default)
  • continue=false Continue to search when a repair is found.
  • edits=append;replace;delete (template values would be: FUNREP;PARREP;PARADD;PARREM;EXPREP;EXPADD;EXPREM;NULLCHECK;OBJINIT;RANGECHECK;SIZECHECK;CASTCHECK;LBOUNDSET;UBOUNDSET;OFFBYONE;SEQEXCH;CASTERMUT;CASTEEMUT) This variable can be a subset of all these possible values. Can also assign relative weights with a comma, so "funrep,0.1;parrep,0.2". Without weights, everything is selected uniformly at random. To be consistent w/GenProg4C, should be "append,0.5;delete,0.85; replace,0.75", but I don't know that we really should just move the C values over, especially since deletion is no one's favorite mutation operator.
  • negCoverageFile=coverage.path.neg (default)
  • workingDir=/home/ubuntu/defects4j/ExamplesCheckedOut//lang1Buggy/ (default)
  • skipFailedSanity=true (when to set this true/false ?)
  • sample=1.0 Sample size for test suite sampling. Test suite sampling is a process that is beneficial when you have a large number of positive test cases. When you sample a portion of the test cases, what happens is a percentage of the positive cases (a sample) is ran first. If this sample goes well, then the whole test suite is ran to see if it passes. But if some tests in the sample don't pass, then it continues with the next vaariant. Should be set to 0.1 for GenProg experiments.
  • oracleGenome= OracleGenome is a list of edits; the idea of an "oracle search" is that it's not really a search, just applying a set of edits to the original variant and running test cases on it.
  • justTestingFaultLoc=false (set using cmd line arguments to script runGenProgforBug.sh)
  • crossp=0.5 Crossover probability. Default is fine for genprog; doesn't apply to trp.
  • pMutation=1 Proportional mutation rate. Default is good for GenProg; doesn't apply to TrpAutoRepair.
  • generations=10 Default is fine for GenProg
  • positiveTests=/home/ubuntu/defects4j/ExamplesCheckedOut//lang1Buggy/pos.tests (default)
  • javaVM=/usr/bin/java (default)
  • seed=6 (seed number. default)
  • negativePathWeight=1.0 I don't remember what values TrpAutoRepair uses; probably the default from ICSE 2009 for GenProg, which means this is fine. We've learned better weights for GenProg for C but I have no reason to believe those would work for Java. If we want to use the C weights, should be set to 0.35.
  • compileCommand=/home/ubuntu/defects4j/ExamplesCheckedOut//lang1Buggy/runCompile.sh (default)
  • fixStrategy=classScope Where to look for fix code. Can also be "packageScope" if not enough fix options available at classLevel. We've discussed doing experiments with this.
  • allowCoverageFail=false Default behavior assumes that test cases should pass even when code is executed to compute coverage. Can be set to true if slowdown for coverage instrumentation is so great that tests that normally pass, fail. Default is fine unless we see problems (which we haven't)
  • targetClassName=/home/ubuntu/defects4j/ExamplesCheckedOut//lang1Buggy/bugfiles.txt (default)
  • modelPath=OVERALLModel.txt (default)
  • classTestFolder= (do we need this? CLG says: I think I've tried to remove it and keep needing it for some reason; maybe can be removed.)
  • javaRuntime=java.lang.Runtime@9ebaf65 (default)
  • sanity=no (used to enable/disable sanity checking. set via prepareBug.sh script)
  • positivePathWeight=0.1 See above for RSRepair: I think they just use what we did in ICSE 2009, so 0.1 is correct if we're just reimplementing their approach. We've learned better weights for GenProg for C but I have no reason to believe those would work for Java. If we want to use the C weights, should be set to 0.65.
  • jacocoPath=/home/ubuntu/genprog4java//lib/jacocoagent.jar (default)
  • negativeTests=/home/ubuntu/defects4j/ExamplesCheckedOut//lang1Buggy/neg.tests (default)
  • testClassPath=/home/ubuntu/defects4j/ExamplesCheckedOut/lang1Buggy/target/classes:/home/ubuntu/defects4j/ExamplesCheckedOut/lang1Buggy/target/tests:/home/ubuntu/defects4j/framework/projects/lib/junit-4.11. jar:/home/ubuntu/defects4j/framework/projects/Lang/lib/easymock.jar:/home/ubuntu/defects4j/framework/projects/Lang/lib/commons-io.jar:/home/ubuntu/defects4j/framework/projects/Lang/lib/cglib.jar:/home/ubuntu/defects4j/framework/projects/Lang/lib/asm.jar (default)
  • outputDir=/home/ubuntu/defects4j/ExamplesCheckedOut//lang1Buggy/tmp (default)
  • sourceDir=src/main/java (default)
  • checkSpace=false (debugging, don't worry about it)
  • search=trp (search strategy to be used. trp for TrpAutoRepair and ga for GenProg and PAR)
  • globalExtension=.java (default)
  • maxVariants=400 (applicable for TrpAutoRepair. is this value ok? do we use this for ga? CLG says: no, only applicable for TrpAutoRepair)
  • libs=/home/ubuntu/genprog4java//lib/junittestrunner.jar:/home/ubuntu/genprog4java//lib/commons-io-1.4.jar:/home/ubuntu/genprog4java//lib/junit-4.12.jar:/home/ubuntu/genprog4java//lib/hamcrest-core-1.3.jar
  • crossover=onepoint (default? any other values allowed?)
  • faultLocStrategy=standardPathFile(default) (other possible value: humanInjected; if you pick humanInjected you must provide another parameter:pathToFileHumanInjectedFaultLoc)
  • pathToFileHumanInjectedFaultLoc= (path to a file with the faulty lines of code. This file should have in it a list of faulty locations in the format: path starting in the working directory without initial nor final slash, faulty class name (without extension), faulty line. For example: org/joda/time,FaultyClass,193)
  • model= default or probabilistic
  • modelPath= path where the model is
Clone this wiki locally