51 public static Option<Boolean> disableFinalMethods = null; 52 public static Option<Boolean> disableFinalVariables = null; 53 public static Option<Boolean> disableIf = null; 54 public static Option<Boolean> disableSwitch = null; 55 public static Option<Boolean> disableWhile = null; 56 public static Option<Boolean> disableDoWhile = null; 57 public static Option<Boolean> disableFor = null; 58 public static Option<Boolean> disableFunctions = null; 59 public static Option<Boolean> disableVarsInBlock = null; 60 public static Option<Boolean> disableExprInInit = null; 61 public static Option<Boolean> disableExternalSymbols = null; 62 public static Option<String> addExternalSymbols = null; 63 public static Option<Boolean> disableInheritance = null; 64 public static Option<Boolean> disableDowncasts = null; 65 public static Option<Boolean> disableStatic = null; 66 public static Option<Boolean> disableInterfaces = null; 67 public static Option<Boolean> disableClasses = null; 68 public static Option<Boolean> disableNestedBlocks = null; 69 public static Option<Boolean> disableArrays = null; 70 public static Option<Boolean> enableFinalizers = null; 71 // workaraound: to reduce chance throwing ArrayIndexOutOfBoundsException 72 public static Option<Integer> chanceExpressionIndex = null; 73 public static Option<String> testbaseDir = null; 74 public static Option<Integer> numberOfTests = null; 75 public static Option<String> seed = null; 76 public static Option<String> classesFile = null; 77 public static Option<String> excludeMethodsFile = null; 78 79 public static void register(OptionResolver optionResolver) { 80 productionLimit = optionResolver.addIntegerOption('l', "production-limit", 100, "Limit on steps in the production of an expression"); 81 dataMemberLimit = optionResolver.addIntegerOption('v', "data-member-limit", 10, "Upper limit on data members"); 82 statementLimit = optionResolver.addIntegerOption('s', "statement-limit", 30, "Upper limit on statements in function"); 83 testStatementLimit = optionResolver.addIntegerOption('e', "test-statement-limit", 300, "Upper limit on statements in test() function"); 84 operatorLimit = optionResolver.addIntegerOption('o', "operator-limit", 50, "Upper limit on operators in a statement"); 85 complexityLimit = optionResolver.addLongOption('x', "complexity-limit", 10000000, "Upper limit on complexity"); 86 memberFunctionsLimit = optionResolver.addIntegerOption('m', "member-functions-limit", 15, "Upper limit on member functions"); 87 memberFunctionsArgLimit = optionResolver.addIntegerOption('a', "member-functions-arg-limit", 5, "Upper limit on the number of member function args"); 88 stringLiteralSizeLimit = optionResolver.addIntegerOption("string-literal-size-limit", 10, "Upper limit on the number of chars in string literal"); 89 classesLimit = optionResolver.addIntegerOption('c', "classes-limit", 12, "Upper limit on the number of classes"); 90 implementationLimit = optionResolver.addIntegerOption('i', "implementation-limit", 3, "Upper limit on a number of interfaces a class can implement"); 91 dimensionsLimit = optionResolver.addIntegerOption('d', "dimensions-limit", 3, "Upper limit on array dimensions"); 92 floatingPointPrecision = optionResolver.addIntegerOption("fp-precision", 8, "A non-negative decimal integer used to restrict the number of digits after the decimal separator"); 93 minCfgDepth = optionResolver.addIntegerOption("min-cfg-depth", 2, "A non-negative decimal integer used to restrict the lower bound of depth of control flow graph"); 94 maxCfgDepth = optionResolver.addIntegerOption("max-cfg-depth", 3, "A non-negative decimal integer used to restrict the upper bound of depth of control flow graph"); 95 enableStrictFP = optionResolver.addBooleanOption("enable-strict-fp", "Add strictfp attribute to test class"); 100 disableFinalMethods = optionResolver.addBooleanOption("disable-final-methods", "Don\'t use final methods"); 101 disableFinalVariables = optionResolver.addBooleanOption("disable-final-variabless", "Don\'t use final variables"); 102 disableIf = optionResolver.addBooleanOption("disable-if", "Don\'t use conditionals"); 103 disableSwitch = optionResolver.addBooleanOption("disable-switch", "Don\'t use switch"); 104 disableWhile = optionResolver.addBooleanOption("disable-while", "Don\'t use while"); 105 disableDoWhile = optionResolver.addBooleanOption("disable-do-while", "Don\'t use do-while"); 106 disableFor = optionResolver.addBooleanOption("disable-for", "Don\'t use for"); 107 disableFunctions = optionResolver.addBooleanOption("disable-functions", "Don\'t use functions"); 108 disableVarsInBlock = optionResolver.addBooleanOption("disable-vars-in-block", "Don\'t generate variables in blocks"); 109 disableExprInInit = optionResolver.addBooleanOption("disable-expr-in-init", "Don\'t use complex expressions in variable initialization"); 110 disableExternalSymbols = optionResolver.addBooleanOption("disable-external-symbols", "Don\'t use external symbols"); 111 addExternalSymbols = optionResolver.addStringOption("add-external-symbols", "all", "Add symbols for listed classes (comma-separated list)"); 112 disableInheritance = optionResolver.addBooleanOption("disable-inheritance", "Disable inheritance"); 113 disableDowncasts = optionResolver.addBooleanOption("disable-downcasts", "Disable downcasting of objects"); 114 disableStatic = optionResolver.addBooleanOption("disable-static", "Disable generation of static objects and functions"); 115 disableInterfaces = optionResolver.addBooleanOption("disable-interfaces", "Disable generation of interfaces"); 116 disableClasses = optionResolver.addBooleanOption("disable-classes", "Disable generation of classes"); 117 disableNestedBlocks = optionResolver.addBooleanOption("disable-nested-blocks", "Disable generation of nested blocks"); 118 disableArrays = optionResolver.addBooleanOption("disable-arrays", "Disable generation of arrays"); 119 enableFinalizers = optionResolver.addBooleanOption("enable-finalizers", "Enable finalizers (for stress testing)"); 120 chanceExpressionIndex = optionResolver.addIntegerOption("chance-expression-index", 0, "A non negative decimal integer used to restrict chane of generating expression in array index while creating or accessing by index"); 121 testbaseDir = optionResolver.addStringOption("testbase-dir", ".", "Testbase dir"); 122 numberOfTests = optionResolver.addIntegerOption('n', "number-of-tests", 0, "Number of test classes to generate"); 123 seed = optionResolver.addStringOption("seed", "", "Random seed"); 124 classesFile = optionResolver.addStringOption('f', "classes-file", "", "File to read classes from"); 125 excludeMethodsFile = optionResolver.addStringOption('r', "exclude-methods-file", "", "File to read excluded methods from"); 126 } 127 } | 51 public static Option<Boolean> disableFinalMethods = null; 52 public static Option<Boolean> disableFinalVariables = null; 53 public static Option<Boolean> disableIf = null; 54 public static Option<Boolean> disableSwitch = null; 55 public static Option<Boolean> disableWhile = null; 56 public static Option<Boolean> disableDoWhile = null; 57 public static Option<Boolean> disableFor = null; 58 public static Option<Boolean> disableFunctions = null; 59 public static Option<Boolean> disableVarsInBlock = null; 60 public static Option<Boolean> disableExprInInit = null; 61 public static Option<Boolean> disableExternalSymbols = null; 62 public static Option<String> addExternalSymbols = null; 63 public static Option<Boolean> disableInheritance = null; 64 public static Option<Boolean> disableDowncasts = null; 65 public static Option<Boolean> disableStatic = null; 66 public static Option<Boolean> disableInterfaces = null; 67 public static Option<Boolean> disableClasses = null; 68 public static Option<Boolean> disableNestedBlocks = null; 69 public static Option<Boolean> disableArrays = null; 70 public static Option<Boolean> enableFinalizers = null; 71 public static Option<Boolean> disableBytecodeGeneration = null; 72 public static Option<Boolean> disableJavacodeGeneration = null; 73 // workaraound: to reduce chance throwing ArrayIndexOutOfBoundsException 74 public static Option<Integer> chanceExpressionIndex = null; 75 public static Option<String> testbaseDir = null; 76 public static Option<Integer> numberOfTests = null; 77 public static Option<String> seed = null; 78 public static Option<Long> specificSeed = null; 79 public static Option<String> classesFile = null; 80 public static Option<String> excludeMethodsFile = null; 81 82 public static void register(OptionResolver optionResolver) { 83 productionLimit = optionResolver.addIntegerOption('l', "production-limit", 100, "Limit on steps in the production of an expression"); 84 dataMemberLimit = optionResolver.addIntegerOption('v', "data-member-limit", 10, "Upper limit on data members"); 85 statementLimit = optionResolver.addIntegerOption('s', "statement-limit", 30, "Upper limit on statements in function"); 86 testStatementLimit = optionResolver.addIntegerOption('e', "test-statement-limit", 300, "Upper limit on statements in test() function"); 87 operatorLimit = optionResolver.addIntegerOption('o', "operator-limit", 50, "Upper limit on operators in a statement"); 88 complexityLimit = optionResolver.addLongOption('x', "complexity-limit", 10000000, "Upper limit on complexity"); 89 memberFunctionsLimit = optionResolver.addIntegerOption('m', "member-functions-limit", 15, "Upper limit on member functions"); 90 memberFunctionsArgLimit = optionResolver.addIntegerOption('a', "member-functions-arg-limit", 5, "Upper limit on the number of member function args"); 91 stringLiteralSizeLimit = optionResolver.addIntegerOption("string-literal-size-limit", 10, "Upper limit on the number of chars in string literal"); 92 classesLimit = optionResolver.addIntegerOption('c', "classes-limit", 12, "Upper limit on the number of classes"); 93 implementationLimit = optionResolver.addIntegerOption('i', "implementation-limit", 3, "Upper limit on a number of interfaces a class can implement"); 94 dimensionsLimit = optionResolver.addIntegerOption('d', "dimensions-limit", 3, "Upper limit on array dimensions"); 95 floatingPointPrecision = optionResolver.addIntegerOption("fp-precision", 8, "A non-negative decimal integer used to restrict the number of digits after the decimal separator"); 96 minCfgDepth = optionResolver.addIntegerOption("min-cfg-depth", 2, "A non-negative decimal integer used to restrict the lower bound of depth of control flow graph"); 97 maxCfgDepth = optionResolver.addIntegerOption("max-cfg-depth", 3, "A non-negative decimal integer used to restrict the upper bound of depth of control flow graph"); 98 enableStrictFP = optionResolver.addBooleanOption("enable-strict-fp", "Add strictfp attribute to test class"); 103 disableFinalMethods = optionResolver.addBooleanOption("disable-final-methods", "Don\'t use final methods"); 104 disableFinalVariables = optionResolver.addBooleanOption("disable-final-variabless", "Don\'t use final variables"); 105 disableIf = optionResolver.addBooleanOption("disable-if", "Don\'t use conditionals"); 106 disableSwitch = optionResolver.addBooleanOption("disable-switch", "Don\'t use switch"); 107 disableWhile = optionResolver.addBooleanOption("disable-while", "Don\'t use while"); 108 disableDoWhile = optionResolver.addBooleanOption("disable-do-while", "Don\'t use do-while"); 109 disableFor = optionResolver.addBooleanOption("disable-for", "Don\'t use for"); 110 disableFunctions = optionResolver.addBooleanOption("disable-functions", "Don\'t use functions"); 111 disableVarsInBlock = optionResolver.addBooleanOption("disable-vars-in-block", "Don\'t generate variables in blocks"); 112 disableExprInInit = optionResolver.addBooleanOption("disable-expr-in-init", "Don\'t use complex expressions in variable initialization"); 113 disableExternalSymbols = optionResolver.addBooleanOption("disable-external-symbols", "Don\'t use external symbols"); 114 addExternalSymbols = optionResolver.addStringOption("add-external-symbols", "all", "Add symbols for listed classes (comma-separated list)"); 115 disableInheritance = optionResolver.addBooleanOption("disable-inheritance", "Disable inheritance"); 116 disableDowncasts = optionResolver.addBooleanOption("disable-downcasts", "Disable downcasting of objects"); 117 disableStatic = optionResolver.addBooleanOption("disable-static", "Disable generation of static objects and functions"); 118 disableInterfaces = optionResolver.addBooleanOption("disable-interfaces", "Disable generation of interfaces"); 119 disableClasses = optionResolver.addBooleanOption("disable-classes", "Disable generation of classes"); 120 disableNestedBlocks = optionResolver.addBooleanOption("disable-nested-blocks", "Disable generation of nested blocks"); 121 disableArrays = optionResolver.addBooleanOption("disable-arrays", "Disable generation of arrays"); 122 enableFinalizers = optionResolver.addBooleanOption("enable-finalizers", "Enable finalizers (for stress testing)"); 123 disableBytecodeGeneration = optionResolver.addBooleanOption("disable-bytecode-generation", "Disable generation of bytecode output"); 124 disableJavacodeGeneration = optionResolver.addBooleanOption("disable-javacode-generation", "Disable generation of java source code output"); 125 chanceExpressionIndex = optionResolver.addIntegerOption("chance-expression-index", 0, "A non negative decimal integer used to restrict chane of generating expression in array index while creating or accessing by index"); 126 testbaseDir = optionResolver.addStringOption("testbase-dir", ".", "Testbase dir"); 127 numberOfTests = optionResolver.addIntegerOption('n', "number-of-tests", 0, "Number of test classes to generate"); 128 seed = optionResolver.addStringOption("seed", "", "Random seed"); 129 specificSeed = optionResolver.addLongOption('z', "specificSeed", 0L, "A seed to be set for specific test generation(regular seed still needed for initialization)"); 130 classesFile = optionResolver.addStringOption('f', "classes-file", "conf/classes.lst", "File to read classes from"); 131 excludeMethodsFile = optionResolver.addStringOption('r', "exclude-methods-file", "conf/exclude.methods.lst", "File to read excluded methods from"); 132 } 133 } |