donghwan@donghwan-ELOS:~$ run_evosuite.pl -p Lang -v 1b -n 2 -c strongmutation -o Research/testSuties/ -b 10 -a 10 -D Check out 687b2e62 to /tmp/run_evosuite.pl_5653_1447620308................. OK Cloning into '/tmp/run_evosuite.pl_5653_1447620308'... done. Note: checking out '687b2e62b7c6e81cd9d5c872b7fa9cc8fd3f1509'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at 687b2e6... LANG-747 NumberUtils does not handle Long Hex numbers Init local repository...................................................... OK Reinitialized existing Git repository in /tmp/run_evosuite.pl_5653_1447620308/.git/ Tag post-fix revision...................................................... OK Reinitialized existing Git repository in /tmp/run_evosuite.pl_5653_1447620308/.git/ [detached HEAD e74f2f5] D4J_Lang_1_POST_FIX_REVISION 2 files changed, 4 insertions(+) create mode 100644 .defects4j.config create mode 100644 .gitignore Initialize fixed program version........................................... OK [detached HEAD 129030b] D4J_Lang_1_FIXED_VERSION 9 files changed, 1923 insertions(+), 137 deletions(-) create mode 100644 defects4j.build.properties create mode 100644 src/test/java/org/apache/commons/lang3/RandomStringUtilsTest.java.bak create mode 100644 src/test/java/org/apache/commons/lang3/builder/ToStringBuilderTest.java.bak create mode 100644 src/test/java/org/apache/commons/lang3/time/FastDateFormat_PrinterTest.java.bak create mode 100644 src/test/java/org/apache/commons/lang3/time/FastDatePrinterTest.java.bak Apply patch................................................................ OK Initialize buggy program version........................................... OK [detached HEAD 5411556] D4J_Lang_1_BUGGY_VERSION 2 files changed, 3 insertions(+), 12 deletions(-) Diff 687b2e62:2c454a4c..................................................... OK diff --git a/src/main/java/org/apache/commons/lang3/math/NumberUtils.java b/src/main/java/org/apache/commons/lang3/math/NumberUtils.java index 70b8d64..1e6ccdc 100644 --- a/src/main/java/org/apache/commons/lang3/math/NumberUtils.java +++ b/src/main/java/org/apache/commons/lang3/math/NumberUtils.java @@ -464,20 +464,11 @@ public class NumberUtils { } } if (pfxLen > 0) { // we have a hex number - char firstSigDigit = 0; // strip leading zeroes - for(int i = pfxLen; i < str.length(); i++) { - firstSigDigit = str.charAt(i); - if (firstSigDigit == '0') { // count leading zeroes - pfxLen++; - } else { - break; - } - } final int hexDigits = str.length() - pfxLen; - if (hexDigits > 16 || (hexDigits == 16 && firstSigDigit > '7')) { // too many for Long + if (hexDigits > 16) { // too many for Long return createBigInteger(str); } - if (hexDigits > 8 || (hexDigits == 8 && firstSigDigit > '7')) { // too many for an int + if (hexDigits > 8) { // too many for an int return createLong(str); } return createInteger(str); diff --git a/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java b/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java index bdd2a24..56b0597 100644 --- a/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java @@ -246,43 +246,6 @@ public class NumberUtilsTest { assertEquals(BigDecimal.class, bigNum.getClass()); } - @Test - public void TestLang747() { - assertEquals(Integer.valueOf(0x8000), NumberUtils.createNumber("0x8000")); - assertEquals(Integer.valueOf(0x80000), NumberUtils.createNumber("0x80000")); - assertEquals(Integer.valueOf(0x800000), NumberUtils.createNumber("0x800000")); - assertEquals(Integer.valueOf(0x8000000), NumberUtils.createNumber("0x8000000")); - assertEquals(Integer.valueOf(0x7FFFFFFF), NumberUtils.createNumber("0x7FFFFFFF")); - assertEquals(Long.valueOf(0x80000000L), NumberUtils.createNumber("0x80000000")); - assertEquals(Long.valueOf(0xFFFFFFFFL), NumberUtils.createNumber("0xFFFFFFFF")); - - // Leading zero tests - assertEquals(Integer.valueOf(0x8000000), NumberUtils.createNumber("0x08000000")); - assertEquals(Integer.valueOf(0x7FFFFFFF), NumberUtils.createNumber("0x007FFFFFFF")); - assertEquals(Long.valueOf(0x80000000L), NumberUtils.createNumber("0x080000000")); - assertEquals(Long.valueOf(0xFFFFFFFFL), NumberUtils.createNumber("0x00FFFFFFFF")); - - assertEquals(Long.valueOf(0x800000000L), NumberUtils.createNumber("0x800000000")); - assertEquals(Long.valueOf(0x8000000000L), NumberUtils.createNumber("0x8000000000")); - assertEquals(Long.valueOf(0x80000000000L), NumberUtils.createNumber("0x80000000000")); - assertEquals(Long.valueOf(0x800000000000L), NumberUtils.createNumber("0x800000000000")); - assertEquals(Long.valueOf(0x8000000000000L), NumberUtils.createNumber("0x8000000000000")); - assertEquals(Long.valueOf(0x80000000000000L), NumberUtils.createNumber("0x80000000000000")); - assertEquals(Long.valueOf(0x800000000000000L), NumberUtils.createNumber("0x800000000000000")); - assertEquals(Long.valueOf(0x7FFFFFFFFFFFFFFFL), NumberUtils.createNumber("0x7FFFFFFFFFFFFFFF")); - // N.B. Cannot use a hex constant such as 0x8000000000000000L here as that is interpreted as a negative long - assertEquals(new BigInteger("8000000000000000", 16), NumberUtils.createNumber("0x8000000000000000")); - assertEquals(new BigInteger("FFFFFFFFFFFFFFFF", 16), NumberUtils.createNumber("0xFFFFFFFFFFFFFFFF")); - - // Leading zero tests - assertEquals(Long.valueOf(0x80000000000000L), NumberUtils.createNumber("0x00080000000000000")); - assertEquals(Long.valueOf(0x800000000000000L), NumberUtils.createNumber("0x0800000000000000")); - assertEquals(Long.valueOf(0x7FFFFFFFFFFFFFFFL), NumberUtils.createNumber("0x07FFFFFFFFFFFFFFF")); - // N.B. Cannot use a hex constant such as 0x8000000000000000L here as that is interpreted as a negative long - assertEquals(new BigInteger("8000000000000000", 16), NumberUtils.createNumber("0x00008000000000000000")); - assertEquals(new BigInteger("FFFFFFFFFFFFFFFF", 16), NumberUtils.createNumber("0x0FFFFFFFFFFFFFFFF")); - } - @Test(expected=NumberFormatException.class) // Check that the code fails to create a valid number when preceeded by -- rather than - public void testCreateNumberFailure_1() { Apply patch................................................................ OK Tag pre-fix revision....................................................... OK [detached HEAD 800e901] D4J_Lang_1_PRE_FIX_REVISION 2 files changed, 2 insertions(+), 48 deletions(-) Check out program version: Lang-1b......................................... OK Previous HEAD position was 800e901... D4J_Lang_1_PRE_FIX_REVISION HEAD is now at 5411556... D4J_Lang_1_BUGGY_VERSION Running ant (compile)...................................................... OK Buildfile: /home/donghwan/Research/defects4j/framework/projects/defects4j.build.xml init: [echo] -------- commons-lang3 3.2-SNAPSHOT -------- [mkdir] Created dir: /tmp/run_evosuite.pl_5653_1447620308/target compile: [mkdir] Created dir: /tmp/run_evosuite.pl_5653_1447620308/target/classes [javac] Compiling 108 source files to /tmp/run_evosuite.pl_5653_1447620308/target/classes [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5 [javac] 1 warning BUILD SUCCESSFUL Total time: 3 seconds Running ant (export.cp.compile)............................................ OK Buildfile: /home/donghwan/Research/defects4j/framework/projects/defects4j.build.xml sanity.check: init: [echo] -------- commons-lang3 3.2-SNAPSHOT -------- compile: export.cp.compile: BUILD SUCCESSFUL Total time: 0 seconds Run EvoSuite (strongmutation;/home/donghwan/Research/defects4j/framework/ut OK * EvoSuite * Starting client * Connecting to master process on port 4214 * Analyzing classpath: - /tmp/run_evosuite.pl_5653_1447620308/target/classes * Finished analyzing classpath * Generating tests for class org.apache.commons.lang3.math.NumberUtils * Test criterion: Mutation testing (strong) * Setting up search algorithm for whole suite generation * Total number of test goals: 1053 * Using seed 1447620317145 * Starting evolution * Search finished after 12s and 0 generations, 1517 statements, best individual has fitness 1608.03075882116 * Minimizing result [MASTER] 05:56:07.137 [pool-1-thread-1] WARN TestSuiteMinimizer - Minimization timeout. Roll back to original test suite * Coverage of criterion STRONGMUTATION: 20% * Generated 21 tests with total length 373 * Resulting test suite's coverage: 0% * GA-Budget: - ZeroFitness : 1,608 / 0 - MaxTime : 785 / 10 Finished! - RMIStoppingCondition - ShutdownTestWriter : 0 / 0 * Time spent executing tests: 9047ms * Generating assertions * Resulting test suite's mutation score: 0% (4/1053) * Permissions denied during test execution: - java.lang.RuntimePermission: writeFileDescriptor: 9 [MASTER] 05:58:35.644 [pool-1-thread-3] ERROR TestSuiteGenerator - No Java compiler is available. Are you running with the JDK? * Writing JUnit test cases to evosuite-strongmutation * Done! * Computation finished