+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dhell; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +// ********************************************************************** |
+ +4 + | ++ + + + + | +import eu.stamp_project.examples.dhell.MyStorage; |
+ +5 + | ++ + + + + | +import eu.stamp_project.examples.dhell.MyLogger; |
+ +6 + | ++ + + + + | +|
+ +7 + | ++ + + + + | +// ********************************************************************** |
+ +8 + | ++ + + + + | +public class HelloApp |
+ +9 + | ++ + + + + | +{ |
+ +10 + | ++ + + + + | + // ********************************************************************** |
+ +11 + | ++ + + + + | + // public |
+ +12 + | ++ + + + + | + // ********************************************************************** |
+ +13 + | ++ + + + + | + // ******** methods |
+ +14 + | ++ + + + + | +|
+ +15 + | ++ + + + + | + // ********************************************************************** |
+ +16 + | ++ + + + + | + public HelloApp() |
+ +17 + | ++ + + + + | + { |
+ +18 + | ++ + + + + | + String methodName = "HelloApp"; |
+ +19 + | ++ + + + + | + MyLogger.Instance.entering(getClass().getName(), methodName); |
+ +20 + | ++ + + + + | +|
+ +21 + | ++ + + + + | + MyPrintCount = 1; |
+ +22 + | ++ + + + + | + MyTraces = null; |
+ +23 + | ++ + + + + | + MyTracesName = "myHelloApp.traces"; |
+ +24 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +25 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +26 + | ++ + + + + | +|
+ +27 + | ++ + + + + | + MyLogger.Instance.info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +28 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +29 + | ++ + + + + | +|
+ +30 + | ++ + + + + | + MyLogger.Instance.exiting(getClass().getName(), methodName); |
+ +31 + | ++ + + + + | + } |
+ +32 + | ++ + + + + | +|
+ +33 + | ++ + + + + | + // ********************************************************************** |
+ +34 + | ++ + + + + | + public HelloApp(int printCount) |
+ +35 + | ++ + + + + | + { |
+ +36 + | ++ + + + + | + String methodName = "HelloApp_int"; |
+ +37 + | ++ + + + + | + MyLogger.Instance.entering(getClass().getName(), methodName); |
+ +38 + | ++ + + + + | +|
+ +39 + | ++ + + + + | + MyPrintCount = printCount; |
+ +40 + | ++ + + + + | + MyTraces = null; |
+ +41 + | ++ + + + + | + MyTracesName = "myHelloApp.traces"; |
+ +42 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +43 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +44 + | ++ + + + + | +|
+ +45 + | ++ + + + + | + MyLogger.Instance.info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +46 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +47 + | ++ + + + + | +|
+ +48 + | ++ + + + + | + MyLogger.Instance.exiting(getClass().getName(), methodName); |
+ +49 + | ++ + + + + | + } |
+ +50 + | ++ + + + + | +|
+ +51 + | ++ + + + + | + // ********************************************************************** |
+ +52 + | ++ + + + + | + public HelloApp(String tracesName) |
+ +53 + | ++ + + + + | + { |
+ +54 + | ++ + + + + | + String methodName = "HelloApp_String"; |
+ +55 + | ++ + + + + | + MyLogger.Instance.entering(getClass().getName(), methodName); |
+ +56 + | ++ + + + + | +|
+ +57 + | ++ + + + + | + MyPrintCount = 1; |
+ +58 + | ++ + + + + | + MyTraces = null; |
+ +59 + | ++ + + + + | + MyTracesName = tracesName; |
+ +60 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +61 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +62 + | ++ + + + + | +|
+ +63 + | ++ + + + + | + MyLogger.Instance.info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +64 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +65 + | ++ + + + + | +|
+ +66 + | ++ + + + + | + MyLogger.Instance.exiting(getClass().getName(), methodName); |
+ +67 + | ++ + + + + | + } |
+ +68 + | ++ + + + + | +|
+ +69 + | ++ + + + + | + // ********************************************************************** |
+ +70 + | ++ + + + + | + public HelloApp(int printCount, String tracesName) |
+ +71 + | ++ + + + + | + { |
+ +72 + | ++ + + + + | + String methodName = "HelloApp_int_String"; |
+ +73 + | ++ + + + + | + MyLogger.Instance.entering(getClass().getName(), methodName); |
+ +74 + | ++ + + + + | +|
+ +75 + | ++ + + + + | + MyPrintCount = printCount; |
+ +76 + | ++ + + + + | + MyTraces = null; |
+ +77 + | ++ + + + + | + MyTracesName = tracesName; |
+ +78 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +79 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +80 + | ++ + + + + | +|
+ +81 + | ++ + + + + | + MyLogger.Instance.info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +82 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +83 + | ++ + + + + | +|
+ +84 + | ++ + + + + | + MyLogger.Instance.exiting(getClass().getName(), methodName); |
+ +85 + | ++ + + + + | + } |
+ +86 + | ++ + + + + | +|
+ +87 + | ++ + + + + | + // ********************************************************************** |
+ +88 + | ++ + + + + | + public void run() |
+ +89 + | ++ + + + + | + { |
+ +90 + | ++ + + + + | + String methodName = "run"; |
+ +91 + | ++ + + + + | + MyLogger.Instance.entering(getClass().getName(), methodName); |
+ +92 + | ++ + + + + | +|
+ +93 + | ++ + + + + | + String indent = "-"; |
+ +94 + | ++ + + + + | + String countString = Integer.toString(MyPrintCount); |
+ +95 + | ++ + + + + | +|
+ +96 + | +
+
+2
+
+1. run : changed conditional boundary → SURVIVED +2. run : negated conditional → KILLED + + + |
+ if (MyTracesName.length() > 0) |
+ +97 + | ++ + + + + | + { |
+ +98 + | ++ + + + + | + MyTraces = new MyStorage(MyTracesName); |
+ +99 + | ++ + + + + | + } |
+ +100 + | ++ + + + + | + else |
+ +101 + | ++ + + + + | + { |
+ +102 + | ++ + + + + | + MyTraces = new MyStorage(); |
+ +103 + | ++ + + + + | + } |
+ +104 + | ++ + + + + | +|
+ +105 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dhell/MyStorage::addData → KILLED + + + |
+ MyTraces.addData(countString); |
+ +106 + | ++ + + + + | +|
+ +107 + | +
+
+3
+
+1. run : Changed increment from 1 to -1 → TIMED_OUT +2. run : negated conditional → TIMED_OUT +3. run : changed conditional boundary → KILLED + + + |
+ for (int i = 1; i < MyPrintCount; i++) |
+ +108 + | ++ + + + + | + { |
+ +109 + | ++ + + + + | + indent = indent + "-"; |
+ +110 + | ++ + + + + | + } |
+ +111 + | ++ + + + + | + MyLogger.Instance.fine("indent = '" + indent + "'"); |
+ +112 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dhell/HelloApp::myPrint → KILLED + + + |
+ myPrint(indent); |
+ +113 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dhell/HelloApp::myPrint → KILLED + + + |
+ myPrint(indent + " Hello World !"); |
+ +114 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dhell/HelloApp::myPrint → SURVIVED + + + |
+ myPrint(indent); |
+ +115 + | ++ + + + + | +|
+ +116 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dhell/MyStorage::saveData → KILLED + + + |
+ MyTraces.saveData(); |
+ +117 + | ++ + + + + | +|
+ +118 + | ++ + + + + | + MyLogger.Instance.exiting(getClass().getName(), methodName); |
+ +119 + | ++ + + + + | + } |
+ +120 + | ++ + + + + | +|
+ +121 + | ++ + + + + | + // ********************************************************************** |
+ +122 + | ++ + + + + | + public void computeMyUselessResult() |
+ +123 + | ++ + + + + | + { |
+ +124 + | ++ + + + + | + // PI = 3,141 592 653 589 793 - PI (10 chiffres exactes) ~ 104348 / 33215 |
+ +125 + | ++ + + + + | + // PI = 3,1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 |
+ +126 + | ++ + + + + | + // 5923078164 0628620899 8628034825 3421170679 |
+ +127 + | ++ + + + + | + // PHI = (1 + rootsquare(5)) / 2 = 1,618 033 988 7 |
+ +128 + | ++ + + + + | + // PHI = 1,618 033 988 749 894 848 204 586 834 365 638 117 720 309 179 805 |
+ +129 + | ++ + + + + | + // 762 862 135 448 622 705 260 462 189 024 497 072 072 041 |
+ +130 + | ++ + + + + | + } |
+ +131 + | ++ + + + + | +|
+ +132 + | ++ + + + + | + // ********************************************************************** |
+ +133 + | ++ + + + + | + // ******** attributes |
+ +134 + | ++ + + + + | +|
+ +135 + | ++ + + + + | + // ********************************************************************** |
+ +136 + | ++ + + + + | + public int getMyPrintCount() |
+ +137 + | ++ + + + + | + { |
+ +138 + | +
+
+1
+
+1. getMyPrintCount : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(MyPrintCount); |
+ +139 + | ++ + + + + | + } |
+ +140 + | ++ + + + + | +|
+ +141 + | ++ + + + + | + // ********************************************************************** |
+ +142 + | ++ + + + + | + public String getMyTracesName() |
+ +143 + | ++ + + + + | + { |
+ +144 + | +
+
+1
+
+1. getMyTracesName : mutated return of Object value for eu/stamp_project/examples/dhell/HelloApp::getMyTracesName to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(MyTracesName); |
+ +145 + | ++ + + + + | + } |
+ +146 + | ++ + + + + | +|
+ +147 + | ++ + + + + | + // ********************************************************************** |
+ +148 + | ++ + + + + | + public boolean getShouldPrintOnStdout() |
+ +149 + | ++ + + + + | + { |
+ +150 + | +
+
+1
+
+1. getShouldPrintOnStdout : replaced return of integer sized value with (x == 0 ? 1 : 0) → SURVIVED + + + |
+ return(ShouldPrintOnStdout); |
+ +151 + | ++ + + + + | + } |
+ +152 + | ++ + + + + | +|
+ +153 + | ++ + + + + | + // ********** |
+ +154 + | ++ + + + + | + public void setShouldPrintOnStdout(boolean value) |
+ +155 + | ++ + + + + | + { |
+ +156 + | ++ + + + + | + ShouldPrintOnStdout = value; |
+ +157 + | ++ + + + + | + } |
+ +158 + | ++ + + + + | +|
+ +159 + | ++ + + + + | + // ********************************************************************** |
+ +160 + | ++ + + + + | + // ******** associations |
+ +161 + | ++ + + + + | +|
+ +162 + | ++ + + + + | + // ********************************************************************** |
+ +163 + | ++ + + + + | + public int cardMyTraces() |
+ +164 + | ++ + + + + | + { |
+ +165 + | ++ + + + + | + int theCard = 0; |
+ +166 + | ++ + + + + | +|
+ +167 + | +
+
+1
+
+1. cardMyTraces : negated conditional → KILLED + + + |
+ if (MyTraces != null) |
+ +168 + | ++ + + + + | + { |
+ +169 + | ++ + + + + | + theCard = 1; |
+ +170 + | ++ + + + + | + } |
+ +171 + | ++ + + + + | +|
+ +172 + | +
+
+1
+
+1. cardMyTraces : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(theCard); |
+ +173 + | ++ + + + + | + } |
+ +174 + | ++ + + + + | +|
+ +175 + | ++ + + + + | + // ********** |
+ +176 + | ++ + + + + | + public MyStorage getMyTraces() |
+ +177 + | ++ + + + + | + { |
+ +178 + | +
+
+1
+
+1. getMyTraces : mutated return of Object value for eu/stamp_project/examples/dhell/HelloApp::getMyTraces to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(MyTraces); |
+ +179 + | ++ + + + + | + } |
+ +180 + | ++ + + + + | +|
+ +181 + | ++ + + + + | + // ********************************************************************** |
+ +182 + | ++ + + + + | + // protected |
+ +183 + | ++ + + + + | + // ********************************************************************** |
+ +184 + | ++ + + + + | + // ******** methods |
+ +185 + | ++ + + + + | +|
+ +186 + | ++ + + + + | + // ********************************************************************** |
+ +187 + | ++ + + + + | + protected void myPrint(String message) |
+ +188 + | ++ + + + + | + { |
+ +189 + | +
+
+1
+
+1. myPrint : negated conditional → SURVIVED + + + |
+ if (getShouldPrintOnStdout()) |
+ +190 + | ++ + + + + | + { |
+ +191 + | +
+
+1
+
+1. myPrint : removed call to java/io/PrintStream::println → SURVIVED + + + |
+ System.out.println(message); |
+ +192 + | ++ + + + + | + } |
+ +193 + | +
+
+1
+
+1. myPrint : removed call to eu/stamp_project/examples/dhell/MyStorage::addData → KILLED + + + |
+ MyTraces.addData(message); |
+ +194 + | ++ + + + + | + } |
+ +195 + | ++ + + + + | +|
+ +196 + | ++ + + + + | + // ********************************************************************** |
+ +197 + | ++ + + + + | + // private |
+ +198 + | ++ + + + + | + // ********************************************************************** |
+ +199 + | ++ + + + + | + // ******** attributes |
+ +200 + | ++ + + + + | + private int MyPrintCount; |
+ +201 + | ++ + + + + | + private String MyTracesName; |
+ +202 + | ++ + + + + | + private MyStorage MyTraces; |
+ +203 + | ++ + + + + | + private boolean ShouldPrintOnStdout; |
+ +204 + | ++ + + + + | +} |
Mutations | ||
25 | ++ |
+
+
+
+ 1.1 |
+
43 | ++ |
+
+
+
+ 1.1 |
+
61 | ++ |
+
+
+
+ 1.1 |
+
79 | ++ |
+
+
+
+ 1.1 |
+
96 | ++ |
+
+
+
+ 1.1 2.2 |
+
105 | ++ |
+
+
+
+ 1.1 |
+
107 | ++ |
+
+
+
+ 1.1 2.2 3.3 |
+
112 | ++ |
+
+
+
+ 1.1 |
+
113 | ++ |
+
+
+
+ 1.1 |
+
114 | ++ |
+
+
+
+ 1.1 |
+
116 | ++ |
+
+
+
+ 1.1 |
+
138 | ++ |
+
+
+
+ 1.1 |
+
144 | ++ |
+
+
+
+ 1.1 |
+
150 | ++ |
+
+
+
+ 1.1 |
+
167 | ++ |
+
+
+
+ 1.1 |
+
172 | ++ |
+
+
+
+ 1.1 |
+
178 | ++ |
+
+
+
+ 1.1 |
+
189 | ++ |
+
+
+
+ 1.1 |
+
191 | ++ |
+
+
+
+ 1.1 |
+
193 | ++ |
+
+
+
+ 1.1 |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dhell; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +// ********************************************************************** |
+ +4 + | ++ + + + + | +import eu.stamp_project.examples.dhell.HelloApp; |
+ +5 + | ++ + + + + | +import eu.stamp_project.examples.dhell.MyLogger; |
+ +6 + | ++ + + + + | +|
+ +7 + | ++ + + + + | +// ********************************************************************** |
+ +8 + | ++ + + + + | +public class MyGod |
+ +9 + | ++ + + + + | +{ |
+ +10 + | ++ + + + + | + // ********************************************************************** |
+ +11 + | ++ + + + + | + // public |
+ +12 + | ++ + + + + | + // ********************************************************************** |
+ +13 + | ++ + + + + | + // ******** methods |
+ +14 + | ++ + + + + | +|
+ +15 + | ++ + + + + | + // ********************************************************************** |
+ +16 + | ++ + + + + | + public static void main(String[] args) |
+ +17 + | ++ + + + + | + { |
+ +18 + | ++ + + + + | + int indentCount = 1; |
+ +19 + | ++ + + + + | + int argIndex = 0; |
+ +20 + | ++ + + + + | + String indentArg = ""; |
+ +21 + | ++ + + + + | + String fileName = ""; |
+ +22 + | ++ + + + + | + String logLevel = "WARNING"; |
+ +23 + | ++ + + + + | + boolean printOnStdout = true; |
+ +24 + | ++ + + + + | + boolean shouldRun = true; |
+ +25 + | ++ + + + + | +|
+ +26 + | +
+
+2
+
+1. main : changed conditional boundary → NO_COVERAGE +2. main : negated conditional → NO_COVERAGE + + + |
+ while (argIndex < args.length) |
+ +27 + | ++ + + + + | + { |
+ +28 + | +
+
+1
+
+1. main : negated conditional → NO_COVERAGE + + + |
+ if (args[argIndex].equals("-h")) |
+ +29 + | ++ + + + + | + { |
+ +30 + | +
+
+1
+
+1. main : removed call to eu/stamp_project/examples/dhell/MyGod::printHelp → NO_COVERAGE + + + |
+ printHelp(); |
+ +31 + | ++ + + + + | + shouldRun = false; |
+ +32 + | ++ + + + + | + argIndex = args.length; |
+ +33 + | ++ + + + + | + } |
+ +34 + | +
+
+1
+
+1. main : negated conditional → NO_COVERAGE + + + |
+ else if (args[argIndex].equals("-no_stdout")) |
+ +35 + | ++ + + + + | + { |
+ +36 + | ++ + + + + | + printOnStdout = false; |
+ +37 + | +
+
+1
+
+1. main : Replaced integer addition with subtraction → NO_COVERAGE + + + |
+ argIndex = argIndex + 1; |
+ +38 + | ++ + + + + | + } |
+ +39 + | +
+
+1
+
+1. main : negated conditional → NO_COVERAGE + + + |
+ else if (args[argIndex].equals("-log")) |
+ +40 + | ++ + + + + | + { |
+ +41 + | +
+
+3
+
+1. main : changed conditional boundary → NO_COVERAGE +2. main : Replaced integer addition with subtraction → NO_COVERAGE +3. main : negated conditional → NO_COVERAGE + + + |
+ if (argIndex + 1 < args.length) |
+ +42 + | ++ + + + + | + { |
+ +43 + | +
+
+1
+
+1. main : Replaced integer addition with subtraction → NO_COVERAGE + + + |
+ logLevel = args[argIndex + 1]; |
+ +44 + | ++ + + + + | + } |
+ +45 + | ++ + + + + | + else |
+ +46 + | ++ + + + + | + { |
+ +47 + | +
+
+1
+
+1. main : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.err.println("Missing argument: -log <level>, -h for help"); |
+ +48 + | +
+
+1
+
+1. main : removed call to java/lang/System::exit → NO_COVERAGE + + + |
+ System.exit(1); |
+ +49 + | ++ + + + + | + } |
+ +50 + | +
+
+1
+
+1. main : Replaced integer addition with subtraction → NO_COVERAGE + + + |
+ argIndex = argIndex + 2; |
+ +51 + | ++ + + + + | + } |
+ +52 + | +
+
+1
+
+1. main : negated conditional → NO_COVERAGE + + + |
+ else if (indentArg.length() == 0) |
+ +53 + | ++ + + + + | + { |
+ +54 + | ++ + + + + | + indentArg = args[argIndex]; |
+ +55 + | +
+
+1
+
+1. main : Replaced integer addition with subtraction → NO_COVERAGE + + + |
+ argIndex = argIndex + 1; |
+ +56 + | ++ + + + + | + } |
+ +57 + | +
+
+1
+
+1. main : negated conditional → NO_COVERAGE + + + |
+ else if (fileName.length() == 0) |
+ +58 + | ++ + + + + | + { |
+ +59 + | ++ + + + + | + fileName = args[argIndex]; |
+ +60 + | +
+
+1
+
+1. main : Replaced integer addition with subtraction → NO_COVERAGE + + + |
+ argIndex = argIndex + 1; |
+ +61 + | ++ + + + + | + } |
+ +62 + | ++ + + + + | + else |
+ +63 + | ++ + + + + | + { |
+ +64 + | +
+
+1
+
+1. main : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.err.println("Unknown argument: " + args[argIndex] + ", -h for help"); |
+ +65 + | +
+
+1
+
+1. main : removed call to java/lang/System::exit → NO_COVERAGE + + + |
+ System.exit(1); |
+ +66 + | ++ + + + + | + } |
+ +67 + | ++ + + + + | + } |
+ +68 + | ++ + + + + | +|
+ +69 + | +
+
+1
+
+1. main : negated conditional → NO_COVERAGE + + + |
+ if (shouldRun) |
+ +70 + | ++ + + + + | + { |
+ +71 + | +
+
+2
+
+1. main : changed conditional boundary → NO_COVERAGE +2. main : negated conditional → NO_COVERAGE + + + |
+ if (indentArg.length() > 0) |
+ +72 + | ++ + + + + | + { |
+ +73 + | ++ + + + + | + try |
+ +74 + | ++ + + + + | + { |
+ +75 + | ++ + + + + | + indentCount = Integer.parseInt(indentArg); |
+ +76 + | ++ + + + + | + } |
+ +77 + | ++ + + + + | + catch (NumberFormatException e) |
+ +78 + | ++ + + + + | + { |
+ +79 + | +
+
+1
+
+1. main : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.err.println("Argument " + indentArg + |
+ +80 + | ++ + + + + | + " must be an integer, -h for help"); |
+ +81 + | +
+
+1
+
+1. main : removed call to java/lang/System::exit → NO_COVERAGE + + + |
+ System.exit(1); |
+ +82 + | ++ + + + + | + } |
+ +83 + | ++ + + + + | + } |
+ +84 + | ++ + + + + | +|
+ +85 + | +
+
+1
+
+1. main : removed call to eu/stamp_project/examples/dhell/MyLogger::initLogs → NO_COVERAGE + + + |
+ MyLogger.initLogs(logLevel); |
+ +86 + | ++ + + + + | +|
+ +87 + | ++ + + + + | + HelloApp myApp = new HelloApp(indentCount, fileName); |
+ +88 + | +
+
+1
+
+1. main : removed call to eu/stamp_project/examples/dhell/HelloApp::setShouldPrintOnStdout → NO_COVERAGE + + + |
+ myApp.setShouldPrintOnStdout(printOnStdout); |
+ +89 + | +
+
+1
+
+1. main : removed call to eu/stamp_project/examples/dhell/HelloApp::run → NO_COVERAGE + + + |
+ myApp.run(); |
+ +90 + | ++ + + + + | + } |
+ +91 + | ++ + + + + | + } |
+ +92 + | ++ + + + + | +|
+ +93 + | ++ + + + + | + // ********************************************************************** |
+ +94 + | ++ + + + + | + public static void printHelp() |
+ +95 + | ++ + + + + | + { |
+ +96 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("eu.stamp_project.examples.dhell.MyGod"); |
+ +97 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Print on stdout a 'Hello World !' message formatted according to"); |
+ +98 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("<indentation_count>, and generate an output file"); |
+ +99 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(""); |
+ +100 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("args: [-h | <indentation_count> [<file_name>] [-no_stdout] [-log <level>]]"); |
+ +101 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" -h: this help"); |
+ +102 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" <indentation_count>: number of '-' for message indentation, default is 1"); |
+ +103 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" <file_name>: output file name, default is my_storage.txt"); |
+ +104 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" output file name contains <indentation_count> and the stdout"); |
+ +105 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" -no_stdout: if specified, do not print anything on stdout,"); |
+ +106 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" generate only the output file"); |
+ +107 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" -log <level>: specify the level of information to log,"); |
+ +108 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" <level> is one of {OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL}, default is WARNING"); |
+ +109 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" generate a log file, dhell.log, in the current directory"); |
+ +110 + | ++ + + + + | + } |
+ +111 + | ++ + + + + | +} |
Mutations | ||
26 | ++ |
+
+
+
+ 1.1 2.2 |
+
28 | ++ |
+
+
+
+ 1.1 |
+
30 | ++ |
+
+
+
+ 1.1 |
+
34 | ++ |
+
+
+
+ 1.1 |
+
37 | ++ |
+
+
+
+ 1.1 |
+
39 | ++ |
+
+
+
+ 1.1 |
+
41 | ++ |
+
+
+
+ 1.1 2.2 3.3 |
+
43 | ++ |
+
+
+
+ 1.1 |
+
47 | ++ |
+
+
+
+ 1.1 |
+
48 | ++ |
+
+
+
+ 1.1 |
+
50 | ++ |
+
+
+
+ 1.1 |
+
52 | ++ |
+
+
+
+ 1.1 |
+
55 | ++ |
+
+
+
+ 1.1 |
+
57 | ++ |
+
+
+
+ 1.1 |
+
60 | ++ |
+
+
+
+ 1.1 |
+
64 | ++ |
+
+
+
+ 1.1 |
+
65 | ++ |
+
+
+
+ 1.1 |
+
69 | ++ |
+
+
+
+ 1.1 |
+
71 | ++ |
+
+
+
+ 1.1 2.2 |
+
79 | ++ |
+
+
+
+ 1.1 |
+
81 | ++ |
+
+
+
+ 1.1 |
+
85 | ++ |
+
+
+
+ 1.1 |
+
88 | ++ |
+
+
+
+ 1.1 |
+
89 | ++ |
+
+
+
+ 1.1 |
+
96 | ++ |
+
+
+
+ 1.1 |
+
97 | ++ |
+
+
+
+ 1.1 |
+
98 | ++ |
+
+
+
+ 1.1 |
+
99 | ++ |
+
+
+
+ 1.1 |
+
100 | ++ |
+
+
+
+ 1.1 |
+
101 | ++ |
+
+
+
+ 1.1 |
+
102 | ++ |
+
+
+
+ 1.1 |
+
103 | ++ |
+
+
+
+ 1.1 |
+
104 | ++ |
+
+
+
+ 1.1 |
+
105 | ++ |
+
+
+
+ 1.1 |
+
106 | ++ |
+
+
+
+ 1.1 |
+
107 | ++ |
+
+
+
+ 1.1 |
+
108 | ++ |
+
+
+
+ 1.1 |
+
109 | ++ |
+
+
+
+ 1.1 |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dhell; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +// ********************************************************************** |
+ +4 + | ++ + + + + | +import java.io.PrintStream; |
+ +5 + | ++ + + + + | +import java.io.BufferedReader; |
+ +6 + | ++ + + + + | +import java.io.FileReader; |
+ +7 + | ++ + + + + | +import java.io.IOException; |
+ +8 + | ++ + + + + | +import java.io.File; |
+ +9 + | ++ + + + + | +import java.util.*; |
+ +10 + | ++ + + + + | +|
+ +11 + | ++ + + + + | +import eu.stamp_project.examples.dhell.MyLogger; |
+ +12 + | ++ + + + + | +|
+ +13 + | ++ + + + + | +// ********************************************************************** |
+ +14 + | ++ + + + + | +public class MyStorage |
+ +15 + | ++ + + + + | +{ |
+ +16 + | ++ + + + + | + // ********************************************************************** |
+ +17 + | ++ + + + + | + // public |
+ +18 + | ++ + + + + | + // ********************************************************************** |
+ +19 + | ++ + + + + | + // ******** methods |
+ +20 + | ++ + + + + | +|
+ +21 + | ++ + + + + | + // ********************************************************************** |
+ +22 + | ++ + + + + | + public static void deleteFile(String fileName) |
+ +23 + | ++ + + + + | + { |
+ +24 + | ++ + + + + | + String methodName = "deleteFile"; |
+ +25 + | ++ + + + + | + MyLogger.Instance.entering("MyStorage", methodName); |
+ +26 + | ++ + + + + | +|
+ +27 + | ++ + + + + | + File theFile = null; |
+ +28 + | ++ + + + + | +|
+ +29 + | ++ + + + + | + // delete file if it already exists |
+ +30 + | ++ + + + + | + theFile = new File(fileName); |
+ +31 + | +
+
+1
+
+1. deleteFile : negated conditional → KILLED + + + |
+ if (theFile.exists()) |
+ +32 + | ++ + + + + | + { |
+ +33 + | ++ + + + + | + theFile.delete(); |
+ +34 + | ++ + + + + | + } |
+ +35 + | ++ + + + + | +|
+ +36 + | ++ + + + + | + MyLogger.Instance.exiting("MyStorage", methodName); |
+ +37 + | ++ + + + + | + } |
+ +38 + | ++ + + + + | +|
+ +39 + | ++ + + + + | + // ********************************************************************** |
+ +40 + | ++ + + + + | + public MyStorage() |
+ +41 + | ++ + + + + | + { |
+ +42 + | ++ + + + + | + String methodName = "MyStorage"; |
+ +43 + | ++ + + + + | + MyLogger.Instance.entering(getClass().getName(), methodName); |
+ +44 + | ++ + + + + | +|
+ +45 + | ++ + + + + | + FileName = "my_storage.txt"; |
+ +46 + | ++ + + + + | + MyData = new ArrayList<String>(); |
+ +47 + | ++ + + + + | +|
+ +48 + | ++ + + + + | + MyLogger.Instance.exiting(getClass().getName(), methodName); |
+ +49 + | ++ + + + + | + } |
+ +50 + | ++ + + + + | +|
+ +51 + | ++ + + + + | + // ********************************************************************** |
+ +52 + | ++ + + + + | + public MyStorage(String fileName) |
+ +53 + | ++ + + + + | + { |
+ +54 + | ++ + + + + | + String methodName = "MyStorage_String"; |
+ +55 + | ++ + + + + | + MyLogger.Instance.entering(getClass().getName(), methodName); |
+ +56 + | ++ + + + + | +|
+ +57 + | ++ + + + + | + this.FileName = fileName; |
+ +58 + | ++ + + + + | + MyData = new ArrayList<String>(); |
+ +59 + | ++ + + + + | +|
+ +60 + | ++ + + + + | + MyLogger.Instance.exiting(getClass().getName(), methodName); |
+ +61 + | ++ + + + + | + } |
+ +62 + | ++ + + + + | +|
+ +63 + | ++ + + + + | + // ********************************************************************** |
+ +64 + | ++ + + + + | + public void readData() |
+ +65 + | ++ + + + + | + { |
+ +66 + | ++ + + + + | + String methodName = "readData"; |
+ +67 + | ++ + + + + | + MyLogger.Instance.entering(getClass().getName(), methodName); |
+ +68 + | ++ + + + + | +|
+ +69 + | ++ + + + + | + BufferedReader myBuffer = null; |
+ +70 + | ++ + + + + | + FileReader myFile = null; |
+ +71 + | ++ + + + + | + String currentLine; |
+ +72 + | ++ + + + + | +|
+ +73 + | ++ + + + + | + try |
+ +74 + | ++ + + + + | + { |
+ +75 + | ++ + + + + | + myFile = new FileReader(FileName); |
+ +76 + | ++ + + + + | + myBuffer = new BufferedReader(myFile); |
+ +77 + | +
+
+1
+
+1. readData : negated conditional → KILLED + + + |
+ while ((currentLine = myBuffer.readLine()) != null) |
+ +78 + | ++ + + + + | + { |
+ +79 + | +
+
+1
+
+1. readData : removed call to eu/stamp_project/examples/dhell/MyStorage::addData → KILLED + + + |
+ addData(currentLine); |
+ +80 + | ++ + + + + | + } |
+ +81 + | ++ + + + + | + } |
+ +82 + | ++ + + + + | + catch(IOException e) |
+ +83 + | ++ + + + + | + { |
+ +84 + | +
+
+1
+
+1. readData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: cannot read " + FileName); |
+ +85 + | ++ + + + + | + } |
+ +86 + | ++ + + + + | +|
+ +87 + | ++ + + + + | + try |
+ +88 + | ++ + + + + | + { |
+ +89 + | +
+
+1
+
+1. readData : negated conditional → SURVIVED + + + |
+ if (myBuffer != null) |
+ +90 + | ++ + + + + | + { |
+ +91 + | +
+
+1
+
+1. readData : removed call to java/io/BufferedReader::close → SURVIVED + + + |
+ myBuffer.close(); |
+ +92 + | ++ + + + + | + } |
+ +93 + | +
+
+1
+
+1. readData : negated conditional → SURVIVED + + + |
+ if (myFile != null) |
+ +94 + | ++ + + + + | + { |
+ +95 + | +
+
+1
+
+1. readData : removed call to java/io/FileReader::close → SURVIVED + + + |
+ myFile.close(); |
+ +96 + | ++ + + + + | + } |
+ +97 + | ++ + + + + | + } |
+ +98 + | ++ + + + + | + catch(IOException e) |
+ +99 + | ++ + + + + | + { |
+ +100 + | +
+
+1
+
+1. readData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: closing " + FileName); |
+ +101 + | ++ + + + + | + } |
+ +102 + | ++ + + + + | +|
+ +103 + | ++ + + + + | + MyLogger.Instance.exiting(getClass().getName(), methodName); |
+ +104 + | ++ + + + + | + } |
+ +105 + | ++ + + + + | +|
+ +106 + | ++ + + + + | + // ********************************************************************** |
+ +107 + | ++ + + + + | + public void saveData() |
+ +108 + | ++ + + + + | + { |
+ +109 + | ++ + + + + | + String methodName = "saveData"; |
+ +110 + | ++ + + + + | + MyLogger.Instance.entering(getClass().getName(), methodName); |
+ +111 + | ++ + + + + | +|
+ +112 + | ++ + + + + | + try |
+ +113 + | ++ + + + + | + { |
+ +114 + | ++ + + + + | + PrintStream writer = new PrintStream(new File(FileName)); |
+ +115 + | +
+
+2
+
+1. saveData : changed conditional boundary → KILLED +2. saveData : negated conditional → KILLED + + + |
+ for (int i = 0; i < getDataSize(); i++) |
+ +116 + | ++ + + + + | + { |
+ +117 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::println → KILLED + + + |
+ writer.println(getData(i)); |
+ +118 + | ++ + + + + | + } |
+ +119 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::close → SURVIVED + + + |
+ writer.close(); |
+ +120 + | ++ + + + + | + } |
+ +121 + | ++ + + + + | + catch(IOException e) |
+ +122 + | ++ + + + + | + { |
+ +123 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: cannot write into " + FileName); |
+ +124 + | ++ + + + + | + } |
+ +125 + | ++ + + + + | +|
+ +126 + | ++ + + + + | + MyLogger.Instance.exiting(getClass().getName(), methodName); |
+ +127 + | ++ + + + + | + } |
+ +128 + | ++ + + + + | +|
+ +129 + | ++ + + + + | + // ********************************************************************** |
+ +130 + | ++ + + + + | + public boolean isEqual(MyStorage anotherStorage) |
+ +131 + | ++ + + + + | + { |
+ +132 + | ++ + + + + | + String methodName = "isEqual"; |
+ +133 + | ++ + + + + | + MyLogger.Instance.entering(getClass().getName(), methodName); |
+ +134 + | ++ + + + + | +|
+ +135 + | +
+
+1
+
+1. isEqual : negated conditional → KILLED + + + |
+ boolean areEqual = (getDataSize() == anotherStorage.getDataSize()); |
+ +136 + | ++ + + + + | +|
+ +137 + | +
+
+4
+
+1. isEqual : negated conditional → SURVIVED +2. isEqual : negated conditional → SURVIVED +3. isEqual : changed conditional boundary → KILLED +4. isEqual : Changed increment from 1 to -1 → KILLED + + + |
+ for (int i = 0; i < getDataSize() && areEqual; i++) |
+ +138 + | ++ + + + + | + { |
+ +139 + | +
+
+1
+
+1. isEqual : negated conditional → KILLED + + + |
+ if (! (getData(i).equals(anotherStorage.getData(i)))) |
+ +140 + | ++ + + + + | + { |
+ +141 + | ++ + + + + | + areEqual = false; |
+ +142 + | ++ + + + + | + } |
+ +143 + | ++ + + + + | + } |
+ +144 + | ++ + + + + | +|
+ +145 + | ++ + + + + | + MyLogger.Instance.exiting(getClass().getName(), methodName); |
+ +146 + | +
+
+1
+
+1. isEqual : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(areEqual); |
+ +147 + | ++ + + + + | + } |
+ +148 + | ++ + + + + | +|
+ +149 + | ++ + + + + | + // ********************************************************************** |
+ +150 + | ++ + + + + | + public boolean dataAreEqual(ArrayList<String> otherData) |
+ +151 + | ++ + + + + | + { |
+ +152 + | ++ + + + + | + String methodName = "dataAreEqual"; |
+ +153 + | ++ + + + + | + MyLogger.Instance.entering(getClass().getName(), methodName); |
+ +154 + | ++ + + + + | +|
+ +155 + | +
+
+1
+
+1. dataAreEqual : negated conditional → KILLED + + + |
+ boolean areEqual = (getDataSize() == otherData.size()); |
+ +156 + | ++ + + + + | +|
+ +157 + | +
+
+4
+
+1. dataAreEqual : negated conditional → SURVIVED +2. dataAreEqual : negated conditional → SURVIVED +3. dataAreEqual : changed conditional boundary → KILLED +4. dataAreEqual : Changed increment from 1 to -1 → KILLED + + + |
+ for (int i = 0; i < getDataSize() && areEqual; i++) |
+ +158 + | ++ + + + + | + { |
+ +159 + | +
+
+1
+
+1. dataAreEqual : negated conditional → KILLED + + + |
+ if (! (getData(i).equals(otherData.get(i)))) |
+ +160 + | ++ + + + + | + { |
+ +161 + | ++ + + + + | + areEqual = false; |
+ +162 + | ++ + + + + | + } |
+ +163 + | ++ + + + + | + } |
+ +164 + | ++ + + + + | +|
+ +165 + | ++ + + + + | + MyLogger.Instance.exiting(getClass().getName(), methodName); |
+ +166 + | +
+
+1
+
+1. dataAreEqual : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(areEqual); |
+ +167 + | ++ + + + + | + } |
+ +168 + | ++ + + + + | +|
+ +169 + | ++ + + + + | + // ********************************************************************** |
+ +170 + | ++ + + + + | + // ******** attributes |
+ +171 + | ++ + + + + | +|
+ +172 + | ++ + + + + | + // ********************************************************************** |
+ +173 + | ++ + + + + | + public String getFileName() |
+ +174 + | ++ + + + + | + { |
+ +175 + | +
+
+1
+
+1. getFileName : mutated return of Object value for eu/stamp_project/examples/dhell/MyStorage::getFileName to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(FileName); |
+ +176 + | ++ + + + + | + } |
+ +177 + | ++ + + + + | +|
+ +178 + | ++ + + + + | + // ********************************************************************** |
+ +179 + | ++ + + + + | + public int getDataSize() |
+ +180 + | ++ + + + + | + { |
+ +181 + | +
+
+1
+
+1. getDataSize : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(MyData.size()); |
+ +182 + | ++ + + + + | + } |
+ +183 + | ++ + + + + | +|
+ +184 + | ++ + + + + | + // ********************************************************************** |
+ +185 + | ++ + + + + | + public String getData(int index) |
+ +186 + | ++ + + + + | + { |
+ +187 + | +
+
+1
+
+1. getData : mutated return of Object value for eu/stamp_project/examples/dhell/MyStorage::getData to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(MyData.get(index)); |
+ +188 + | ++ + + + + | + } |
+ +189 + | ++ + + + + | +|
+ +190 + | ++ + + + + | + // ********************************************************************** |
+ +191 + | ++ + + + + | + public void addData(String aData) |
+ +192 + | ++ + + + + | + { |
+ +193 + | ++ + + + + | + MyLogger.Instance.finest("IN : DataSize = " + Integer.toString(getDataSize()) |
+ +194 + | ++ + + + + | + + " - aData = " + aData); |
+ +195 + | ++ + + + + | +|
+ +196 + | ++ + + + + | + MyData.add(aData); |
+ +197 + | ++ + + + + | +|
+ +198 + | ++ + + + + | + MyLogger.Instance.finest("OUT: DataSize = " + Integer.toString(getDataSize())); |
+ +199 + | ++ + + + + | + } |
+ +200 + | ++ + + + + | +|
+ +201 + | ++ + + + + | + // ********************************************************************** |
+ +202 + | ++ + + + + | + public void delData(String aData) |
+ +203 + | ++ + + + + | + { |
+ +204 + | ++ + + + + | + MyLogger.Instance.finest("IN : DataSize = " + Integer.toString(getDataSize())); |
+ +205 + | ++ + + + + | +|
+ +206 + | ++ + + + + | + boolean found = false; |
+ +207 + | ++ + + + + | +|
+ +208 + | +
+
+4
+
+1. delData : changed conditional boundary → NO_COVERAGE +2. delData : Changed increment from 1 to -1 → NO_COVERAGE +3. delData : negated conditional → NO_COVERAGE +4. delData : negated conditional → NO_COVERAGE + + + |
+ for (int i = 0; i < getDataSize() && ! found; i++) |
+ +209 + | ++ + + + + | + { |
+ +210 + | +
+
+1
+
+1. delData : negated conditional → NO_COVERAGE + + + |
+ if (getData(i).equals(aData)) |
+ +211 + | ++ + + + + | + { |
+ +212 + | ++ + + + + | + MyData.remove(i); |
+ +213 + | ++ + + + + | + found = true; |
+ +214 + | ++ + + + + | + } |
+ +215 + | ++ + + + + | + } |
+ +216 + | ++ + + + + | +|
+ +217 + | ++ + + + + | + MyLogger.Instance.finest("OUT: DataSize = " + Integer.toString(getDataSize()) |
+ +218 + | ++ + + + + | + + " - found = " + Boolean.toString(found)); |
+ +219 + | ++ + + + + | + } |
+ +220 + | ++ + + + + | +|
+ +221 + | ++ + + + + | + // ********************************************************************** |
+ +222 + | ++ + + + + | + // private |
+ +223 + | ++ + + + + | + // ********************************************************************** |
+ +224 + | ++ + + + + | + // ******** attributes |
+ +225 + | ++ + + + + | + private String FileName; |
+ +226 + | ++ + + + + | + private ArrayList<String> MyData; |
+ +227 + | ++ + + + + | +} |
Mutations | ||
31 | ++ |
+
+
+
+ 1.1 |
+
77 | ++ |
+
+
+
+ 1.1 |
+
79 | ++ |
+
+
+
+ 1.1 |
+
84 | ++ |
+
+
+
+ 1.1 |
+
89 | ++ |
+
+
+
+ 1.1 |
+
91 | ++ |
+
+
+
+ 1.1 |
+
93 | ++ |
+
+
+
+ 1.1 |
+
95 | ++ |
+
+
+
+ 1.1 |
+
100 | ++ |
+
+
+
+ 1.1 |
+
115 | ++ |
+
+
+
+ 1.1 2.2 |
+
117 | ++ |
+
+
+
+ 1.1 |
+
119 | ++ |
+
+
+
+ 1.1 |
+
123 | ++ |
+
+
+
+ 1.1 |
+
135 | ++ |
+
+
+
+ 1.1 |
+
137 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
139 | ++ |
+
+
+
+ 1.1 |
+
146 | ++ |
+
+
+
+ 1.1 |
+
155 | ++ |
+
+
+
+ 1.1 |
+
157 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
159 | ++ |
+
+
+
+ 1.1 |
+
166 | ++ |
+
+
+
+ 1.1 |
+
175 | ++ |
+
+
+
+ 1.1 |
+
181 | ++ |
+
+
+
+ 1.1 |
+
187 | ++ |
+
+
+
+ 1.1 |
+
208 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
210 | ++ |
+
+
+
+ 1.1 |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
3 | +64% | +35% | +
Name | +Line Coverage | +Mutation Coverage | +
---|---|---|
HelloApp.java | +93% |
+ 70% |
+
MyGod.java | +0% |
+ 0% |
+
MyStorage.java | +80% |
+ 53% |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
3 | +64% | +35% | +
Name | +Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|---|
eu.stamp_project.examples.dhell | +3 | +64% |
+ 35% |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dnoo.dnooHello; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +// ********************************************************************** |
+ +4 + | ++ + + + + | +import eu.stamp_project.examples.dnoo.dnooStorage.MyStorage; |
+ +5 + | ++ + + + + | +import eu.stamp_project.examples.dnoo.dnooLogs.MyLogger; |
+ +6 + | ++ + + + + | +|
+ +7 + | ++ + + + + | +// ********************************************************************** |
+ +8 + | ++ + + + + | +public class HelloApp |
+ +9 + | ++ + + + + | +{ |
+ +10 + | ++ + + + + | + // ********************************************************************** |
+ +11 + | ++ + + + + | + // public |
+ +12 + | ++ + + + + | + // ********************************************************************** |
+ +13 + | ++ + + + + | + // ******** methods |
+ +14 + | ++ + + + + | +|
+ +15 + | ++ + + + + | + // ********************************************************************** |
+ +16 + | ++ + + + + | + public HelloApp() |
+ +17 + | ++ + + + + | + { |
+ +18 + | ++ + + + + | + String methodName = "HelloApp"; |
+ +19 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +20 + | ++ + + + + | +|
+ +21 + | ++ + + + + | + MyPrintCount = 1; |
+ +22 + | ++ + + + + | + MyTraces = null; |
+ +23 + | ++ + + + + | + MyTracesName = "myHelloApp.traces"; |
+ +24 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +25 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +26 + | ++ + + + + | +|
+ +27 + | ++ + + + + | + MyLogger.getLogger().info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +28 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +29 + | ++ + + + + | +|
+ +30 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +31 + | ++ + + + + | + } |
+ +32 + | ++ + + + + | +|
+ +33 + | ++ + + + + | + // ********************************************************************** |
+ +34 + | ++ + + + + | + public HelloApp(int printCount) |
+ +35 + | ++ + + + + | + { |
+ +36 + | ++ + + + + | + String methodName = "HelloApp_int"; |
+ +37 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +38 + | ++ + + + + | +|
+ +39 + | ++ + + + + | + MyPrintCount = printCount; |
+ +40 + | ++ + + + + | + MyTraces = null; |
+ +41 + | ++ + + + + | + MyTracesName = "myHelloApp.traces"; |
+ +42 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +43 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +44 + | ++ + + + + | +|
+ +45 + | ++ + + + + | + MyLogger.getLogger().info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +46 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +47 + | ++ + + + + | +|
+ +48 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +49 + | ++ + + + + | + } |
+ +50 + | ++ + + + + | +|
+ +51 + | ++ + + + + | + // ********************************************************************** |
+ +52 + | ++ + + + + | + public HelloApp(String tracesName) |
+ +53 + | ++ + + + + | + { |
+ +54 + | ++ + + + + | + String methodName = "HelloApp_String"; |
+ +55 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +56 + | ++ + + + + | +|
+ +57 + | ++ + + + + | + MyPrintCount = 1; |
+ +58 + | ++ + + + + | + MyTraces = null; |
+ +59 + | ++ + + + + | + MyTracesName = tracesName; |
+ +60 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +61 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +62 + | ++ + + + + | +|
+ +63 + | ++ + + + + | + MyLogger.getLogger().info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +64 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +65 + | ++ + + + + | +|
+ +66 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +67 + | ++ + + + + | + } |
+ +68 + | ++ + + + + | +|
+ +69 + | ++ + + + + | + // ********************************************************************** |
+ +70 + | ++ + + + + | + public HelloApp(int printCount, String tracesName) |
+ +71 + | ++ + + + + | + { |
+ +72 + | ++ + + + + | + String methodName = "HelloApp_int_String"; |
+ +73 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +74 + | ++ + + + + | +|
+ +75 + | ++ + + + + | + MyPrintCount = printCount; |
+ +76 + | ++ + + + + | + MyTraces = null; |
+ +77 + | ++ + + + + | + MyTracesName = tracesName; |
+ +78 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +79 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +80 + | ++ + + + + | +|
+ +81 + | ++ + + + + | + MyLogger.getLogger().info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +82 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +83 + | ++ + + + + | +|
+ +84 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +85 + | ++ + + + + | + } |
+ +86 + | ++ + + + + | +|
+ +87 + | ++ + + + + | + // ********************************************************************** |
+ +88 + | ++ + + + + | + public void run() |
+ +89 + | ++ + + + + | + { |
+ +90 + | ++ + + + + | + String methodName = "run"; |
+ +91 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +92 + | ++ + + + + | +|
+ +93 + | ++ + + + + | + String indent = "-"; |
+ +94 + | ++ + + + + | + String countString = Integer.toString(MyPrintCount); |
+ +95 + | ++ + + + + | +|
+ +96 + | +
+
+2
+
+1. run : changed conditional boundary → SURVIVED +2. run : negated conditional → KILLED + + + |
+ if (MyTracesName.length() > 0) |
+ +97 + | ++ + + + + | + { |
+ +98 + | ++ + + + + | + MyTraces = new MyStorage(MyTracesName); |
+ +99 + | ++ + + + + | + } |
+ +100 + | ++ + + + + | + else |
+ +101 + | ++ + + + + | + { |
+ +102 + | ++ + + + + | + MyTraces = new MyStorage(); |
+ +103 + | ++ + + + + | + } |
+ +104 + | ++ + + + + | +|
+ +105 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::addData → KILLED + + + |
+ MyTraces.addData(countString); |
+ +106 + | ++ + + + + | +|
+ +107 + | +
+
+3
+
+1. run : Changed increment from 1 to -1 → TIMED_OUT +2. run : changed conditional boundary → KILLED +3. run : negated conditional → KILLED + + + |
+ for (int i = 1; i < MyPrintCount; i++) |
+ +108 + | ++ + + + + | + { |
+ +109 + | ++ + + + + | + indent = indent + "-"; |
+ +110 + | ++ + + + + | + } |
+ +111 + | ++ + + + + | + MyLogger.getLogger().fine("indent = '" + indent + "'"); |
+ +112 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooHello/HelloApp::myPrint → KILLED + + + |
+ myPrint(indent); |
+ +113 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooHello/HelloApp::myPrint → KILLED + + + |
+ myPrint(indent + " Hello World !"); |
+ +114 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooHello/HelloApp::myPrint → SURVIVED + + + |
+ myPrint(indent); |
+ +115 + | ++ + + + + | +|
+ +116 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::saveData → KILLED + + + |
+ MyTraces.saveData(); |
+ +117 + | ++ + + + + | +|
+ +118 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +119 + | ++ + + + + | + } |
+ +120 + | ++ + + + + | +|
+ +121 + | ++ + + + + | + // ********************************************************************** |
+ +122 + | ++ + + + + | + public void computeMyUselessResult() |
+ +123 + | ++ + + + + | + { |
+ +124 + | ++ + + + + | + // PI = 3,141 592 653 589 793 - PI (10 chiffres exactes) ~ 104348 / 33215 |
+ +125 + | ++ + + + + | + // PI = 3,1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 |
+ +126 + | ++ + + + + | + // 5923078164 0628620899 8628034825 3421170679 |
+ +127 + | ++ + + + + | + // PHI = (1 + rootsquare(5)) / 2 = 1,618 033 988 7 |
+ +128 + | ++ + + + + | + // PHI = 1,618 033 988 749 894 848 204 586 834 365 638 117 720 309 179 805 |
+ +129 + | ++ + + + + | + // 762 862 135 448 622 705 260 462 189 024 497 072 072 041 |
+ +130 + | ++ + + + + | + } |
+ +131 + | ++ + + + + | +|
+ +132 + | ++ + + + + | + // ********************************************************************** |
+ +133 + | ++ + + + + | + // ******** attributes |
+ +134 + | ++ + + + + | +|
+ +135 + | ++ + + + + | + // ********************************************************************** |
+ +136 + | ++ + + + + | + public int getMyPrintCount() |
+ +137 + | ++ + + + + | + { |
+ +138 + | +
+
+1
+
+1. getMyPrintCount : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(MyPrintCount); |
+ +139 + | ++ + + + + | + } |
+ +140 + | ++ + + + + | +|
+ +141 + | ++ + + + + | + // ********************************************************************** |
+ +142 + | ++ + + + + | + public String getMyTracesName() |
+ +143 + | ++ + + + + | + { |
+ +144 + | +
+
+1
+
+1. getMyTracesName : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooHello/HelloApp::getMyTracesName to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(MyTracesName); |
+ +145 + | ++ + + + + | + } |
+ +146 + | ++ + + + + | +|
+ +147 + | ++ + + + + | + // ********************************************************************** |
+ +148 + | ++ + + + + | + public boolean getShouldPrintOnStdout() |
+ +149 + | ++ + + + + | + { |
+ +150 + | +
+
+1
+
+1. getShouldPrintOnStdout : replaced return of integer sized value with (x == 0 ? 1 : 0) → SURVIVED + + + |
+ return(ShouldPrintOnStdout); |
+ +151 + | ++ + + + + | + } |
+ +152 + | ++ + + + + | +|
+ +153 + | ++ + + + + | + // ********** |
+ +154 + | ++ + + + + | + public void setShouldPrintOnStdout(boolean value) |
+ +155 + | ++ + + + + | + { |
+ +156 + | ++ + + + + | + ShouldPrintOnStdout = value; |
+ +157 + | ++ + + + + | + } |
+ +158 + | ++ + + + + | +|
+ +159 + | ++ + + + + | + // ********************************************************************** |
+ +160 + | ++ + + + + | + // ******** associations |
+ +161 + | ++ + + + + | +|
+ +162 + | ++ + + + + | + // ********************************************************************** |
+ +163 + | ++ + + + + | + public int cardMyTraces() |
+ +164 + | ++ + + + + | + { |
+ +165 + | ++ + + + + | + int theCard = 0; |
+ +166 + | ++ + + + + | +|
+ +167 + | +
+
+1
+
+1. cardMyTraces : negated conditional → KILLED + + + |
+ if (MyTraces != null) |
+ +168 + | ++ + + + + | + { |
+ +169 + | ++ + + + + | + theCard = 1; |
+ +170 + | ++ + + + + | + } |
+ +171 + | ++ + + + + | +|
+ +172 + | +
+
+1
+
+1. cardMyTraces : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(theCard); |
+ +173 + | ++ + + + + | + } |
+ +174 + | ++ + + + + | +|
+ +175 + | ++ + + + + | + // ********** |
+ +176 + | ++ + + + + | + public MyStorage getMyTraces() |
+ +177 + | ++ + + + + | + { |
+ +178 + | +
+
+1
+
+1. getMyTraces : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooHello/HelloApp::getMyTraces to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(MyTraces); |
+ +179 + | ++ + + + + | + } |
+ +180 + | ++ + + + + | +|
+ +181 + | ++ + + + + | + // ********************************************************************** |
+ +182 + | ++ + + + + | + // protected |
+ +183 + | ++ + + + + | + // ********************************************************************** |
+ +184 + | ++ + + + + | + // ******** methods |
+ +185 + | ++ + + + + | +|
+ +186 + | ++ + + + + | + // ********************************************************************** |
+ +187 + | ++ + + + + | + protected void myPrint(String message) |
+ +188 + | ++ + + + + | + { |
+ +189 + | +
+
+1
+
+1. myPrint : negated conditional → SURVIVED + + + |
+ if (getShouldPrintOnStdout()) |
+ +190 + | ++ + + + + | + { |
+ +191 + | +
+
+1
+
+1. myPrint : removed call to java/io/PrintStream::println → SURVIVED + + + |
+ System.out.println(message); |
+ +192 + | ++ + + + + | + } |
+ +193 + | +
+
+1
+
+1. myPrint : removed call to eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::addData → KILLED + + + |
+ MyTraces.addData(message); |
+ +194 + | ++ + + + + | + } |
+ +195 + | ++ + + + + | +|
+ +196 + | ++ + + + + | + // ********************************************************************** |
+ +197 + | ++ + + + + | + // private |
+ +198 + | ++ + + + + | + // ********************************************************************** |
+ +199 + | ++ + + + + | + // ******** attributes |
+ +200 + | ++ + + + + | + private int MyPrintCount; |
+ +201 + | ++ + + + + | + private String MyTracesName; |
+ +202 + | ++ + + + + | + private MyStorage MyTraces; |
+ +203 + | ++ + + + + | + private boolean ShouldPrintOnStdout; |
+ +204 + | ++ + + + + | +} |
Mutations | ||
25 | ++ |
+
+
+
+ 1.1 |
+
43 | ++ |
+
+
+
+ 1.1 |
+
61 | ++ |
+
+
+
+ 1.1 |
+
79 | ++ |
+
+
+
+ 1.1 |
+
96 | ++ |
+
+
+
+ 1.1 2.2 |
+
105 | ++ |
+
+
+
+ 1.1 |
+
107 | ++ |
+
+
+
+ 1.1 2.2 3.3 |
+
112 | ++ |
+
+
+
+ 1.1 |
+
113 | ++ |
+
+
+
+ 1.1 |
+
114 | ++ |
+
+
+
+ 1.1 |
+
116 | ++ |
+
+
+
+ 1.1 |
+
138 | ++ |
+
+
+
+ 1.1 |
+
144 | ++ |
+
+
+
+ 1.1 |
+
150 | ++ |
+
+
+
+ 1.1 |
+
167 | ++ |
+
+
+
+ 1.1 |
+
172 | ++ |
+
+
+
+ 1.1 |
+
178 | ++ |
+
+
+
+ 1.1 |
+
189 | ++ |
+
+
+
+ 1.1 |
+
191 | ++ |
+
+
+
+ 1.1 |
+
193 | ++ |
+
+
+
+ 1.1 |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
1 | +93% | +70% | +
Name | +Line Coverage | +Mutation Coverage | +
---|---|---|
HelloApp.java | +93% |
+ 70% |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dnoo.dnooLogs; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +import java.io.File; |
+ +4 + | ++ + + + + | +import java.util.Locale; |
+ +5 + | ++ + + + + | +// ********************************************************************** |
+ +6 + | ++ + + + + | +import java.util.logging.ConsoleHandler; |
+ +7 + | ++ + + + + | +import java.util.logging.FileHandler; |
+ +8 + | ++ + + + + | +import java.util.logging.Formatter; |
+ +9 + | ++ + + + + | +import java.util.logging.Handler; |
+ +10 + | ++ + + + + | +import java.util.logging.Level; |
+ +11 + | ++ + + + + | +import java.util.logging.Logger; |
+ +12 + | ++ + + + + | +import java.util.logging.SimpleFormatter; |
+ +13 + | ++ + + + + | +|
+ +14 + | ++ + + + + | +// ********************************************************************** |
+ +15 + | ++ + + + + | +public class MyLogger |
+ +16 + | ++ + + + + | +{ |
+ +17 + | ++ + + + + | + // ********************************************************************** |
+ +18 + | ++ + + + + | + // public |
+ +19 + | ++ + + + + | + // ********************************************************************** |
+ +20 + | ++ + + + + | + // ******** attributes |
+ +21 + | ++ + + + + | + public static String LogFileName = "dnoo.log"; |
+ +22 + | ++ + + + + | +|
+ +23 + | ++ + + + + | + // ********************************************************************** |
+ +24 + | ++ + + + + | + // Level: String, public read/write class attribute |
+ +25 + | ++ + + + + | + // levels: "OFF", "SEVERE", "WARNING", "INFO", "CONFIG", "FINE", "FINER", |
+ +26 + | ++ + + + + | + // "FINEST", "ALL" |
+ +27 + | ++ + + + + | + public static String getLevel() |
+ +28 + | ++ + + + + | + { |
+ +29 + | ++ + + + + | + Level currentLevel = getLogger().getLevel(); |
+ +30 + | +
+
+1
+
+1. getLevel : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::getLevel to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(levelToString(currentLevel)); |
+ +31 + | ++ + + + + | + } |
+ +32 + | ++ + + + + | +|
+ +33 + | ++ + + + + | + // *********** |
+ +34 + | ++ + + + + | + public static void setLevel(String level) |
+ +35 + | ++ + + + + | + { |
+ +36 + | ++ + + + + | + getLogger().setLevel(stringToLevel(level)); |
+ +37 + | ++ + + + + | + Instance.StdLogHandler.setLevel(stringToLevel(level)); |
+ +38 + | ++ + + + + | + } |
+ +39 + | ++ + + + + | +|
+ +40 + | ++ + + + + | + // ********************************************************************** |
+ +41 + | ++ + + + + | + // ******** methods |
+ +42 + | ++ + + + + | + public static Logger getLogger() |
+ +43 + | ++ + + + + | + { |
+ +44 + | +
+
+1
+
+1. getLogger : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::initLogs → SURVIVED + + + |
+ initLogs(); |
+ +45 + | +
+
+1
+
+1. getLogger : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::getLogger to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(Instance.StandardLogger); |
+ +46 + | ++ + + + + | + } |
+ +47 + | ++ + + + + | +|
+ +48 + | ++ + + + + | + // ********************************************************************** |
+ +49 + | ++ + + + + | + public static void clearLogs() |
+ +50 + | ++ + + + + | + { |
+ +51 + | ++ + + + + | + File theFile = null; |
+ +52 + | ++ + + + + | +|
+ +53 + | +
+
+1
+
+1. clearLogs : negated conditional → NO_COVERAGE + + + |
+ if (Instance != null) |
+ +54 + | ++ + + + + | + { |
+ +55 + | ++ + + + + | + Instance.StdLogHandler = null; |
+ +56 + | ++ + + + + | + Instance.StandardLogger = null; |
+ +57 + | ++ + + + + | + Instance = null; |
+ +58 + | ++ + + + + | + } |
+ +59 + | ++ + + + + | + // delete file if it already exists |
+ +60 + | ++ + + + + | + theFile = new File(LogFileName); |
+ +61 + | +
+
+1
+
+1. clearLogs : negated conditional → NO_COVERAGE + + + |
+ if (theFile.exists()) |
+ +62 + | ++ + + + + | + { |
+ +63 + | ++ + + + + | + theFile.delete(); |
+ +64 + | ++ + + + + | + } |
+ +65 + | ++ + + + + | +|
+ +66 + | ++ + + + + | + return; |
+ +67 + | ++ + + + + | + } |
+ +68 + | ++ + + + + | +|
+ +69 + | ++ + + + + | + // ********************************************************************** |
+ +70 + | ++ + + + + | + // protected |
+ +71 + | ++ + + + + | + // ********************************************************************** |
+ +72 + | ++ + + + + | + // ******** attributes |
+ +73 + | ++ + + + + | + protected static MyLogger Instance = null; |
+ +74 + | ++ + + + + | + protected Logger StandardLogger = null; |
+ +75 + | ++ + + + + | + protected Handler StdLogHandler = null; |
+ +76 + | ++ + + + + | + protected MyUselessClass MyValues = null; |
+ +77 + | ++ + + + + | +|
+ +78 + | ++ + + + + | + // ********************************************************************** |
+ +79 + | ++ + + + + | + // ******** methods |
+ +80 + | ++ + + + + | + protected static Level stringToLevel(String level) |
+ +81 + | ++ + + + + | + { |
+ +82 + | ++ + + + + | + // levels: OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL |
+ +83 + | ++ + + + + | + Level theLevel = Level.WARNING; |
+ +84 + | ++ + + + + | +|
+ +85 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ if (level.equals("OFF")) |
+ +86 + | ++ + + + + | + { |
+ +87 + | ++ + + + + | + theLevel = Level.OFF; |
+ +88 + | ++ + + + + | + } |
+ +89 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("SEVERE")) |
+ +90 + | ++ + + + + | + { |
+ +91 + | ++ + + + + | + theLevel = Level.SEVERE; |
+ +92 + | ++ + + + + | + } |
+ +93 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("WARNING")) |
+ +94 + | ++ + + + + | + { |
+ +95 + | ++ + + + + | + theLevel = Level.WARNING; |
+ +96 + | ++ + + + + | + } |
+ +97 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("INFO")) |
+ +98 + | ++ + + + + | + { |
+ +99 + | ++ + + + + | + theLevel = Level.INFO; |
+ +100 + | ++ + + + + | + } |
+ +101 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("CONFIG")) |
+ +102 + | ++ + + + + | + { |
+ +103 + | ++ + + + + | + theLevel = Level.CONFIG; |
+ +104 + | ++ + + + + | + } |
+ +105 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINE")) |
+ +106 + | ++ + + + + | + { |
+ +107 + | ++ + + + + | + theLevel = Level.FINE; |
+ +108 + | ++ + + + + | + } |
+ +109 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINER")) |
+ +110 + | ++ + + + + | + { |
+ +111 + | ++ + + + + | + theLevel = Level.FINER; |
+ +112 + | ++ + + + + | + } |
+ +113 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINEST")) |
+ +114 + | ++ + + + + | + { |
+ +115 + | ++ + + + + | + theLevel = Level.FINEST; |
+ +116 + | ++ + + + + | + } |
+ +117 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("ALL")) |
+ +118 + | ++ + + + + | + { |
+ +119 + | ++ + + + + | + theLevel = Level.ALL; |
+ +120 + | ++ + + + + | + } |
+ +121 + | ++ + + + + | +|
+ +122 + | +
+
+1
+
+1. stringToLevel : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::stringToLevel to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(theLevel); |
+ +123 + | ++ + + + + | + } |
+ +124 + | ++ + + + + | +|
+ +125 + | ++ + + + + | + // ********************************************************************** |
+ +126 + | ++ + + + + | + protected static String levelToString(Level level) |
+ +127 + | ++ + + + + | + { |
+ +128 + | ++ + + + + | + // levels: OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL |
+ +129 + | ++ + + + + | + String theLevel = "WARNING"; |
+ +130 + | ++ + + + + | +|
+ +131 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ if (level == Level.OFF) |
+ +132 + | ++ + + + + | + { |
+ +133 + | ++ + + + + | + theLevel = "OFF"; |
+ +134 + | ++ + + + + | + } |
+ +135 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.SEVERE) |
+ +136 + | ++ + + + + | + { |
+ +137 + | ++ + + + + | + theLevel = "SEVERE"; |
+ +138 + | ++ + + + + | + } |
+ +139 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.WARNING) |
+ +140 + | ++ + + + + | + { |
+ +141 + | ++ + + + + | + theLevel = "WARNING"; |
+ +142 + | ++ + + + + | + } |
+ +143 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.INFO) |
+ +144 + | ++ + + + + | + { |
+ +145 + | ++ + + + + | + theLevel = "INFO"; |
+ +146 + | ++ + + + + | + } |
+ +147 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.CONFIG) |
+ +148 + | ++ + + + + | + { |
+ +149 + | ++ + + + + | + theLevel = "CONFIG"; |
+ +150 + | ++ + + + + | + } |
+ +151 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINE) |
+ +152 + | ++ + + + + | + { |
+ +153 + | ++ + + + + | + theLevel = "FINE"; |
+ +154 + | ++ + + + + | + } |
+ +155 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINER) |
+ +156 + | ++ + + + + | + { |
+ +157 + | ++ + + + + | + theLevel = "FINER"; |
+ +158 + | ++ + + + + | + } |
+ +159 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINEST) |
+ +160 + | ++ + + + + | + { |
+ +161 + | ++ + + + + | + theLevel = "FINEST"; |
+ +162 + | ++ + + + + | + } |
+ +163 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.ALL) |
+ +164 + | ++ + + + + | + { |
+ +165 + | ++ + + + + | + theLevel = "ALL"; |
+ +166 + | ++ + + + + | + } |
+ +167 + | ++ + + + + | +|
+ +168 + | +
+
+1
+
+1. levelToString : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::levelToString to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(theLevel); |
+ +169 + | ++ + + + + | + } |
+ +170 + | ++ + + + + | +|
+ +171 + | ++ + + + + | + // ********************************************************************** |
+ +172 + | ++ + + + + | + protected static void initLogs() |
+ +173 + | ++ + + + + | + { |
+ +174 + | ++ + + + + | + Formatter logFormater = null; |
+ +175 + | ++ + + + + | + boolean fileCreated = false; |
+ +176 + | +
+
+1
+
+1. initLogs : removed call to java/util/Locale::setDefault → SURVIVED + + + |
+ Locale.setDefault(Locale.ENGLISH); |
+ +177 + | ++ + + + + | +|
+ +178 + | +
+
+1
+
+1. initLogs : negated conditional → KILLED + + + |
+ if (Instance == null) |
+ +179 + | ++ + + + + | + { |
+ +180 + | ++ + + + + | + Instance = new MyLogger(); |
+ +181 + | ++ + + + + | + Instance.StandardLogger = Logger.getLogger(MyLogger.class.getName()); |
+ +182 + | ++ + + + + | + Instance.StandardLogger.setUseParentHandlers(false); |
+ +183 + | ++ + + + + | + Instance.MyValues = new MyUselessClass(); |
+ +184 + | ++ + + + + | + |
+ +185 + | ++ + + + + | + try |
+ +186 + | ++ + + + + | + { |
+ +187 + | ++ + + + + | + Instance.StdLogHandler = new FileHandler(LogFileName, false); |
+ +188 + | ++ + + + + | + Instance.StdLogHandler.setFormatter(new SimpleFormatter()); |
+ +189 + | ++ + + + + | + fileCreated = true; |
+ +190 + | ++ + + + + | + } |
+ +191 + | ++ + + + + | + catch (Exception e) |
+ +192 + | ++ + + + + | + { |
+ +193 + | ++ + + + + | + Instance.StdLogHandler = new ConsoleHandler(); |
+ +194 + | ++ + + + + | + } |
+ +195 + | ++ + + + + | + Instance.StandardLogger.addHandler(Instance.StdLogHandler); |
+ +196 + | ++ + + + + | + |
+ +197 + | ++ + + + + | + Instance.StandardLogger.setLevel(Level.WARNING); |
+ +198 + | ++ + + + + | + Instance.StdLogHandler.setLevel(Level.WARNING); |
+ +199 + | ++ + + + + | + |
+ +200 + | +
+
+1
+
+1. initLogs : negated conditional → SURVIVED + + + |
+ if (fileCreated) |
+ +201 + | ++ + + + + | + { |
+ +202 + | ++ + + + + | + Instance.StandardLogger.info("Log file created"); |
+ +203 + | +
+
+1
+
+1. initLogs : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyUselessClass::setAll → SURVIVED + + + |
+ Instance.MyValues.setAll(); |
+ +204 + | ++ + + + + | + } |
+ +205 + | ++ + + + + | + else |
+ +206 + | ++ + + + + | + { |
+ +207 + | +
+
+1
+
+1. initLogs : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyUselessClass::clearAll → NO_COVERAGE + + + |
+ Instance.MyValues.clearAll(); |
+ +208 + | ++ + + + + | + Instance.StandardLogger.warning |
+ +209 + | ++ + + + + | + ("Cannot create log file, redirecting logs to the console"); |
+ +210 + | ++ + + + + | + } |
+ +211 + | ++ + + + + | + } |
+ +212 + | ++ + + + + | + } |
+ +213 + | ++ + + + + | +} |
Mutations | ||
30 | ++ |
+
+
+
+ 1.1 |
+
44 | ++ |
+
+
+
+ 1.1 |
+
45 | ++ |
+
+
+
+ 1.1 |
+
53 | ++ |
+
+
+
+ 1.1 |
+
61 | ++ |
+
+
+
+ 1.1 |
+
85 | ++ |
+
+
+
+ 1.1 |
+
89 | ++ |
+
+
+
+ 1.1 |
+
93 | ++ |
+
+
+
+ 1.1 |
+
97 | ++ |
+
+
+
+ 1.1 |
+
101 | ++ |
+
+
+
+ 1.1 |
+
105 | ++ |
+
+
+
+ 1.1 |
+
109 | ++ |
+
+
+
+ 1.1 |
+
113 | ++ |
+
+
+
+ 1.1 |
+
117 | ++ |
+
+
+
+ 1.1 |
+
122 | ++ |
+
+
+
+ 1.1 |
+
131 | ++ |
+
+
+
+ 1.1 |
+
135 | ++ |
+
+
+
+ 1.1 |
+
139 | ++ |
+
+
+
+ 1.1 |
+
143 | ++ |
+
+
+
+ 1.1 |
+
147 | ++ |
+
+
+
+ 1.1 |
+
151 | ++ |
+
+
+
+ 1.1 |
+
155 | ++ |
+
+
+
+ 1.1 |
+
159 | ++ |
+
+
+
+ 1.1 |
+
163 | ++ |
+
+
+
+ 1.1 |
+
168 | ++ |
+
+
+
+ 1.1 |
+
176 | ++ |
+
+
+
+ 1.1 |
+
178 | ++ |
+
+
+
+ 1.1 |
+
200 | ++ |
+
+
+
+ 1.1 |
+
203 | ++ |
+
+
+
+ 1.1 |
+
207 | ++ |
+
+
+
+ 1.1 |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
1 | +67% | +77% | +
Name | +Line Coverage | +Mutation Coverage | +
---|---|---|
MyLogger.java | +67% |
+ 77% |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dnoo.dnooStorage; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +// ********************************************************************** |
+ +4 + | ++ + + + + | +import java.io.PrintStream; |
+ +5 + | ++ + + + + | +import java.io.BufferedReader; |
+ +6 + | ++ + + + + | +import java.io.FileReader; |
+ +7 + | ++ + + + + | +import java.io.IOException; |
+ +8 + | ++ + + + + | +import java.io.File; |
+ +9 + | ++ + + + + | +import java.util.*; |
+ +10 + | ++ + + + + | +|
+ +11 + | ++ + + + + | +import eu.stamp_project.examples.dnoo.dnooLogs.MyLogger; |
+ +12 + | ++ + + + + | +|
+ +13 + | ++ + + + + | +// ********************************************************************** |
+ +14 + | ++ + + + + | +public class MyStorage |
+ +15 + | ++ + + + + | +{ |
+ +16 + | ++ + + + + | + // ********************************************************************** |
+ +17 + | ++ + + + + | + // public |
+ +18 + | ++ + + + + | + // ********************************************************************** |
+ +19 + | ++ + + + + | + // ******** methods |
+ +20 + | ++ + + + + | +|
+ +21 + | ++ + + + + | + // ********************************************************************** |
+ +22 + | ++ + + + + | + public static void deleteFile(String fileName) |
+ +23 + | ++ + + + + | + { |
+ +24 + | ++ + + + + | + String methodName = "deleteFile"; |
+ +25 + | ++ + + + + | + MyLogger.getLogger().entering("MyStorage", methodName); |
+ +26 + | ++ + + + + | +|
+ +27 + | ++ + + + + | + File theFile = null; |
+ +28 + | ++ + + + + | +|
+ +29 + | ++ + + + + | + // delete file if it already exists |
+ +30 + | ++ + + + + | + theFile = new File(fileName); |
+ +31 + | +
+
+1
+
+1. deleteFile : negated conditional → KILLED + + + |
+ if (theFile.exists()) |
+ +32 + | ++ + + + + | + { |
+ +33 + | ++ + + + + | + theFile.delete(); |
+ +34 + | ++ + + + + | + } |
+ +35 + | ++ + + + + | +|
+ +36 + | ++ + + + + | + MyLogger.getLogger().exiting("MyStorage", methodName); |
+ +37 + | ++ + + + + | + } |
+ +38 + | ++ + + + + | +|
+ +39 + | ++ + + + + | + // ********************************************************************** |
+ +40 + | ++ + + + + | + public MyStorage() |
+ +41 + | ++ + + + + | + { |
+ +42 + | ++ + + + + | + String methodName = "MyStorage"; |
+ +43 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +44 + | ++ + + + + | +|
+ +45 + | ++ + + + + | + FileName = "my_storage.txt"; |
+ +46 + | ++ + + + + | + MyData = new ArrayList<String>(); |
+ +47 + | ++ + + + + | +|
+ +48 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +49 + | ++ + + + + | + } |
+ +50 + | ++ + + + + | +|
+ +51 + | ++ + + + + | + // ********************************************************************** |
+ +52 + | ++ + + + + | + public MyStorage(String fileName) |
+ +53 + | ++ + + + + | + { |
+ +54 + | ++ + + + + | + String methodName = "MyStorage_String"; |
+ +55 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +56 + | ++ + + + + | +|
+ +57 + | ++ + + + + | + this.FileName = fileName; |
+ +58 + | ++ + + + + | + MyData = new ArrayList<String>(); |
+ +59 + | ++ + + + + | +|
+ +60 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +61 + | ++ + + + + | + } |
+ +62 + | ++ + + + + | +|
+ +63 + | ++ + + + + | + // ********************************************************************** |
+ +64 + | ++ + + + + | + public void readData() |
+ +65 + | ++ + + + + | + { |
+ +66 + | ++ + + + + | + String methodName = "readData"; |
+ +67 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +68 + | ++ + + + + | +|
+ +69 + | ++ + + + + | + BufferedReader myBuffer = null; |
+ +70 + | ++ + + + + | + FileReader myFile = null; |
+ +71 + | ++ + + + + | + String currentLine; |
+ +72 + | ++ + + + + | +|
+ +73 + | ++ + + + + | + try |
+ +74 + | ++ + + + + | + { |
+ +75 + | ++ + + + + | + myFile = new FileReader(FileName); |
+ +76 + | ++ + + + + | + myBuffer = new BufferedReader(myFile); |
+ +77 + | +
+
+1
+
+1. readData : negated conditional → KILLED + + + |
+ while ((currentLine = myBuffer.readLine()) != null) |
+ +78 + | ++ + + + + | + { |
+ +79 + | +
+
+1
+
+1. readData : removed call to eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::addData → KILLED + + + |
+ addData(currentLine); |
+ +80 + | ++ + + + + | + } |
+ +81 + | ++ + + + + | + } |
+ +82 + | ++ + + + + | + catch(IOException e) |
+ +83 + | ++ + + + + | + { |
+ +84 + | +
+
+1
+
+1. readData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: cannot read " + FileName); |
+ +85 + | ++ + + + + | + } |
+ +86 + | ++ + + + + | +|
+ +87 + | ++ + + + + | + try |
+ +88 + | ++ + + + + | + { |
+ +89 + | +
+
+1
+
+1. readData : negated conditional → SURVIVED + + + |
+ if (myBuffer != null) |
+ +90 + | ++ + + + + | + { |
+ +91 + | +
+
+1
+
+1. readData : removed call to java/io/BufferedReader::close → SURVIVED + + + |
+ myBuffer.close(); |
+ +92 + | ++ + + + + | + } |
+ +93 + | +
+
+1
+
+1. readData : negated conditional → SURVIVED + + + |
+ if (myFile != null) |
+ +94 + | ++ + + + + | + { |
+ +95 + | +
+
+1
+
+1. readData : removed call to java/io/FileReader::close → SURVIVED + + + |
+ myFile.close(); |
+ +96 + | ++ + + + + | + } |
+ +97 + | ++ + + + + | + } |
+ +98 + | ++ + + + + | + catch(IOException e) |
+ +99 + | ++ + + + + | + { |
+ +100 + | +
+
+1
+
+1. readData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: closing " + FileName); |
+ +101 + | ++ + + + + | + } |
+ +102 + | ++ + + + + | +|
+ +103 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +104 + | ++ + + + + | + } |
+ +105 + | ++ + + + + | +|
+ +106 + | ++ + + + + | + // ********************************************************************** |
+ +107 + | ++ + + + + | + public void saveData() |
+ +108 + | ++ + + + + | + { |
+ +109 + | ++ + + + + | + String methodName = "saveData"; |
+ +110 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +111 + | ++ + + + + | +|
+ +112 + | ++ + + + + | + try |
+ +113 + | ++ + + + + | + { |
+ +114 + | ++ + + + + | + PrintStream writer = new PrintStream(new File(FileName)); |
+ +115 + | +
+
+2
+
+1. saveData : changed conditional boundary → KILLED +2. saveData : negated conditional → KILLED + + + |
+ for (int i = 0; i < getDataSize(); i++) |
+ +116 + | ++ + + + + | + { |
+ +117 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::println → KILLED + + + |
+ writer.println(getData(i)); |
+ +118 + | ++ + + + + | + } |
+ +119 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::close → SURVIVED + + + |
+ writer.close(); |
+ +120 + | ++ + + + + | + } |
+ +121 + | ++ + + + + | + catch(IOException e) |
+ +122 + | ++ + + + + | + { |
+ +123 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: cannot write into " + FileName); |
+ +124 + | ++ + + + + | + } |
+ +125 + | ++ + + + + | +|
+ +126 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +127 + | ++ + + + + | + } |
+ +128 + | ++ + + + + | +|
+ +129 + | ++ + + + + | + // ********************************************************************** |
+ +130 + | ++ + + + + | + public boolean isEqual(MyStorage anotherStorage) |
+ +131 + | ++ + + + + | + { |
+ +132 + | ++ + + + + | + String methodName = "isEqual"; |
+ +133 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +134 + | ++ + + + + | +|
+ +135 + | +
+
+1
+
+1. isEqual : negated conditional → KILLED + + + |
+ boolean areEqual = (getDataSize() == anotherStorage.getDataSize()); |
+ +136 + | ++ + + + + | +|
+ +137 + | +
+
+4
+
+1. isEqual : negated conditional → SURVIVED +2. isEqual : negated conditional → SURVIVED +3. isEqual : changed conditional boundary → KILLED +4. isEqual : Changed increment from 1 to -1 → KILLED + + + |
+ for (int i = 0; i < getDataSize() && areEqual; i++) |
+ +138 + | ++ + + + + | + { |
+ +139 + | +
+
+1
+
+1. isEqual : negated conditional → KILLED + + + |
+ if (! (getData(i).equals(anotherStorage.getData(i)))) |
+ +140 + | ++ + + + + | + { |
+ +141 + | ++ + + + + | + areEqual = false; |
+ +142 + | ++ + + + + | + } |
+ +143 + | ++ + + + + | + } |
+ +144 + | ++ + + + + | +|
+ +145 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +146 + | +
+
+1
+
+1. isEqual : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(areEqual); |
+ +147 + | ++ + + + + | + } |
+ +148 + | ++ + + + + | +|
+ +149 + | ++ + + + + | + // ********************************************************************** |
+ +150 + | ++ + + + + | + public boolean dataAreEqual(ArrayList<String> otherData) |
+ +151 + | ++ + + + + | + { |
+ +152 + | ++ + + + + | + String methodName = "dataAreEqual"; |
+ +153 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +154 + | ++ + + + + | +|
+ +155 + | +
+
+1
+
+1. dataAreEqual : negated conditional → KILLED + + + |
+ boolean areEqual = (getDataSize() == otherData.size()); |
+ +156 + | ++ + + + + | +|
+ +157 + | +
+
+4
+
+1. dataAreEqual : negated conditional → SURVIVED +2. dataAreEqual : negated conditional → SURVIVED +3. dataAreEqual : changed conditional boundary → KILLED +4. dataAreEqual : Changed increment from 1 to -1 → KILLED + + + |
+ for (int i = 0; i < getDataSize() && areEqual; i++) |
+ +158 + | ++ + + + + | + { |
+ +159 + | +
+
+1
+
+1. dataAreEqual : negated conditional → KILLED + + + |
+ if (! (getData(i).equals(otherData.get(i)))) |
+ +160 + | ++ + + + + | + { |
+ +161 + | ++ + + + + | + areEqual = false; |
+ +162 + | ++ + + + + | + } |
+ +163 + | ++ + + + + | + } |
+ +164 + | ++ + + + + | +|
+ +165 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +166 + | +
+
+1
+
+1. dataAreEqual : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(areEqual); |
+ +167 + | ++ + + + + | + } |
+ +168 + | ++ + + + + | +|
+ +169 + | ++ + + + + | + // ********************************************************************** |
+ +170 + | ++ + + + + | + // ******** attributes |
+ +171 + | ++ + + + + | +|
+ +172 + | ++ + + + + | + // ********************************************************************** |
+ +173 + | ++ + + + + | + public String getFileName() |
+ +174 + | ++ + + + + | + { |
+ +175 + | +
+
+1
+
+1. getFileName : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::getFileName to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(FileName); |
+ +176 + | ++ + + + + | + } |
+ +177 + | ++ + + + + | +|
+ +178 + | ++ + + + + | + // ********************************************************************** |
+ +179 + | ++ + + + + | + public int getDataSize() |
+ +180 + | ++ + + + + | + { |
+ +181 + | +
+
+1
+
+1. getDataSize : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(MyData.size()); |
+ +182 + | ++ + + + + | + } |
+ +183 + | ++ + + + + | +|
+ +184 + | ++ + + + + | + // ********************************************************************** |
+ +185 + | ++ + + + + | + public String getData(int index) |
+ +186 + | ++ + + + + | + { |
+ +187 + | +
+
+1
+
+1. getData : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::getData to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(MyData.get(index)); |
+ +188 + | ++ + + + + | + } |
+ +189 + | ++ + + + + | +|
+ +190 + | ++ + + + + | + // ********************************************************************** |
+ +191 + | ++ + + + + | + public void addData(String aData) |
+ +192 + | ++ + + + + | + { |
+ +193 + | ++ + + + + | + MyLogger.getLogger().finest("IN : DataSize = " + Integer.toString(getDataSize()) |
+ +194 + | ++ + + + + | + + " - aData = " + aData); |
+ +195 + | ++ + + + + | +|
+ +196 + | ++ + + + + | + MyData.add(aData); |
+ +197 + | ++ + + + + | +|
+ +198 + | ++ + + + + | + MyLogger.getLogger().finest("OUT: DataSize = " + Integer.toString(getDataSize())); |
+ +199 + | ++ + + + + | + } |
+ +200 + | ++ + + + + | +|
+ +201 + | ++ + + + + | + // ********************************************************************** |
+ +202 + | ++ + + + + | + public void delData(String aData) |
+ +203 + | ++ + + + + | + { |
+ +204 + | ++ + + + + | + MyLogger.getLogger().finest("IN : DataSize = " + Integer.toString(getDataSize())); |
+ +205 + | ++ + + + + | +|
+ +206 + | ++ + + + + | + boolean found = false; |
+ +207 + | ++ + + + + | +|
+ +208 + | +
+
+4
+
+1. delData : changed conditional boundary → NO_COVERAGE +2. delData : Changed increment from 1 to -1 → NO_COVERAGE +3. delData : negated conditional → NO_COVERAGE +4. delData : negated conditional → NO_COVERAGE + + + |
+ for (int i = 0; i < getDataSize() && ! found; i++) |
+ +209 + | ++ + + + + | + { |
+ +210 + | +
+
+1
+
+1. delData : negated conditional → NO_COVERAGE + + + |
+ if (getData(i).equals(aData)) |
+ +211 + | ++ + + + + | + { |
+ +212 + | ++ + + + + | + MyData.remove(i); |
+ +213 + | ++ + + + + | + found = true; |
+ +214 + | ++ + + + + | + } |
+ +215 + | ++ + + + + | + } |
+ +216 + | ++ + + + + | +|
+ +217 + | ++ + + + + | + MyLogger.getLogger().finest("OUT: DataSize = " + Integer.toString(getDataSize()) |
+ +218 + | ++ + + + + | + + " - found = " + Boolean.toString(found)); |
+ +219 + | ++ + + + + | + } |
+ +220 + | ++ + + + + | +|
+ +221 + | ++ + + + + | + // ********************************************************************** |
+ +222 + | ++ + + + + | + // private |
+ +223 + | ++ + + + + | + // ********************************************************************** |
+ +224 + | ++ + + + + | + // ******** attributes |
+ +225 + | ++ + + + + | + private String FileName; |
+ +226 + | ++ + + + + | + private ArrayList<String> MyData; |
+ +227 + | ++ + + + + | +} |
Mutations | ||
31 | ++ |
+
+
+
+ 1.1 |
+
77 | ++ |
+
+
+
+ 1.1 |
+
79 | ++ |
+
+
+
+ 1.1 |
+
84 | ++ |
+
+
+
+ 1.1 |
+
89 | ++ |
+
+
+
+ 1.1 |
+
91 | ++ |
+
+
+
+ 1.1 |
+
93 | ++ |
+
+
+
+ 1.1 |
+
95 | ++ |
+
+
+
+ 1.1 |
+
100 | ++ |
+
+
+
+ 1.1 |
+
115 | ++ |
+
+
+
+ 1.1 2.2 |
+
117 | ++ |
+
+
+
+ 1.1 |
+
119 | ++ |
+
+
+
+ 1.1 |
+
123 | ++ |
+
+
+
+ 1.1 |
+
135 | ++ |
+
+
+
+ 1.1 |
+
137 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
139 | ++ |
+
+
+
+ 1.1 |
+
146 | ++ |
+
+
+
+ 1.1 |
+
155 | ++ |
+
+
+
+ 1.1 |
+
157 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
159 | ++ |
+
+
+
+ 1.1 |
+
166 | ++ |
+
+
+
+ 1.1 |
+
175 | ++ |
+
+
+
+ 1.1 |
+
181 | ++ |
+
+
+
+ 1.1 |
+
187 | ++ |
+
+
+
+ 1.1 |
+
208 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
210 | ++ |
+
+
+
+ 1.1 |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
1 | +80% | +53% | +
Name | +Line Coverage | +Mutation Coverage | +
---|---|---|
MyStorage.java | +80% |
+ 53% |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
3 | +80% | +65% | +
Name | +Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|---|
eu.stamp_project.examples.dnoo.dnooHello | +1 | +93% |
+ 70% |
+
eu.stamp_project.examples.dnoo.dnooLogs | +1 | +67% |
+ 77% |
+
eu.stamp_project.examples.dnoo.dnooStorage | +1 | +80% |
+ 53% |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dnoo.dnooHello; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +// ********************************************************************** |
+ +4 + | ++ + + + + | +import eu.stamp_project.examples.dnoo.dnooStorage.MyStorage; |
+ +5 + | ++ + + + + | +import eu.stamp_project.examples.dnoo.dnooLogs.MyLogger; |
+ +6 + | ++ + + + + | +|
+ +7 + | ++ + + + + | +// ********************************************************************** |
+ +8 + | ++ + + + + | +public class HelloApp |
+ +9 + | ++ + + + + | +{ |
+ +10 + | ++ + + + + | + // ********************************************************************** |
+ +11 + | ++ + + + + | + // public |
+ +12 + | ++ + + + + | + // ********************************************************************** |
+ +13 + | ++ + + + + | + // ******** methods |
+ +14 + | ++ + + + + | +|
+ +15 + | ++ + + + + | + // ********************************************************************** |
+ +16 + | ++ + + + + | + public HelloApp() |
+ +17 + | ++ + + + + | + { |
+ +18 + | ++ + + + + | + String methodName = "HelloApp"; |
+ +19 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +20 + | ++ + + + + | +|
+ +21 + | ++ + + + + | + MyPrintCount = 1; |
+ +22 + | ++ + + + + | + MyTraces = null; |
+ +23 + | ++ + + + + | + MyTracesName = "myHelloApp.traces"; |
+ +24 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +25 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +26 + | ++ + + + + | +|
+ +27 + | ++ + + + + | + MyLogger.getLogger().info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +28 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +29 + | ++ + + + + | +|
+ +30 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +31 + | ++ + + + + | + } |
+ +32 + | ++ + + + + | +|
+ +33 + | ++ + + + + | + // ********************************************************************** |
+ +34 + | ++ + + + + | + public HelloApp(int printCount) |
+ +35 + | ++ + + + + | + { |
+ +36 + | ++ + + + + | + String methodName = "HelloApp_int"; |
+ +37 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +38 + | ++ + + + + | +|
+ +39 + | ++ + + + + | + MyPrintCount = printCount; |
+ +40 + | ++ + + + + | + MyTraces = null; |
+ +41 + | ++ + + + + | + MyTracesName = "myHelloApp.traces"; |
+ +42 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +43 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +44 + | ++ + + + + | +|
+ +45 + | ++ + + + + | + MyLogger.getLogger().info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +46 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +47 + | ++ + + + + | +|
+ +48 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +49 + | ++ + + + + | + } |
+ +50 + | ++ + + + + | +|
+ +51 + | ++ + + + + | + // ********************************************************************** |
+ +52 + | ++ + + + + | + public HelloApp(String tracesName) |
+ +53 + | ++ + + + + | + { |
+ +54 + | ++ + + + + | + String methodName = "HelloApp_String"; |
+ +55 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +56 + | ++ + + + + | +|
+ +57 + | ++ + + + + | + MyPrintCount = 1; |
+ +58 + | ++ + + + + | + MyTraces = null; |
+ +59 + | ++ + + + + | + MyTracesName = tracesName; |
+ +60 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +61 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +62 + | ++ + + + + | +|
+ +63 + | ++ + + + + | + MyLogger.getLogger().info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +64 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +65 + | ++ + + + + | +|
+ +66 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +67 + | ++ + + + + | + } |
+ +68 + | ++ + + + + | +|
+ +69 + | ++ + + + + | + // ********************************************************************** |
+ +70 + | ++ + + + + | + public HelloApp(int printCount, String tracesName) |
+ +71 + | ++ + + + + | + { |
+ +72 + | ++ + + + + | + String methodName = "HelloApp_int_String"; |
+ +73 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +74 + | ++ + + + + | +|
+ +75 + | ++ + + + + | + MyPrintCount = printCount; |
+ +76 + | ++ + + + + | + MyTraces = null; |
+ +77 + | ++ + + + + | + MyTracesName = tracesName; |
+ +78 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +79 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +80 + | ++ + + + + | +|
+ +81 + | ++ + + + + | + MyLogger.getLogger().info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +82 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +83 + | ++ + + + + | +|
+ +84 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +85 + | ++ + + + + | + } |
+ +86 + | ++ + + + + | +|
+ +87 + | ++ + + + + | + // ********************************************************************** |
+ +88 + | ++ + + + + | + public void run() |
+ +89 + | ++ + + + + | + { |
+ +90 + | ++ + + + + | + String methodName = "run"; |
+ +91 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +92 + | ++ + + + + | +|
+ +93 + | ++ + + + + | + String indent = "-"; |
+ +94 + | ++ + + + + | + String countString = Integer.toString(MyPrintCount); |
+ +95 + | ++ + + + + | +|
+ +96 + | +
+
+2
+
+1. run : changed conditional boundary → KILLED +2. run : negated conditional → KILLED + + + |
+ if (MyTracesName.length() > 0) |
+ +97 + | ++ + + + + | + { |
+ +98 + | ++ + + + + | + MyTraces = new MyStorage(MyTracesName); |
+ +99 + | ++ + + + + | + } |
+ +100 + | ++ + + + + | + else |
+ +101 + | ++ + + + + | + { |
+ +102 + | ++ + + + + | + MyTraces = new MyStorage(); |
+ +103 + | ++ + + + + | + } |
+ +104 + | ++ + + + + | +|
+ +105 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::addData → KILLED + + + |
+ MyTraces.addData(countString); |
+ +106 + | ++ + + + + | +|
+ +107 + | +
+
+3
+
+1. run : Changed increment from 1 to -1 → TIMED_OUT +2. run : negated conditional → TIMED_OUT +3. run : changed conditional boundary → KILLED + + + |
+ for (int i = 1; i < MyPrintCount; i++) |
+ +108 + | ++ + + + + | + { |
+ +109 + | ++ + + + + | + indent = indent + "-"; |
+ +110 + | ++ + + + + | + } |
+ +111 + | ++ + + + + | + MyLogger.getLogger().fine("indent = '" + indent + "'"); |
+ +112 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooHello/HelloApp::myPrint → KILLED + + + |
+ myPrint(indent); |
+ +113 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooHello/HelloApp::myPrint → KILLED + + + |
+ myPrint(indent + " Hello World !"); |
+ +114 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooHello/HelloApp::myPrint → SURVIVED + + + |
+ myPrint(indent); |
+ +115 + | ++ + + + + | +|
+ +116 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::saveData → KILLED + + + |
+ MyTraces.saveData(); |
+ +117 + | ++ + + + + | +|
+ +118 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +119 + | ++ + + + + | + } |
+ +120 + | ++ + + + + | +|
+ +121 + | ++ + + + + | + // ********************************************************************** |
+ +122 + | ++ + + + + | + public void computeMyUselessResult() |
+ +123 + | ++ + + + + | + { |
+ +124 + | ++ + + + + | + // PI = 3,141 592 653 589 793 - PI (10 chiffres exactes) ~ 104348 / 33215 |
+ +125 + | ++ + + + + | + // PI = 3,1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 |
+ +126 + | ++ + + + + | + // 5923078164 0628620899 8628034825 3421170679 |
+ +127 + | ++ + + + + | + // PHI = (1 + rootsquare(5)) / 2 = 1,618 033 988 7 |
+ +128 + | ++ + + + + | + // PHI = 1,618 033 988 749 894 848 204 586 834 365 638 117 720 309 179 805 |
+ +129 + | ++ + + + + | + // 762 862 135 448 622 705 260 462 189 024 497 072 072 041 |
+ +130 + | ++ + + + + | + } |
+ +131 + | ++ + + + + | +|
+ +132 + | ++ + + + + | + // ********************************************************************** |
+ +133 + | ++ + + + + | + // ******** attributes |
+ +134 + | ++ + + + + | +|
+ +135 + | ++ + + + + | + // ********************************************************************** |
+ +136 + | ++ + + + + | + public int getMyPrintCount() |
+ +137 + | ++ + + + + | + { |
+ +138 + | +
+
+1
+
+1. getMyPrintCount : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(MyPrintCount); |
+ +139 + | ++ + + + + | + } |
+ +140 + | ++ + + + + | +|
+ +141 + | ++ + + + + | + // ********************************************************************** |
+ +142 + | ++ + + + + | + public String getMyTracesName() |
+ +143 + | ++ + + + + | + { |
+ +144 + | +
+
+1
+
+1. getMyTracesName : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooHello/HelloApp::getMyTracesName to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(MyTracesName); |
+ +145 + | ++ + + + + | + } |
+ +146 + | ++ + + + + | +|
+ +147 + | ++ + + + + | + // ********************************************************************** |
+ +148 + | ++ + + + + | + public boolean getShouldPrintOnStdout() |
+ +149 + | ++ + + + + | + { |
+ +150 + | +
+
+1
+
+1. getShouldPrintOnStdout : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(ShouldPrintOnStdout); |
+ +151 + | ++ + + + + | + } |
+ +152 + | ++ + + + + | +|
+ +153 + | ++ + + + + | + // ********** |
+ +154 + | ++ + + + + | + public void setShouldPrintOnStdout(boolean value) |
+ +155 + | ++ + + + + | + { |
+ +156 + | ++ + + + + | + ShouldPrintOnStdout = value; |
+ +157 + | ++ + + + + | + } |
+ +158 + | ++ + + + + | +|
+ +159 + | ++ + + + + | + // ********************************************************************** |
+ +160 + | ++ + + + + | + // ******** associations |
+ +161 + | ++ + + + + | +|
+ +162 + | ++ + + + + | + // ********************************************************************** |
+ +163 + | ++ + + + + | + public int cardMyTraces() |
+ +164 + | ++ + + + + | + { |
+ +165 + | ++ + + + + | + int theCard = 0; |
+ +166 + | ++ + + + + | +|
+ +167 + | +
+
+1
+
+1. cardMyTraces : negated conditional → KILLED + + + |
+ if (MyTraces != null) |
+ +168 + | ++ + + + + | + { |
+ +169 + | ++ + + + + | + theCard = 1; |
+ +170 + | ++ + + + + | + } |
+ +171 + | ++ + + + + | +|
+ +172 + | +
+
+1
+
+1. cardMyTraces : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(theCard); |
+ +173 + | ++ + + + + | + } |
+ +174 + | ++ + + + + | +|
+ +175 + | ++ + + + + | + // ********** |
+ +176 + | ++ + + + + | + public MyStorage getMyTraces() |
+ +177 + | ++ + + + + | + { |
+ +178 + | +
+
+1
+
+1. getMyTraces : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooHello/HelloApp::getMyTraces to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(MyTraces); |
+ +179 + | ++ + + + + | + } |
+ +180 + | ++ + + + + | +|
+ +181 + | ++ + + + + | + // ********************************************************************** |
+ +182 + | ++ + + + + | + // protected |
+ +183 + | ++ + + + + | + // ********************************************************************** |
+ +184 + | ++ + + + + | + // ******** methods |
+ +185 + | ++ + + + + | +|
+ +186 + | ++ + + + + | + // ********************************************************************** |
+ +187 + | ++ + + + + | + protected void myPrint(String message) |
+ +188 + | ++ + + + + | + { |
+ +189 + | +
+
+1
+
+1. myPrint : negated conditional → SURVIVED + + + |
+ if (getShouldPrintOnStdout()) |
+ +190 + | ++ + + + + | + { |
+ +191 + | +
+
+1
+
+1. myPrint : removed call to java/io/PrintStream::println → KILLED + + + |
+ System.out.println(message); |
+ +192 + | ++ + + + + | + } |
+ +193 + | +
+
+1
+
+1. myPrint : removed call to eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::addData → KILLED + + + |
+ MyTraces.addData(message); |
+ +194 + | ++ + + + + | + } |
+ +195 + | ++ + + + + | +|
+ +196 + | ++ + + + + | + // ********************************************************************** |
+ +197 + | ++ + + + + | + // private |
+ +198 + | ++ + + + + | + // ********************************************************************** |
+ +199 + | ++ + + + + | + // ******** attributes |
+ +200 + | ++ + + + + | + private int MyPrintCount; |
+ +201 + | ++ + + + + | + private String MyTracesName; |
+ +202 + | ++ + + + + | + private MyStorage MyTraces; |
+ +203 + | ++ + + + + | + private boolean ShouldPrintOnStdout; |
+ +204 + | ++ + + + + | +} |
Mutations | ||
25 | ++ |
+
+
+
+ 1.1 |
+
43 | ++ |
+
+
+
+ 1.1 |
+
61 | ++ |
+
+
+
+ 1.1 |
+
79 | ++ |
+
+
+
+ 1.1 |
+
96 | ++ |
+
+
+
+ 1.1 2.2 |
+
105 | ++ |
+
+
+
+ 1.1 |
+
107 | ++ |
+
+
+
+ 1.1 2.2 3.3 |
+
112 | ++ |
+
+
+
+ 1.1 |
+
113 | ++ |
+
+
+
+ 1.1 |
+
114 | ++ |
+
+
+
+ 1.1 |
+
116 | ++ |
+
+
+
+ 1.1 |
+
138 | ++ |
+
+
+
+ 1.1 |
+
144 | ++ |
+
+
+
+ 1.1 |
+
150 | ++ |
+
+
+
+ 1.1 |
+
167 | ++ |
+
+
+
+ 1.1 |
+
172 | ++ |
+
+
+
+ 1.1 |
+
178 | ++ |
+
+
+
+ 1.1 |
+
189 | ++ |
+
+
+
+ 1.1 |
+
191 | ++ |
+
+
+
+ 1.1 |
+
193 | ++ |
+
+
+
+ 1.1 |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
1 | +93% | +83% | +
Name | +Line Coverage | +Mutation Coverage | +
---|---|---|
HelloApp.java | +93% |
+ 83% |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dnoo.dnooLogs; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +import java.io.File; |
+ +4 + | ++ + + + + | +import java.util.Locale; |
+ +5 + | ++ + + + + | +// ********************************************************************** |
+ +6 + | ++ + + + + | +import java.util.logging.ConsoleHandler; |
+ +7 + | ++ + + + + | +import java.util.logging.FileHandler; |
+ +8 + | ++ + + + + | +import java.util.logging.Formatter; |
+ +9 + | ++ + + + + | +import java.util.logging.Handler; |
+ +10 + | ++ + + + + | +import java.util.logging.Level; |
+ +11 + | ++ + + + + | +import java.util.logging.Logger; |
+ +12 + | ++ + + + + | +import java.util.logging.SimpleFormatter; |
+ +13 + | ++ + + + + | +|
+ +14 + | ++ + + + + | +// ********************************************************************** |
+ +15 + | ++ + + + + | +public class MyLogger |
+ +16 + | ++ + + + + | +{ |
+ +17 + | ++ + + + + | + // ********************************************************************** |
+ +18 + | ++ + + + + | + // public |
+ +19 + | ++ + + + + | + // ********************************************************************** |
+ +20 + | ++ + + + + | + // ******** attributes |
+ +21 + | ++ + + + + | + public static String LogFileName = "dnoo.log"; |
+ +22 + | ++ + + + + | +|
+ +23 + | ++ + + + + | + // ********************************************************************** |
+ +24 + | ++ + + + + | + // Level: String, public read/write class attribute |
+ +25 + | ++ + + + + | + // levels: "OFF", "SEVERE", "WARNING", "INFO", "CONFIG", "FINE", "FINER", |
+ +26 + | ++ + + + + | + // "FINEST", "ALL" |
+ +27 + | ++ + + + + | + public static String getLevel() |
+ +28 + | ++ + + + + | + { |
+ +29 + | ++ + + + + | + Level currentLevel = getLogger().getLevel(); |
+ +30 + | +
+
+1
+
+1. getLevel : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::getLevel to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(levelToString(currentLevel)); |
+ +31 + | ++ + + + + | + } |
+ +32 + | ++ + + + + | +|
+ +33 + | ++ + + + + | + // *********** |
+ +34 + | ++ + + + + | + public static void setLevel(String level) |
+ +35 + | ++ + + + + | + { |
+ +36 + | ++ + + + + | + getLogger().setLevel(stringToLevel(level)); |
+ +37 + | ++ + + + + | + Instance.StdLogHandler.setLevel(stringToLevel(level)); |
+ +38 + | ++ + + + + | + } |
+ +39 + | ++ + + + + | +|
+ +40 + | ++ + + + + | + // ********************************************************************** |
+ +41 + | ++ + + + + | + // ******** methods |
+ +42 + | ++ + + + + | + public static Logger getLogger() |
+ +43 + | ++ + + + + | + { |
+ +44 + | +
+
+1
+
+1. getLogger : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::initLogs → KILLED + + + |
+ initLogs(); |
+ +45 + | +
+
+1
+
+1. getLogger : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::getLogger to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(Instance.StandardLogger); |
+ +46 + | ++ + + + + | + } |
+ +47 + | ++ + + + + | +|
+ +48 + | ++ + + + + | + // ********************************************************************** |
+ +49 + | ++ + + + + | + public static void clearLogs() |
+ +50 + | ++ + + + + | + { |
+ +51 + | ++ + + + + | + File theFile = null; |
+ +52 + | ++ + + + + | +|
+ +53 + | +
+
+1
+
+1. clearLogs : negated conditional → KILLED + + + |
+ if (Instance != null) |
+ +54 + | ++ + + + + | + { |
+ +55 + | ++ + + + + | + Instance.StdLogHandler = null; |
+ +56 + | ++ + + + + | + Instance.StandardLogger = null; |
+ +57 + | ++ + + + + | + Instance = null; |
+ +58 + | ++ + + + + | + } |
+ +59 + | ++ + + + + | + // delete file if it already exists |
+ +60 + | ++ + + + + | + theFile = new File(LogFileName); |
+ +61 + | +
+
+1
+
+1. clearLogs : negated conditional → KILLED + + + |
+ if (theFile.exists()) |
+ +62 + | ++ + + + + | + { |
+ +63 + | ++ + + + + | + theFile.delete(); |
+ +64 + | ++ + + + + | + } |
+ +65 + | ++ + + + + | +|
+ +66 + | ++ + + + + | + return; |
+ +67 + | ++ + + + + | + } |
+ +68 + | ++ + + + + | +|
+ +69 + | ++ + + + + | + // ********************************************************************** |
+ +70 + | ++ + + + + | + // protected |
+ +71 + | ++ + + + + | + // ********************************************************************** |
+ +72 + | ++ + + + + | + // ******** attributes |
+ +73 + | ++ + + + + | + protected static MyLogger Instance = null; |
+ +74 + | ++ + + + + | + protected Logger StandardLogger = null; |
+ +75 + | ++ + + + + | + protected Handler StdLogHandler = null; |
+ +76 + | ++ + + + + | + protected MyUselessClass MyValues = null; |
+ +77 + | ++ + + + + | +|
+ +78 + | ++ + + + + | + // ********************************************************************** |
+ +79 + | ++ + + + + | + // ******** methods |
+ +80 + | ++ + + + + | + protected static Level stringToLevel(String level) |
+ +81 + | ++ + + + + | + { |
+ +82 + | ++ + + + + | + // levels: OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL |
+ +83 + | ++ + + + + | + Level theLevel = Level.WARNING; |
+ +84 + | ++ + + + + | +|
+ +85 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ if (level.equals("OFF")) |
+ +86 + | ++ + + + + | + { |
+ +87 + | ++ + + + + | + theLevel = Level.OFF; |
+ +88 + | ++ + + + + | + } |
+ +89 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("SEVERE")) |
+ +90 + | ++ + + + + | + { |
+ +91 + | ++ + + + + | + theLevel = Level.SEVERE; |
+ +92 + | ++ + + + + | + } |
+ +93 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("WARNING")) |
+ +94 + | ++ + + + + | + { |
+ +95 + | ++ + + + + | + theLevel = Level.WARNING; |
+ +96 + | ++ + + + + | + } |
+ +97 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("INFO")) |
+ +98 + | ++ + + + + | + { |
+ +99 + | ++ + + + + | + theLevel = Level.INFO; |
+ +100 + | ++ + + + + | + } |
+ +101 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("CONFIG")) |
+ +102 + | ++ + + + + | + { |
+ +103 + | ++ + + + + | + theLevel = Level.CONFIG; |
+ +104 + | ++ + + + + | + } |
+ +105 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINE")) |
+ +106 + | ++ + + + + | + { |
+ +107 + | ++ + + + + | + theLevel = Level.FINE; |
+ +108 + | ++ + + + + | + } |
+ +109 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINER")) |
+ +110 + | ++ + + + + | + { |
+ +111 + | ++ + + + + | + theLevel = Level.FINER; |
+ +112 + | ++ + + + + | + } |
+ +113 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINEST")) |
+ +114 + | ++ + + + + | + { |
+ +115 + | ++ + + + + | + theLevel = Level.FINEST; |
+ +116 + | ++ + + + + | + } |
+ +117 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("ALL")) |
+ +118 + | ++ + + + + | + { |
+ +119 + | ++ + + + + | + theLevel = Level.ALL; |
+ +120 + | ++ + + + + | + } |
+ +121 + | ++ + + + + | +|
+ +122 + | +
+
+1
+
+1. stringToLevel : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::stringToLevel to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(theLevel); |
+ +123 + | ++ + + + + | + } |
+ +124 + | ++ + + + + | +|
+ +125 + | ++ + + + + | + // ********************************************************************** |
+ +126 + | ++ + + + + | + protected static String levelToString(Level level) |
+ +127 + | ++ + + + + | + { |
+ +128 + | ++ + + + + | + // levels: OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL |
+ +129 + | ++ + + + + | + String theLevel = "WARNING"; |
+ +130 + | ++ + + + + | +|
+ +131 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ if (level == Level.OFF) |
+ +132 + | ++ + + + + | + { |
+ +133 + | ++ + + + + | + theLevel = "OFF"; |
+ +134 + | ++ + + + + | + } |
+ +135 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.SEVERE) |
+ +136 + | ++ + + + + | + { |
+ +137 + | ++ + + + + | + theLevel = "SEVERE"; |
+ +138 + | ++ + + + + | + } |
+ +139 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.WARNING) |
+ +140 + | ++ + + + + | + { |
+ +141 + | ++ + + + + | + theLevel = "WARNING"; |
+ +142 + | ++ + + + + | + } |
+ +143 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.INFO) |
+ +144 + | ++ + + + + | + { |
+ +145 + | ++ + + + + | + theLevel = "INFO"; |
+ +146 + | ++ + + + + | + } |
+ +147 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.CONFIG) |
+ +148 + | ++ + + + + | + { |
+ +149 + | ++ + + + + | + theLevel = "CONFIG"; |
+ +150 + | ++ + + + + | + } |
+ +151 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINE) |
+ +152 + | ++ + + + + | + { |
+ +153 + | ++ + + + + | + theLevel = "FINE"; |
+ +154 + | ++ + + + + | + } |
+ +155 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINER) |
+ +156 + | ++ + + + + | + { |
+ +157 + | ++ + + + + | + theLevel = "FINER"; |
+ +158 + | ++ + + + + | + } |
+ +159 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINEST) |
+ +160 + | ++ + + + + | + { |
+ +161 + | ++ + + + + | + theLevel = "FINEST"; |
+ +162 + | ++ + + + + | + } |
+ +163 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.ALL) |
+ +164 + | ++ + + + + | + { |
+ +165 + | ++ + + + + | + theLevel = "ALL"; |
+ +166 + | ++ + + + + | + } |
+ +167 + | ++ + + + + | +|
+ +168 + | +
+
+1
+
+1. levelToString : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::levelToString to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(theLevel); |
+ +169 + | ++ + + + + | + } |
+ +170 + | ++ + + + + | +|
+ +171 + | ++ + + + + | + // ********************************************************************** |
+ +172 + | ++ + + + + | + protected static void initLogs() |
+ +173 + | ++ + + + + | + { |
+ +174 + | ++ + + + + | + Formatter logFormater = null; |
+ +175 + | ++ + + + + | + boolean fileCreated = false; |
+ +176 + | +
+
+1
+
+1. initLogs : removed call to java/util/Locale::setDefault → KILLED + + + |
+ Locale.setDefault(Locale.ENGLISH); |
+ +177 + | ++ + + + + | +|
+ +178 + | +
+
+1
+
+1. initLogs : negated conditional → KILLED + + + |
+ if (Instance == null) |
+ +179 + | ++ + + + + | + { |
+ +180 + | ++ + + + + | + Instance = new MyLogger(); |
+ +181 + | ++ + + + + | + Instance.StandardLogger = Logger.getLogger(MyLogger.class.getName()); |
+ +182 + | ++ + + + + | + Instance.StandardLogger.setUseParentHandlers(false); |
+ +183 + | ++ + + + + | + Instance.MyValues = new MyUselessClass(); |
+ +184 + | ++ + + + + | + |
+ +185 + | ++ + + + + | + try |
+ +186 + | ++ + + + + | + { |
+ +187 + | ++ + + + + | + Instance.StdLogHandler = new FileHandler(LogFileName, false); |
+ +188 + | ++ + + + + | + Instance.StdLogHandler.setFormatter(new SimpleFormatter()); |
+ +189 + | ++ + + + + | + fileCreated = true; |
+ +190 + | ++ + + + + | + } |
+ +191 + | ++ + + + + | + catch (Exception e) |
+ +192 + | ++ + + + + | + { |
+ +193 + | ++ + + + + | + Instance.StdLogHandler = new ConsoleHandler(); |
+ +194 + | ++ + + + + | + } |
+ +195 + | ++ + + + + | + Instance.StandardLogger.addHandler(Instance.StdLogHandler); |
+ +196 + | ++ + + + + | + |
+ +197 + | ++ + + + + | + Instance.StandardLogger.setLevel(Level.WARNING); |
+ +198 + | ++ + + + + | + Instance.StdLogHandler.setLevel(Level.WARNING); |
+ +199 + | ++ + + + + | + |
+ +200 + | +
+
+1
+
+1. initLogs : negated conditional → KILLED + + + |
+ if (fileCreated) |
+ +201 + | ++ + + + + | + { |
+ +202 + | ++ + + + + | + Instance.StandardLogger.info("Log file created"); |
+ +203 + | +
+
+1
+
+1. initLogs : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyUselessClass::setAll → KILLED + + + |
+ Instance.MyValues.setAll(); |
+ +204 + | ++ + + + + | + } |
+ +205 + | ++ + + + + | + else |
+ +206 + | ++ + + + + | + { |
+ +207 + | +
+
+1
+
+1. initLogs : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyUselessClass::clearAll → NO_COVERAGE + + + |
+ Instance.MyValues.clearAll(); |
+ +208 + | ++ + + + + | + Instance.StandardLogger.warning |
+ +209 + | ++ + + + + | + ("Cannot create log file, redirecting logs to the console"); |
+ +210 + | ++ + + + + | + } |
+ +211 + | ++ + + + + | + } |
+ +212 + | ++ + + + + | + } |
+ +213 + | ++ + + + + | +} |
Mutations | ||
30 | ++ |
+
+
+
+ 1.1 |
+
44 | ++ |
+
+
+
+ 1.1 |
+
45 | ++ |
+
+
+
+ 1.1 |
+
53 | ++ |
+
+
+
+ 1.1 |
+
61 | ++ |
+
+
+
+ 1.1 |
+
85 | ++ |
+
+
+
+ 1.1 |
+
89 | ++ |
+
+
+
+ 1.1 |
+
93 | ++ |
+
+
+
+ 1.1 |
+
97 | ++ |
+
+
+
+ 1.1 |
+
101 | ++ |
+
+
+
+ 1.1 |
+
105 | ++ |
+
+
+
+ 1.1 |
+
109 | ++ |
+
+
+
+ 1.1 |
+
113 | ++ |
+
+
+
+ 1.1 |
+
117 | ++ |
+
+
+
+ 1.1 |
+
122 | ++ |
+
+
+
+ 1.1 |
+
131 | ++ |
+
+
+
+ 1.1 |
+
135 | ++ |
+
+
+
+ 1.1 |
+
139 | ++ |
+
+
+
+ 1.1 |
+
143 | ++ |
+
+
+
+ 1.1 |
+
147 | ++ |
+
+
+
+ 1.1 |
+
151 | ++ |
+
+
+
+ 1.1 |
+
155 | ++ |
+
+
+
+ 1.1 |
+
159 | ++ |
+
+
+
+ 1.1 |
+
163 | ++ |
+
+
+
+ 1.1 |
+
168 | ++ |
+
+
+
+ 1.1 |
+
176 | ++ |
+
+
+
+ 1.1 |
+
178 | ++ |
+
+
+
+ 1.1 |
+
200 | ++ |
+
+
+
+ 1.1 |
+
203 | ++ |
+
+
+
+ 1.1 |
+
207 | ++ |
+
+
+
+ 1.1 |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
1 | +80% | +97% | +
Name | +Line Coverage | +Mutation Coverage | +
---|---|---|
MyLogger.java | +80% |
+ 97% |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dnoo.dnooStorage; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +// ********************************************************************** |
+ +4 + | ++ + + + + | +import java.io.PrintStream; |
+ +5 + | ++ + + + + | +import java.io.BufferedReader; |
+ +6 + | ++ + + + + | +import java.io.FileReader; |
+ +7 + | ++ + + + + | +import java.io.IOException; |
+ +8 + | ++ + + + + | +import java.io.File; |
+ +9 + | ++ + + + + | +import java.util.*; |
+ +10 + | ++ + + + + | +|
+ +11 + | ++ + + + + | +import eu.stamp_project.examples.dnoo.dnooLogs.MyLogger; |
+ +12 + | ++ + + + + | +|
+ +13 + | ++ + + + + | +// ********************************************************************** |
+ +14 + | ++ + + + + | +public class MyStorage |
+ +15 + | ++ + + + + | +{ |
+ +16 + | ++ + + + + | + // ********************************************************************** |
+ +17 + | ++ + + + + | + // public |
+ +18 + | ++ + + + + | + // ********************************************************************** |
+ +19 + | ++ + + + + | + // ******** methods |
+ +20 + | ++ + + + + | +|
+ +21 + | ++ + + + + | + // ********************************************************************** |
+ +22 + | ++ + + + + | + public static void deleteFile(String fileName) |
+ +23 + | ++ + + + + | + { |
+ +24 + | ++ + + + + | + String methodName = "deleteFile"; |
+ +25 + | ++ + + + + | + MyLogger.getLogger().entering("MyStorage", methodName); |
+ +26 + | ++ + + + + | +|
+ +27 + | ++ + + + + | + File theFile = null; |
+ +28 + | ++ + + + + | +|
+ +29 + | ++ + + + + | + // delete file if it already exists |
+ +30 + | ++ + + + + | + theFile = new File(fileName); |
+ +31 + | +
+
+1
+
+1. deleteFile : negated conditional → KILLED + + + |
+ if (theFile.exists()) |
+ +32 + | ++ + + + + | + { |
+ +33 + | ++ + + + + | + theFile.delete(); |
+ +34 + | ++ + + + + | + } |
+ +35 + | ++ + + + + | +|
+ +36 + | ++ + + + + | + MyLogger.getLogger().exiting("MyStorage", methodName); |
+ +37 + | ++ + + + + | + } |
+ +38 + | ++ + + + + | +|
+ +39 + | ++ + + + + | + // ********************************************************************** |
+ +40 + | ++ + + + + | + public MyStorage() |
+ +41 + | ++ + + + + | + { |
+ +42 + | ++ + + + + | + String methodName = "MyStorage"; |
+ +43 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +44 + | ++ + + + + | +|
+ +45 + | ++ + + + + | + FileName = "my_storage.txt"; |
+ +46 + | ++ + + + + | + MyData = new ArrayList<String>(); |
+ +47 + | ++ + + + + | +|
+ +48 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +49 + | ++ + + + + | + } |
+ +50 + | ++ + + + + | +|
+ +51 + | ++ + + + + | + // ********************************************************************** |
+ +52 + | ++ + + + + | + public MyStorage(String fileName) |
+ +53 + | ++ + + + + | + { |
+ +54 + | ++ + + + + | + String methodName = "MyStorage_String"; |
+ +55 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +56 + | ++ + + + + | +|
+ +57 + | ++ + + + + | + this.FileName = fileName; |
+ +58 + | ++ + + + + | + MyData = new ArrayList<String>(); |
+ +59 + | ++ + + + + | +|
+ +60 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +61 + | ++ + + + + | + } |
+ +62 + | ++ + + + + | +|
+ +63 + | ++ + + + + | + // ********************************************************************** |
+ +64 + | ++ + + + + | + public void readData() |
+ +65 + | ++ + + + + | + { |
+ +66 + | ++ + + + + | + String methodName = "readData"; |
+ +67 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +68 + | ++ + + + + | +|
+ +69 + | ++ + + + + | + BufferedReader myBuffer = null; |
+ +70 + | ++ + + + + | + FileReader myFile = null; |
+ +71 + | ++ + + + + | + String currentLine; |
+ +72 + | ++ + + + + | +|
+ +73 + | ++ + + + + | + try |
+ +74 + | ++ + + + + | + { |
+ +75 + | ++ + + + + | + myFile = new FileReader(FileName); |
+ +76 + | ++ + + + + | + myBuffer = new BufferedReader(myFile); |
+ +77 + | +
+
+1
+
+1. readData : negated conditional → KILLED + + + |
+ while ((currentLine = myBuffer.readLine()) != null) |
+ +78 + | ++ + + + + | + { |
+ +79 + | +
+
+1
+
+1. readData : removed call to eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::addData → KILLED + + + |
+ addData(currentLine); |
+ +80 + | ++ + + + + | + } |
+ +81 + | ++ + + + + | + } |
+ +82 + | ++ + + + + | + catch(IOException e) |
+ +83 + | ++ + + + + | + { |
+ +84 + | +
+
+1
+
+1. readData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: cannot read " + FileName); |
+ +85 + | ++ + + + + | + } |
+ +86 + | ++ + + + + | +|
+ +87 + | ++ + + + + | + try |
+ +88 + | ++ + + + + | + { |
+ +89 + | +
+
+1
+
+1. readData : negated conditional → KILLED + + + |
+ if (myBuffer != null) |
+ +90 + | ++ + + + + | + { |
+ +91 + | +
+
+1
+
+1. readData : removed call to java/io/BufferedReader::close → KILLED + + + |
+ myBuffer.close(); |
+ +92 + | ++ + + + + | + } |
+ +93 + | +
+
+1
+
+1. readData : negated conditional → KILLED + + + |
+ if (myFile != null) |
+ +94 + | ++ + + + + | + { |
+ +95 + | +
+
+1
+
+1. readData : removed call to java/io/FileReader::close → KILLED + + + |
+ myFile.close(); |
+ +96 + | ++ + + + + | + } |
+ +97 + | ++ + + + + | + } |
+ +98 + | ++ + + + + | + catch(IOException e) |
+ +99 + | ++ + + + + | + { |
+ +100 + | +
+
+1
+
+1. readData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: closing " + FileName); |
+ +101 + | ++ + + + + | + } |
+ +102 + | ++ + + + + | +|
+ +103 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +104 + | ++ + + + + | + } |
+ +105 + | ++ + + + + | +|
+ +106 + | ++ + + + + | + // ********************************************************************** |
+ +107 + | ++ + + + + | + public void saveData() |
+ +108 + | ++ + + + + | + { |
+ +109 + | ++ + + + + | + String methodName = "saveData"; |
+ +110 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +111 + | ++ + + + + | +|
+ +112 + | ++ + + + + | + try |
+ +113 + | ++ + + + + | + { |
+ +114 + | ++ + + + + | + PrintStream writer = new PrintStream(new File(FileName)); |
+ +115 + | +
+
+2
+
+1. saveData : changed conditional boundary → KILLED +2. saveData : negated conditional → KILLED + + + |
+ for (int i = 0; i < getDataSize(); i++) |
+ +116 + | ++ + + + + | + { |
+ +117 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::println → KILLED + + + |
+ writer.println(getData(i)); |
+ +118 + | ++ + + + + | + } |
+ +119 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::close → SURVIVED + + + |
+ writer.close(); |
+ +120 + | ++ + + + + | + } |
+ +121 + | ++ + + + + | + catch(IOException e) |
+ +122 + | ++ + + + + | + { |
+ +123 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: cannot write into " + FileName); |
+ +124 + | ++ + + + + | + } |
+ +125 + | ++ + + + + | +|
+ +126 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +127 + | ++ + + + + | + } |
+ +128 + | ++ + + + + | +|
+ +129 + | ++ + + + + | + // ********************************************************************** |
+ +130 + | ++ + + + + | + public boolean isEqual(MyStorage anotherStorage) |
+ +131 + | ++ + + + + | + { |
+ +132 + | ++ + + + + | + String methodName = "isEqual"; |
+ +133 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +134 + | ++ + + + + | +|
+ +135 + | +
+
+1
+
+1. isEqual : negated conditional → KILLED + + + |
+ boolean areEqual = (getDataSize() == anotherStorage.getDataSize()); |
+ +136 + | ++ + + + + | +|
+ +137 + | +
+
+4
+
+1. isEqual : changed conditional boundary → KILLED +2. isEqual : Changed increment from 1 to -1 → KILLED +3. isEqual : negated conditional → KILLED +4. isEqual : negated conditional → KILLED + + + |
+ for (int i = 0; i < getDataSize() && areEqual; i++) |
+ +138 + | ++ + + + + | + { |
+ +139 + | +
+
+1
+
+1. isEqual : negated conditional → KILLED + + + |
+ if (! (getData(i).equals(anotherStorage.getData(i)))) |
+ +140 + | ++ + + + + | + { |
+ +141 + | ++ + + + + | + areEqual = false; |
+ +142 + | ++ + + + + | + } |
+ +143 + | ++ + + + + | + } |
+ +144 + | ++ + + + + | +|
+ +145 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +146 + | +
+
+1
+
+1. isEqual : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(areEqual); |
+ +147 + | ++ + + + + | + } |
+ +148 + | ++ + + + + | +|
+ +149 + | ++ + + + + | + // ********************************************************************** |
+ +150 + | ++ + + + + | + public boolean dataAreEqual(ArrayList<String> otherData) |
+ +151 + | ++ + + + + | + { |
+ +152 + | ++ + + + + | + String methodName = "dataAreEqual"; |
+ +153 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +154 + | ++ + + + + | +|
+ +155 + | +
+
+1
+
+1. dataAreEqual : negated conditional → KILLED + + + |
+ boolean areEqual = (getDataSize() == otherData.size()); |
+ +156 + | ++ + + + + | +|
+ +157 + | +
+
+4
+
+1. dataAreEqual : negated conditional → SURVIVED +2. dataAreEqual : negated conditional → SURVIVED +3. dataAreEqual : changed conditional boundary → KILLED +4. dataAreEqual : Changed increment from 1 to -1 → KILLED + + + |
+ for (int i = 0; i < getDataSize() && areEqual; i++) |
+ +158 + | ++ + + + + | + { |
+ +159 + | +
+
+1
+
+1. dataAreEqual : negated conditional → KILLED + + + |
+ if (! (getData(i).equals(otherData.get(i)))) |
+ +160 + | ++ + + + + | + { |
+ +161 + | ++ + + + + | + areEqual = false; |
+ +162 + | ++ + + + + | + } |
+ +163 + | ++ + + + + | + } |
+ +164 + | ++ + + + + | +|
+ +165 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +166 + | +
+
+1
+
+1. dataAreEqual : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(areEqual); |
+ +167 + | ++ + + + + | + } |
+ +168 + | ++ + + + + | +|
+ +169 + | ++ + + + + | + // ********************************************************************** |
+ +170 + | ++ + + + + | + // ******** attributes |
+ +171 + | ++ + + + + | +|
+ +172 + | ++ + + + + | + // ********************************************************************** |
+ +173 + | ++ + + + + | + public String getFileName() |
+ +174 + | ++ + + + + | + { |
+ +175 + | +
+
+1
+
+1. getFileName : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::getFileName to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(FileName); |
+ +176 + | ++ + + + + | + } |
+ +177 + | ++ + + + + | +|
+ +178 + | ++ + + + + | + // ********************************************************************** |
+ +179 + | ++ + + + + | + public int getDataSize() |
+ +180 + | ++ + + + + | + { |
+ +181 + | +
+
+1
+
+1. getDataSize : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(MyData.size()); |
+ +182 + | ++ + + + + | + } |
+ +183 + | ++ + + + + | +|
+ +184 + | ++ + + + + | + // ********************************************************************** |
+ +185 + | ++ + + + + | + public String getData(int index) |
+ +186 + | ++ + + + + | + { |
+ +187 + | +
+
+1
+
+1. getData : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::getData to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(MyData.get(index)); |
+ +188 + | ++ + + + + | + } |
+ +189 + | ++ + + + + | +|
+ +190 + | ++ + + + + | + // ********************************************************************** |
+ +191 + | ++ + + + + | + public void addData(String aData) |
+ +192 + | ++ + + + + | + { |
+ +193 + | ++ + + + + | + MyLogger.getLogger().finest("IN : DataSize = " + Integer.toString(getDataSize()) |
+ +194 + | ++ + + + + | + + " - aData = " + aData); |
+ +195 + | ++ + + + + | +|
+ +196 + | ++ + + + + | + MyData.add(aData); |
+ +197 + | ++ + + + + | +|
+ +198 + | ++ + + + + | + MyLogger.getLogger().finest("OUT: DataSize = " + Integer.toString(getDataSize())); |
+ +199 + | ++ + + + + | + } |
+ +200 + | ++ + + + + | +|
+ +201 + | ++ + + + + | + // ********************************************************************** |
+ +202 + | ++ + + + + | + public void delData(String aData) |
+ +203 + | ++ + + + + | + { |
+ +204 + | ++ + + + + | + MyLogger.getLogger().finest("IN : DataSize = " + Integer.toString(getDataSize())); |
+ +205 + | ++ + + + + | +|
+ +206 + | ++ + + + + | + boolean found = false; |
+ +207 + | ++ + + + + | +|
+ +208 + | +
+
+4
+
+1. delData : changed conditional boundary → NO_COVERAGE +2. delData : Changed increment from 1 to -1 → NO_COVERAGE +3. delData : negated conditional → NO_COVERAGE +4. delData : negated conditional → NO_COVERAGE + + + |
+ for (int i = 0; i < getDataSize() && ! found; i++) |
+ +209 + | ++ + + + + | + { |
+ +210 + | +
+
+1
+
+1. delData : negated conditional → NO_COVERAGE + + + |
+ if (getData(i).equals(aData)) |
+ +211 + | ++ + + + + | + { |
+ +212 + | ++ + + + + | + MyData.remove(i); |
+ +213 + | ++ + + + + | + found = true; |
+ +214 + | ++ + + + + | + } |
+ +215 + | ++ + + + + | + } |
+ +216 + | ++ + + + + | +|
+ +217 + | ++ + + + + | + MyLogger.getLogger().finest("OUT: DataSize = " + Integer.toString(getDataSize()) |
+ +218 + | ++ + + + + | + + " - found = " + Boolean.toString(found)); |
+ +219 + | ++ + + + + | + } |
+ +220 + | ++ + + + + | +|
+ +221 + | ++ + + + + | + // ********************************************************************** |
+ +222 + | ++ + + + + | + // private |
+ +223 + | ++ + + + + | + // ********************************************************************** |
+ +224 + | ++ + + + + | + // ******** attributes |
+ +225 + | ++ + + + + | + private String FileName; |
+ +226 + | ++ + + + + | + private ArrayList<String> MyData; |
+ +227 + | ++ + + + + | +} |
Mutations | ||
31 | ++ |
+
+
+
+ 1.1 |
+
77 | ++ |
+
+
+
+ 1.1 |
+
79 | ++ |
+
+
+
+ 1.1 |
+
84 | ++ |
+
+
+
+ 1.1 |
+
89 | ++ |
+
+
+
+ 1.1 |
+
91 | ++ |
+
+
+
+ 1.1 |
+
93 | ++ |
+
+
+
+ 1.1 |
+
95 | ++ |
+
+
+
+ 1.1 |
+
100 | ++ |
+
+
+
+ 1.1 |
+
115 | ++ |
+
+
+
+ 1.1 2.2 |
+
117 | ++ |
+
+
+
+ 1.1 |
+
119 | ++ |
+
+
+
+ 1.1 |
+
123 | ++ |
+
+
+
+ 1.1 |
+
135 | ++ |
+
+
+
+ 1.1 |
+
137 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
139 | ++ |
+
+
+
+ 1.1 |
+
146 | ++ |
+
+
+
+ 1.1 |
+
155 | ++ |
+
+
+
+ 1.1 |
+
157 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
159 | ++ |
+
+
+
+ 1.1 |
+
166 | ++ |
+
+
+
+ 1.1 |
+
175 | ++ |
+
+
+
+ 1.1 |
+
181 | ++ |
+
+
+
+ 1.1 |
+
187 | ++ |
+
+
+
+ 1.1 |
+
208 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
210 | ++ |
+
+
+
+ 1.1 |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
1 | +80% | +69% | +
Name | +Line Coverage | +Mutation Coverage | +
---|---|---|
MyStorage.java | +80% |
+ 69% |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
3 | +84% | +82% | +
Name | +Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|---|
eu.stamp_project.examples.dnoo.dnooHello | +1 | +93% |
+ 83% |
+
eu.stamp_project.examples.dnoo.dnooLogs | +1 | +80% |
+ 97% |
+
eu.stamp_project.examples.dnoo.dnooStorage | +1 | +80% |
+ 69% |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dnoo.dnooLogs; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +import java.io.File; |
+ +4 + | ++ + + + + | +import java.util.Locale; |
+ +5 + | ++ + + + + | +// ********************************************************************** |
+ +6 + | ++ + + + + | +import java.util.logging.ConsoleHandler; |
+ +7 + | ++ + + + + | +import java.util.logging.FileHandler; |
+ +8 + | ++ + + + + | +import java.util.logging.Formatter; |
+ +9 + | ++ + + + + | +import java.util.logging.Handler; |
+ +10 + | ++ + + + + | +import java.util.logging.Level; |
+ +11 + | ++ + + + + | +import java.util.logging.Logger; |
+ +12 + | ++ + + + + | +import java.util.logging.SimpleFormatter; |
+ +13 + | ++ + + + + | +|
+ +14 + | ++ + + + + | +// ********************************************************************** |
+ +15 + | ++ + + + + | +public class MyLogger |
+ +16 + | ++ + + + + | +{ |
+ +17 + | ++ + + + + | + // ********************************************************************** |
+ +18 + | ++ + + + + | + // public |
+ +19 + | ++ + + + + | + // ********************************************************************** |
+ +20 + | ++ + + + + | + // ******** attributes |
+ +21 + | ++ + + + + | + public static String LogFileName = "dnoo.log"; |
+ +22 + | ++ + + + + | +|
+ +23 + | ++ + + + + | + // ********************************************************************** |
+ +24 + | ++ + + + + | + // Level: String, public read/write class attribute |
+ +25 + | ++ + + + + | + // levels: "OFF", "SEVERE", "WARNING", "INFO", "CONFIG", "FINE", "FINER", |
+ +26 + | ++ + + + + | + // "FINEST", "ALL" |
+ +27 + | ++ + + + + | + public static String getLevel() |
+ +28 + | ++ + + + + | + { |
+ +29 + | ++ + + + + | + Level currentLevel = getLogger().getLevel(); |
+ +30 + | +
+
+1
+
+1. getLevel : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::getLevel to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(levelToString(currentLevel)); |
+ +31 + | ++ + + + + | + } |
+ +32 + | ++ + + + + | +|
+ +33 + | ++ + + + + | + // *********** |
+ +34 + | ++ + + + + | + public static void setLevel(String level) |
+ +35 + | ++ + + + + | + { |
+ +36 + | ++ + + + + | + getLogger().setLevel(stringToLevel(level)); |
+ +37 + | ++ + + + + | + Instance.StdLogHandler.setLevel(stringToLevel(level)); |
+ +38 + | ++ + + + + | + } |
+ +39 + | ++ + + + + | +|
+ +40 + | ++ + + + + | + // ********************************************************************** |
+ +41 + | ++ + + + + | + // ******** methods |
+ +42 + | ++ + + + + | + public static Logger getLogger() |
+ +43 + | ++ + + + + | + { |
+ +44 + | +
+
+1
+
+1. getLogger : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::initLogs → SURVIVED + + + |
+ initLogs(); |
+ +45 + | +
+
+1
+
+1. getLogger : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::getLogger to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(Instance.StandardLogger); |
+ +46 + | ++ + + + + | + } |
+ +47 + | ++ + + + + | +|
+ +48 + | ++ + + + + | + // ********************************************************************** |
+ +49 + | ++ + + + + | + public static void clearLogs() |
+ +50 + | ++ + + + + | + { |
+ +51 + | ++ + + + + | + File theFile = null; |
+ +52 + | ++ + + + + | +|
+ +53 + | +
+
+1
+
+1. clearLogs : negated conditional → NO_COVERAGE + + + |
+ if (Instance != null) |
+ +54 + | ++ + + + + | + { |
+ +55 + | ++ + + + + | + Instance.StdLogHandler = null; |
+ +56 + | ++ + + + + | + Instance.StandardLogger = null; |
+ +57 + | ++ + + + + | + Instance = null; |
+ +58 + | ++ + + + + | + } |
+ +59 + | ++ + + + + | + // delete file if it already exists |
+ +60 + | ++ + + + + | + theFile = new File(LogFileName); |
+ +61 + | +
+
+1
+
+1. clearLogs : negated conditional → NO_COVERAGE + + + |
+ if (theFile.exists()) |
+ +62 + | ++ + + + + | + { |
+ +63 + | ++ + + + + | + theFile.delete(); |
+ +64 + | ++ + + + + | + } |
+ +65 + | ++ + + + + | +|
+ +66 + | ++ + + + + | + return; |
+ +67 + | ++ + + + + | + } |
+ +68 + | ++ + + + + | +|
+ +69 + | ++ + + + + | + // ********************************************************************** |
+ +70 + | ++ + + + + | + // protected |
+ +71 + | ++ + + + + | + // ********************************************************************** |
+ +72 + | ++ + + + + | + // ******** attributes |
+ +73 + | ++ + + + + | + protected static MyLogger Instance = null; |
+ +74 + | ++ + + + + | + protected Logger StandardLogger = null; |
+ +75 + | ++ + + + + | + protected Handler StdLogHandler = null; |
+ +76 + | ++ + + + + | + protected MyUselessClass MyValues = null; |
+ +77 + | ++ + + + + | +|
+ +78 + | ++ + + + + | + // ********************************************************************** |
+ +79 + | ++ + + + + | + // ******** methods |
+ +80 + | ++ + + + + | + protected static Level stringToLevel(String level) |
+ +81 + | ++ + + + + | + { |
+ +82 + | ++ + + + + | + // levels: OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL |
+ +83 + | ++ + + + + | + Level theLevel = Level.WARNING; |
+ +84 + | ++ + + + + | +|
+ +85 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ if (level.equals("OFF")) |
+ +86 + | ++ + + + + | + { |
+ +87 + | ++ + + + + | + theLevel = Level.OFF; |
+ +88 + | ++ + + + + | + } |
+ +89 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("SEVERE")) |
+ +90 + | ++ + + + + | + { |
+ +91 + | ++ + + + + | + theLevel = Level.SEVERE; |
+ +92 + | ++ + + + + | + } |
+ +93 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("WARNING")) |
+ +94 + | ++ + + + + | + { |
+ +95 + | ++ + + + + | + theLevel = Level.WARNING; |
+ +96 + | ++ + + + + | + } |
+ +97 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("INFO")) |
+ +98 + | ++ + + + + | + { |
+ +99 + | ++ + + + + | + theLevel = Level.INFO; |
+ +100 + | ++ + + + + | + } |
+ +101 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("CONFIG")) |
+ +102 + | ++ + + + + | + { |
+ +103 + | ++ + + + + | + theLevel = Level.CONFIG; |
+ +104 + | ++ + + + + | + } |
+ +105 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINE")) |
+ +106 + | ++ + + + + | + { |
+ +107 + | ++ + + + + | + theLevel = Level.FINE; |
+ +108 + | ++ + + + + | + } |
+ +109 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINER")) |
+ +110 + | ++ + + + + | + { |
+ +111 + | ++ + + + + | + theLevel = Level.FINER; |
+ +112 + | ++ + + + + | + } |
+ +113 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINEST")) |
+ +114 + | ++ + + + + | + { |
+ +115 + | ++ + + + + | + theLevel = Level.FINEST; |
+ +116 + | ++ + + + + | + } |
+ +117 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("ALL")) |
+ +118 + | ++ + + + + | + { |
+ +119 + | ++ + + + + | + theLevel = Level.ALL; |
+ +120 + | ++ + + + + | + } |
+ +121 + | ++ + + + + | +|
+ +122 + | +
+
+1
+
+1. stringToLevel : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::stringToLevel to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(theLevel); |
+ +123 + | ++ + + + + | + } |
+ +124 + | ++ + + + + | +|
+ +125 + | ++ + + + + | + // ********************************************************************** |
+ +126 + | ++ + + + + | + protected static String levelToString(Level level) |
+ +127 + | ++ + + + + | + { |
+ +128 + | ++ + + + + | + // levels: OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL |
+ +129 + | ++ + + + + | + String theLevel = "WARNING"; |
+ +130 + | ++ + + + + | +|
+ +131 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ if (level == Level.OFF) |
+ +132 + | ++ + + + + | + { |
+ +133 + | ++ + + + + | + theLevel = "OFF"; |
+ +134 + | ++ + + + + | + } |
+ +135 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.SEVERE) |
+ +136 + | ++ + + + + | + { |
+ +137 + | ++ + + + + | + theLevel = "SEVERE"; |
+ +138 + | ++ + + + + | + } |
+ +139 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.WARNING) |
+ +140 + | ++ + + + + | + { |
+ +141 + | ++ + + + + | + theLevel = "WARNING"; |
+ +142 + | ++ + + + + | + } |
+ +143 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.INFO) |
+ +144 + | ++ + + + + | + { |
+ +145 + | ++ + + + + | + theLevel = "INFO"; |
+ +146 + | ++ + + + + | + } |
+ +147 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.CONFIG) |
+ +148 + | ++ + + + + | + { |
+ +149 + | ++ + + + + | + theLevel = "CONFIG"; |
+ +150 + | ++ + + + + | + } |
+ +151 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINE) |
+ +152 + | ++ + + + + | + { |
+ +153 + | ++ + + + + | + theLevel = "FINE"; |
+ +154 + | ++ + + + + | + } |
+ +155 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINER) |
+ +156 + | ++ + + + + | + { |
+ +157 + | ++ + + + + | + theLevel = "FINER"; |
+ +158 + | ++ + + + + | + } |
+ +159 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINEST) |
+ +160 + | ++ + + + + | + { |
+ +161 + | ++ + + + + | + theLevel = "FINEST"; |
+ +162 + | ++ + + + + | + } |
+ +163 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.ALL) |
+ +164 + | ++ + + + + | + { |
+ +165 + | ++ + + + + | + theLevel = "ALL"; |
+ +166 + | ++ + + + + | + } |
+ +167 + | ++ + + + + | +|
+ +168 + | +
+
+1
+
+1. levelToString : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::levelToString to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(theLevel); |
+ +169 + | ++ + + + + | + } |
+ +170 + | ++ + + + + | +|
+ +171 + | ++ + + + + | + // ********************************************************************** |
+ +172 + | ++ + + + + | + protected static void initLogs() |
+ +173 + | ++ + + + + | + { |
+ +174 + | ++ + + + + | + Formatter logFormater = null; |
+ +175 + | ++ + + + + | + boolean fileCreated = false; |
+ +176 + | +
+
+1
+
+1. initLogs : removed call to java/util/Locale::setDefault → SURVIVED + + + |
+ Locale.setDefault(Locale.ENGLISH); |
+ +177 + | ++ + + + + | +|
+ +178 + | +
+
+1
+
+1. initLogs : negated conditional → KILLED + + + |
+ if (Instance == null) |
+ +179 + | ++ + + + + | + { |
+ +180 + | ++ + + + + | + Instance = new MyLogger(); |
+ +181 + | ++ + + + + | + Instance.StandardLogger = Logger.getLogger(MyLogger.class.getName()); |
+ +182 + | ++ + + + + | + Instance.StandardLogger.setUseParentHandlers(false); |
+ +183 + | ++ + + + + | + Instance.MyValues = new MyUselessClass(); |
+ +184 + | ++ + + + + | + |
+ +185 + | ++ + + + + | + try |
+ +186 + | ++ + + + + | + { |
+ +187 + | ++ + + + + | + Instance.StdLogHandler = new FileHandler(LogFileName, false); |
+ +188 + | ++ + + + + | + Instance.StdLogHandler.setFormatter(new SimpleFormatter()); |
+ +189 + | ++ + + + + | + fileCreated = true; |
+ +190 + | ++ + + + + | + } |
+ +191 + | ++ + + + + | + catch (Exception e) |
+ +192 + | ++ + + + + | + { |
+ +193 + | ++ + + + + | + Instance.StdLogHandler = new ConsoleHandler(); |
+ +194 + | ++ + + + + | + } |
+ +195 + | ++ + + + + | + Instance.StandardLogger.addHandler(Instance.StdLogHandler); |
+ +196 + | ++ + + + + | + |
+ +197 + | ++ + + + + | + Instance.StandardLogger.setLevel(Level.WARNING); |
+ +198 + | ++ + + + + | + Instance.StdLogHandler.setLevel(Level.WARNING); |
+ +199 + | ++ + + + + | + |
+ +200 + | +
+
+1
+
+1. initLogs : negated conditional → SURVIVED + + + |
+ if (fileCreated) |
+ +201 + | ++ + + + + | + { |
+ +202 + | ++ + + + + | + Instance.StandardLogger.info("Log file created"); |
+ +203 + | +
+
+1
+
+1. initLogs : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyUselessClass::setAll → SURVIVED + + + |
+ Instance.MyValues.setAll(); |
+ +204 + | ++ + + + + | + } |
+ +205 + | ++ + + + + | + else |
+ +206 + | ++ + + + + | + { |
+ +207 + | +
+
+1
+
+1. initLogs : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyUselessClass::clearAll → NO_COVERAGE + + + |
+ Instance.MyValues.clearAll(); |
+ +208 + | ++ + + + + | + Instance.StandardLogger.warning |
+ +209 + | ++ + + + + | + ("Cannot create log file, redirecting logs to the console"); |
+ +210 + | ++ + + + + | + } |
+ +211 + | ++ + + + + | + } |
+ +212 + | ++ + + + + | + } |
+ +213 + | ++ + + + + | +} |
Mutations | ||
30 | ++ |
+
+
+
+ 1.1 |
+
44 | ++ |
+
+
+
+ 1.1 |
+
45 | ++ |
+
+
+
+ 1.1 |
+
53 | ++ |
+
+
+
+ 1.1 |
+
61 | ++ |
+
+
+
+ 1.1 |
+
85 | ++ |
+
+
+
+ 1.1 |
+
89 | ++ |
+
+
+
+ 1.1 |
+
93 | ++ |
+
+
+
+ 1.1 |
+
97 | ++ |
+
+
+
+ 1.1 |
+
101 | ++ |
+
+
+
+ 1.1 |
+
105 | ++ |
+
+
+
+ 1.1 |
+
109 | ++ |
+
+
+
+ 1.1 |
+
113 | ++ |
+
+
+
+ 1.1 |
+
117 | ++ |
+
+
+
+ 1.1 |
+
122 | ++ |
+
+
+
+ 1.1 |
+
131 | ++ |
+
+
+
+ 1.1 |
+
135 | ++ |
+
+
+
+ 1.1 |
+
139 | ++ |
+
+
+
+ 1.1 |
+
143 | ++ |
+
+
+
+ 1.1 |
+
147 | ++ |
+
+
+
+ 1.1 |
+
151 | ++ |
+
+
+
+ 1.1 |
+
155 | ++ |
+
+
+
+ 1.1 |
+
159 | ++ |
+
+
+
+ 1.1 |
+
163 | ++ |
+
+
+
+ 1.1 |
+
168 | ++ |
+
+
+
+ 1.1 |
+
176 | ++ |
+
+
+
+ 1.1 |
+
178 | ++ |
+
+
+
+ 1.1 |
+
200 | ++ |
+
+
+
+ 1.1 |
+
203 | ++ |
+
+
+
+ 1.1 |
+
207 | ++ |
+
+
+
+ 1.1 |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
1 | +67% | +77% | +
Name | +Line Coverage | +Mutation Coverage | +
---|---|---|
MyLogger.java | +67% |
+ 77% |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
1 | +67% | +77% | +
Name | +Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|---|
eu.stamp_project.examples.dnoo.dnooLogs | +1 | +67% |
+ 77% |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dnoo.dnooHello; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +// ********************************************************************** |
+ +4 + | ++ + + + + | +import eu.stamp_project.examples.dnoo.dnooStorage.MyStorage; |
+ +5 + | ++ + + + + | +import eu.stamp_project.examples.dnoo.dnooLogs.MyLogger; |
+ +6 + | ++ + + + + | +|
+ +7 + | ++ + + + + | +// ********************************************************************** |
+ +8 + | ++ + + + + | +public class HelloApp |
+ +9 + | ++ + + + + | +{ |
+ +10 + | ++ + + + + | + // ********************************************************************** |
+ +11 + | ++ + + + + | + // public |
+ +12 + | ++ + + + + | + // ********************************************************************** |
+ +13 + | ++ + + + + | + // ******** methods |
+ +14 + | ++ + + + + | +|
+ +15 + | ++ + + + + | + // ********************************************************************** |
+ +16 + | ++ + + + + | + public HelloApp() |
+ +17 + | ++ + + + + | + { |
+ +18 + | ++ + + + + | + String methodName = "HelloApp"; |
+ +19 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +20 + | ++ + + + + | +|
+ +21 + | ++ + + + + | + MyPrintCount = 1; |
+ +22 + | ++ + + + + | + MyTraces = null; |
+ +23 + | ++ + + + + | + MyTracesName = "myHelloApp.traces"; |
+ +24 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +25 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +26 + | ++ + + + + | +|
+ +27 + | ++ + + + + | + MyLogger.getLogger().info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +28 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +29 + | ++ + + + + | +|
+ +30 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +31 + | ++ + + + + | + } |
+ +32 + | ++ + + + + | +|
+ +33 + | ++ + + + + | + // ********************************************************************** |
+ +34 + | ++ + + + + | + public HelloApp(int printCount) |
+ +35 + | ++ + + + + | + { |
+ +36 + | ++ + + + + | + String methodName = "HelloApp_int"; |
+ +37 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +38 + | ++ + + + + | +|
+ +39 + | ++ + + + + | + MyPrintCount = printCount; |
+ +40 + | ++ + + + + | + MyTraces = null; |
+ +41 + | ++ + + + + | + MyTracesName = "myHelloApp.traces"; |
+ +42 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +43 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +44 + | ++ + + + + | +|
+ +45 + | ++ + + + + | + MyLogger.getLogger().info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +46 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +47 + | ++ + + + + | +|
+ +48 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +49 + | ++ + + + + | + } |
+ +50 + | ++ + + + + | +|
+ +51 + | ++ + + + + | + // ********************************************************************** |
+ +52 + | ++ + + + + | + public HelloApp(String tracesName) |
+ +53 + | ++ + + + + | + { |
+ +54 + | ++ + + + + | + String methodName = "HelloApp_String"; |
+ +55 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +56 + | ++ + + + + | +|
+ +57 + | ++ + + + + | + MyPrintCount = 1; |
+ +58 + | ++ + + + + | + MyTraces = null; |
+ +59 + | ++ + + + + | + MyTracesName = tracesName; |
+ +60 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +61 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +62 + | ++ + + + + | +|
+ +63 + | ++ + + + + | + MyLogger.getLogger().info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +64 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +65 + | ++ + + + + | +|
+ +66 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +67 + | ++ + + + + | + } |
+ +68 + | ++ + + + + | +|
+ +69 + | ++ + + + + | + // ********************************************************************** |
+ +70 + | ++ + + + + | + public HelloApp(int printCount, String tracesName) |
+ +71 + | ++ + + + + | + { |
+ +72 + | ++ + + + + | + String methodName = "HelloApp_int_String"; |
+ +73 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +74 + | ++ + + + + | +|
+ +75 + | ++ + + + + | + MyPrintCount = printCount; |
+ +76 + | ++ + + + + | + MyTraces = null; |
+ +77 + | ++ + + + + | + MyTracesName = tracesName; |
+ +78 + | ++ + + + + | + ShouldPrintOnStdout = true; |
+ +79 + | +
+
+1
+
+1. + + |
+ MyStorage.deleteFile(MyTracesName); |
+ +80 + | ++ + + + + | +|
+ +81 + | ++ + + + + | + MyLogger.getLogger().info("MyPrintCount = " + Integer.toString(MyPrintCount) |
+ +82 + | ++ + + + + | + + " - MyTracesName = " + MyTracesName); |
+ +83 + | ++ + + + + | +|
+ +84 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +85 + | ++ + + + + | + } |
+ +86 + | ++ + + + + | +|
+ +87 + | ++ + + + + | + // ********************************************************************** |
+ +88 + | ++ + + + + | + public void run() |
+ +89 + | ++ + + + + | + { |
+ +90 + | ++ + + + + | + String methodName = "run"; |
+ +91 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +92 + | ++ + + + + | +|
+ +93 + | ++ + + + + | + String indent = "-"; |
+ +94 + | ++ + + + + | + String countString = Integer.toString(MyPrintCount); |
+ +95 + | ++ + + + + | +|
+ +96 + | +
+
+2
+
+1. run : changed conditional boundary → KILLED +2. run : negated conditional → KILLED + + + |
+ if (MyTracesName.length() > 0) |
+ +97 + | ++ + + + + | + { |
+ +98 + | ++ + + + + | + MyTraces = new MyStorage(MyTracesName); |
+ +99 + | ++ + + + + | + } |
+ +100 + | ++ + + + + | + else |
+ +101 + | ++ + + + + | + { |
+ +102 + | ++ + + + + | + MyTraces = new MyStorage(); |
+ +103 + | ++ + + + + | + } |
+ +104 + | ++ + + + + | +|
+ +105 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::addData → KILLED + + + |
+ MyTraces.addData(countString); |
+ +106 + | ++ + + + + | +|
+ +107 + | +
+
+3
+
+1. run : Changed increment from 1 to -1 → TIMED_OUT +2. run : negated conditional → TIMED_OUT +3. run : changed conditional boundary → KILLED + + + |
+ for (int i = 1; i < MyPrintCount; i++) |
+ +108 + | ++ + + + + | + { |
+ +109 + | ++ + + + + | + indent = indent + "-"; |
+ +110 + | ++ + + + + | + } |
+ +111 + | ++ + + + + | + MyLogger.getLogger().fine("indent = '" + indent + "'"); |
+ +112 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooHello/HelloApp::myPrint → KILLED + + + |
+ myPrint(indent); |
+ +113 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooHello/HelloApp::myPrint → KILLED + + + |
+ myPrint(indent + " Hello World !"); |
+ +114 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooHello/HelloApp::myPrint → SURVIVED + + + |
+ myPrint(indent); |
+ +115 + | ++ + + + + | +|
+ +116 + | +
+
+1
+
+1. run : removed call to eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::saveData → KILLED + + + |
+ MyTraces.saveData(); |
+ +117 + | ++ + + + + | +|
+ +118 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +119 + | ++ + + + + | + } |
+ +120 + | ++ + + + + | +|
+ +121 + | ++ + + + + | + // ********************************************************************** |
+ +122 + | ++ + + + + | + public void computeMyUselessResult() |
+ +123 + | ++ + + + + | + { |
+ +124 + | ++ + + + + | + // PI = 3,141 592 653 589 793 - PI (10 chiffres exactes) ~ 104348 / 33215 |
+ +125 + | ++ + + + + | + // PI = 3,1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 |
+ +126 + | ++ + + + + | + // 5923078164 0628620899 8628034825 3421170679 |
+ +127 + | ++ + + + + | + // PHI = (1 + rootsquare(5)) / 2 = 1,618 033 988 7 |
+ +128 + | ++ + + + + | + // PHI = 1,618 033 988 749 894 848 204 586 834 365 638 117 720 309 179 805 |
+ +129 + | ++ + + + + | + // 762 862 135 448 622 705 260 462 189 024 497 072 072 041 |
+ +130 + | ++ + + + + | + } |
+ +131 + | ++ + + + + | +|
+ +132 + | ++ + + + + | + // ********************************************************************** |
+ +133 + | ++ + + + + | + // ******** attributes |
+ +134 + | ++ + + + + | +|
+ +135 + | ++ + + + + | + // ********************************************************************** |
+ +136 + | ++ + + + + | + public int getMyPrintCount() |
+ +137 + | ++ + + + + | + { |
+ +138 + | +
+
+1
+
+1. getMyPrintCount : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(MyPrintCount); |
+ +139 + | ++ + + + + | + } |
+ +140 + | ++ + + + + | +|
+ +141 + | ++ + + + + | + // ********************************************************************** |
+ +142 + | ++ + + + + | + public String getMyTracesName() |
+ +143 + | ++ + + + + | + { |
+ +144 + | +
+
+1
+
+1. getMyTracesName : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooHello/HelloApp::getMyTracesName to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(MyTracesName); |
+ +145 + | ++ + + + + | + } |
+ +146 + | ++ + + + + | +|
+ +147 + | ++ + + + + | + // ********************************************************************** |
+ +148 + | ++ + + + + | + public boolean getShouldPrintOnStdout() |
+ +149 + | ++ + + + + | + { |
+ +150 + | +
+
+1
+
+1. getShouldPrintOnStdout : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(ShouldPrintOnStdout); |
+ +151 + | ++ + + + + | + } |
+ +152 + | ++ + + + + | +|
+ +153 + | ++ + + + + | + // ********** |
+ +154 + | ++ + + + + | + public void setShouldPrintOnStdout(boolean value) |
+ +155 + | ++ + + + + | + { |
+ +156 + | ++ + + + + | + ShouldPrintOnStdout = value; |
+ +157 + | ++ + + + + | + } |
+ +158 + | ++ + + + + | +|
+ +159 + | ++ + + + + | + // ********************************************************************** |
+ +160 + | ++ + + + + | + // ******** associations |
+ +161 + | ++ + + + + | +|
+ +162 + | ++ + + + + | + // ********************************************************************** |
+ +163 + | ++ + + + + | + public int cardMyTraces() |
+ +164 + | ++ + + + + | + { |
+ +165 + | ++ + + + + | + int theCard = 0; |
+ +166 + | ++ + + + + | +|
+ +167 + | +
+
+1
+
+1. cardMyTraces : negated conditional → KILLED + + + |
+ if (MyTraces != null) |
+ +168 + | ++ + + + + | + { |
+ +169 + | ++ + + + + | + theCard = 1; |
+ +170 + | ++ + + + + | + } |
+ +171 + | ++ + + + + | +|
+ +172 + | +
+
+1
+
+1. cardMyTraces : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(theCard); |
+ +173 + | ++ + + + + | + } |
+ +174 + | ++ + + + + | +|
+ +175 + | ++ + + + + | + // ********** |
+ +176 + | ++ + + + + | + public MyStorage getMyTraces() |
+ +177 + | ++ + + + + | + { |
+ +178 + | +
+
+1
+
+1. getMyTraces : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooHello/HelloApp::getMyTraces to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(MyTraces); |
+ +179 + | ++ + + + + | + } |
+ +180 + | ++ + + + + | +|
+ +181 + | ++ + + + + | + // ********************************************************************** |
+ +182 + | ++ + + + + | + // protected |
+ +183 + | ++ + + + + | + // ********************************************************************** |
+ +184 + | ++ + + + + | + // ******** methods |
+ +185 + | ++ + + + + | +|
+ +186 + | ++ + + + + | + // ********************************************************************** |
+ +187 + | ++ + + + + | + protected void myPrint(String message) |
+ +188 + | ++ + + + + | + { |
+ +189 + | +
+
+1
+
+1. myPrint : negated conditional → SURVIVED + + + |
+ if (getShouldPrintOnStdout()) |
+ +190 + | ++ + + + + | + { |
+ +191 + | +
+
+1
+
+1. myPrint : removed call to java/io/PrintStream::println → KILLED + + + |
+ System.out.println(message); |
+ +192 + | ++ + + + + | + } |
+ +193 + | +
+
+1
+
+1. myPrint : removed call to eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::addData → KILLED + + + |
+ MyTraces.addData(message); |
+ +194 + | ++ + + + + | + } |
+ +195 + | ++ + + + + | +|
+ +196 + | ++ + + + + | + // ********************************************************************** |
+ +197 + | ++ + + + + | + // private |
+ +198 + | ++ + + + + | + // ********************************************************************** |
+ +199 + | ++ + + + + | + // ******** attributes |
+ +200 + | ++ + + + + | + private int MyPrintCount; |
+ +201 + | ++ + + + + | + private String MyTracesName; |
+ +202 + | ++ + + + + | + private MyStorage MyTraces; |
+ +203 + | ++ + + + + | + private boolean ShouldPrintOnStdout; |
+ +204 + | ++ + + + + | +} |
Mutations | ||
25 | ++ |
+
+
+
+ 1.1 |
+
43 | ++ |
+
+
+
+ 1.1 |
+
61 | ++ |
+
+
+
+ 1.1 |
+
79 | ++ |
+
+
+
+ 1.1 |
+
96 | ++ |
+
+
+
+ 1.1 2.2 |
+
105 | ++ |
+
+
+
+ 1.1 |
+
107 | ++ |
+
+
+
+ 1.1 2.2 3.3 |
+
112 | ++ |
+
+
+
+ 1.1 |
+
113 | ++ |
+
+
+
+ 1.1 |
+
114 | ++ |
+
+
+
+ 1.1 |
+
116 | ++ |
+
+
+
+ 1.1 |
+
138 | ++ |
+
+
+
+ 1.1 |
+
144 | ++ |
+
+
+
+ 1.1 |
+
150 | ++ |
+
+
+
+ 1.1 |
+
167 | ++ |
+
+
+
+ 1.1 |
+
172 | ++ |
+
+
+
+ 1.1 |
+
178 | ++ |
+
+
+
+ 1.1 |
+
189 | ++ |
+
+
+
+ 1.1 |
+
191 | ++ |
+
+
+
+ 1.1 |
+
193 | ++ |
+
+
+
+ 1.1 |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
1 | +93% | +83% | +
Name | +Line Coverage | +Mutation Coverage | +
---|---|---|
HelloApp.java | +93% |
+ 83% |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dnoo.dnooLogs; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +import java.io.File; |
+ +4 + | ++ + + + + | +import java.util.Locale; |
+ +5 + | ++ + + + + | +// ********************************************************************** |
+ +6 + | ++ + + + + | +import java.util.logging.ConsoleHandler; |
+ +7 + | ++ + + + + | +import java.util.logging.FileHandler; |
+ +8 + | ++ + + + + | +import java.util.logging.Formatter; |
+ +9 + | ++ + + + + | +import java.util.logging.Handler; |
+ +10 + | ++ + + + + | +import java.util.logging.Level; |
+ +11 + | ++ + + + + | +import java.util.logging.Logger; |
+ +12 + | ++ + + + + | +import java.util.logging.SimpleFormatter; |
+ +13 + | ++ + + + + | +|
+ +14 + | ++ + + + + | +// ********************************************************************** |
+ +15 + | ++ + + + + | +public class MyLogger |
+ +16 + | ++ + + + + | +{ |
+ +17 + | ++ + + + + | + // ********************************************************************** |
+ +18 + | ++ + + + + | + // public |
+ +19 + | ++ + + + + | + // ********************************************************************** |
+ +20 + | ++ + + + + | + // ******** attributes |
+ +21 + | ++ + + + + | + public static String LogFileName = "dnoo.log"; |
+ +22 + | ++ + + + + | +|
+ +23 + | ++ + + + + | + // ********************************************************************** |
+ +24 + | ++ + + + + | + // Level: String, public read/write class attribute |
+ +25 + | ++ + + + + | + // levels: "OFF", "SEVERE", "WARNING", "INFO", "CONFIG", "FINE", "FINER", |
+ +26 + | ++ + + + + | + // "FINEST", "ALL" |
+ +27 + | ++ + + + + | + public static String getLevel() |
+ +28 + | ++ + + + + | + { |
+ +29 + | ++ + + + + | + Level currentLevel = getLogger().getLevel(); |
+ +30 + | +
+
+1
+
+1. getLevel : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::getLevel to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(levelToString(currentLevel)); |
+ +31 + | ++ + + + + | + } |
+ +32 + | ++ + + + + | +|
+ +33 + | ++ + + + + | + // *********** |
+ +34 + | ++ + + + + | + public static void setLevel(String level) |
+ +35 + | ++ + + + + | + { |
+ +36 + | ++ + + + + | + getLogger().setLevel(stringToLevel(level)); |
+ +37 + | ++ + + + + | + Instance.StdLogHandler.setLevel(stringToLevel(level)); |
+ +38 + | ++ + + + + | + } |
+ +39 + | ++ + + + + | +|
+ +40 + | ++ + + + + | + // ********************************************************************** |
+ +41 + | ++ + + + + | + // ******** methods |
+ +42 + | ++ + + + + | + public static Logger getLogger() |
+ +43 + | ++ + + + + | + { |
+ +44 + | +
+
+1
+
+1. getLogger : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::initLogs → KILLED + + + |
+ initLogs(); |
+ +45 + | +
+
+1
+
+1. getLogger : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::getLogger to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(Instance.StandardLogger); |
+ +46 + | ++ + + + + | + } |
+ +47 + | ++ + + + + | +|
+ +48 + | ++ + + + + | + // ********************************************************************** |
+ +49 + | ++ + + + + | + public static void clearLogs() |
+ +50 + | ++ + + + + | + { |
+ +51 + | ++ + + + + | + File theFile = null; |
+ +52 + | ++ + + + + | +|
+ +53 + | +
+
+1
+
+1. clearLogs : negated conditional → KILLED + + + |
+ if (Instance != null) |
+ +54 + | ++ + + + + | + { |
+ +55 + | ++ + + + + | + Instance.StdLogHandler = null; |
+ +56 + | ++ + + + + | + Instance.StandardLogger = null; |
+ +57 + | ++ + + + + | + Instance = null; |
+ +58 + | ++ + + + + | + } |
+ +59 + | ++ + + + + | + // delete file if it already exists |
+ +60 + | ++ + + + + | + theFile = new File(LogFileName); |
+ +61 + | +
+
+1
+
+1. clearLogs : negated conditional → KILLED + + + |
+ if (theFile.exists()) |
+ +62 + | ++ + + + + | + { |
+ +63 + | ++ + + + + | + theFile.delete(); |
+ +64 + | ++ + + + + | + } |
+ +65 + | ++ + + + + | +|
+ +66 + | ++ + + + + | + return; |
+ +67 + | ++ + + + + | + } |
+ +68 + | ++ + + + + | +|
+ +69 + | ++ + + + + | + // ********************************************************************** |
+ +70 + | ++ + + + + | + // protected |
+ +71 + | ++ + + + + | + // ********************************************************************** |
+ +72 + | ++ + + + + | + // ******** attributes |
+ +73 + | ++ + + + + | + protected static MyLogger Instance = null; |
+ +74 + | ++ + + + + | + protected Logger StandardLogger = null; |
+ +75 + | ++ + + + + | + protected Handler StdLogHandler = null; |
+ +76 + | ++ + + + + | + protected MyUselessClass MyValues = null; |
+ +77 + | ++ + + + + | +|
+ +78 + | ++ + + + + | + // ********************************************************************** |
+ +79 + | ++ + + + + | + // ******** methods |
+ +80 + | ++ + + + + | + protected static Level stringToLevel(String level) |
+ +81 + | ++ + + + + | + { |
+ +82 + | ++ + + + + | + // levels: OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL |
+ +83 + | ++ + + + + | + Level theLevel = Level.WARNING; |
+ +84 + | ++ + + + + | +|
+ +85 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ if (level.equals("OFF")) |
+ +86 + | ++ + + + + | + { |
+ +87 + | ++ + + + + | + theLevel = Level.OFF; |
+ +88 + | ++ + + + + | + } |
+ +89 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("SEVERE")) |
+ +90 + | ++ + + + + | + { |
+ +91 + | ++ + + + + | + theLevel = Level.SEVERE; |
+ +92 + | ++ + + + + | + } |
+ +93 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("WARNING")) |
+ +94 + | ++ + + + + | + { |
+ +95 + | ++ + + + + | + theLevel = Level.WARNING; |
+ +96 + | ++ + + + + | + } |
+ +97 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("INFO")) |
+ +98 + | ++ + + + + | + { |
+ +99 + | ++ + + + + | + theLevel = Level.INFO; |
+ +100 + | ++ + + + + | + } |
+ +101 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("CONFIG")) |
+ +102 + | ++ + + + + | + { |
+ +103 + | ++ + + + + | + theLevel = Level.CONFIG; |
+ +104 + | ++ + + + + | + } |
+ +105 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINE")) |
+ +106 + | ++ + + + + | + { |
+ +107 + | ++ + + + + | + theLevel = Level.FINE; |
+ +108 + | ++ + + + + | + } |
+ +109 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINER")) |
+ +110 + | ++ + + + + | + { |
+ +111 + | ++ + + + + | + theLevel = Level.FINER; |
+ +112 + | ++ + + + + | + } |
+ +113 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINEST")) |
+ +114 + | ++ + + + + | + { |
+ +115 + | ++ + + + + | + theLevel = Level.FINEST; |
+ +116 + | ++ + + + + | + } |
+ +117 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("ALL")) |
+ +118 + | ++ + + + + | + { |
+ +119 + | ++ + + + + | + theLevel = Level.ALL; |
+ +120 + | ++ + + + + | + } |
+ +121 + | ++ + + + + | +|
+ +122 + | +
+
+1
+
+1. stringToLevel : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::stringToLevel to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(theLevel); |
+ +123 + | ++ + + + + | + } |
+ +124 + | ++ + + + + | +|
+ +125 + | ++ + + + + | + // ********************************************************************** |
+ +126 + | ++ + + + + | + protected static String levelToString(Level level) |
+ +127 + | ++ + + + + | + { |
+ +128 + | ++ + + + + | + // levels: OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL |
+ +129 + | ++ + + + + | + String theLevel = "WARNING"; |
+ +130 + | ++ + + + + | +|
+ +131 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ if (level == Level.OFF) |
+ +132 + | ++ + + + + | + { |
+ +133 + | ++ + + + + | + theLevel = "OFF"; |
+ +134 + | ++ + + + + | + } |
+ +135 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.SEVERE) |
+ +136 + | ++ + + + + | + { |
+ +137 + | ++ + + + + | + theLevel = "SEVERE"; |
+ +138 + | ++ + + + + | + } |
+ +139 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.WARNING) |
+ +140 + | ++ + + + + | + { |
+ +141 + | ++ + + + + | + theLevel = "WARNING"; |
+ +142 + | ++ + + + + | + } |
+ +143 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.INFO) |
+ +144 + | ++ + + + + | + { |
+ +145 + | ++ + + + + | + theLevel = "INFO"; |
+ +146 + | ++ + + + + | + } |
+ +147 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.CONFIG) |
+ +148 + | ++ + + + + | + { |
+ +149 + | ++ + + + + | + theLevel = "CONFIG"; |
+ +150 + | ++ + + + + | + } |
+ +151 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINE) |
+ +152 + | ++ + + + + | + { |
+ +153 + | ++ + + + + | + theLevel = "FINE"; |
+ +154 + | ++ + + + + | + } |
+ +155 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINER) |
+ +156 + | ++ + + + + | + { |
+ +157 + | ++ + + + + | + theLevel = "FINER"; |
+ +158 + | ++ + + + + | + } |
+ +159 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINEST) |
+ +160 + | ++ + + + + | + { |
+ +161 + | ++ + + + + | + theLevel = "FINEST"; |
+ +162 + | ++ + + + + | + } |
+ +163 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.ALL) |
+ +164 + | ++ + + + + | + { |
+ +165 + | ++ + + + + | + theLevel = "ALL"; |
+ +166 + | ++ + + + + | + } |
+ +167 + | ++ + + + + | +|
+ +168 + | +
+
+1
+
+1. levelToString : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::levelToString to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(theLevel); |
+ +169 + | ++ + + + + | + } |
+ +170 + | ++ + + + + | +|
+ +171 + | ++ + + + + | + // ********************************************************************** |
+ +172 + | ++ + + + + | + protected static void initLogs() |
+ +173 + | ++ + + + + | + { |
+ +174 + | ++ + + + + | + Formatter logFormater = null; |
+ +175 + | ++ + + + + | + boolean fileCreated = false; |
+ +176 + | +
+
+1
+
+1. initLogs : removed call to java/util/Locale::setDefault → KILLED + + + |
+ Locale.setDefault(Locale.ENGLISH); |
+ +177 + | ++ + + + + | +|
+ +178 + | +
+
+1
+
+1. initLogs : negated conditional → KILLED + + + |
+ if (Instance == null) |
+ +179 + | ++ + + + + | + { |
+ +180 + | ++ + + + + | + Instance = new MyLogger(); |
+ +181 + | ++ + + + + | + Instance.StandardLogger = Logger.getLogger(MyLogger.class.getName()); |
+ +182 + | ++ + + + + | + Instance.StandardLogger.setUseParentHandlers(false); |
+ +183 + | ++ + + + + | + Instance.MyValues = new MyUselessClass(); |
+ +184 + | ++ + + + + | + |
+ +185 + | ++ + + + + | + try |
+ +186 + | ++ + + + + | + { |
+ +187 + | ++ + + + + | + Instance.StdLogHandler = new FileHandler(LogFileName, false); |
+ +188 + | ++ + + + + | + Instance.StdLogHandler.setFormatter(new SimpleFormatter()); |
+ +189 + | ++ + + + + | + fileCreated = true; |
+ +190 + | ++ + + + + | + } |
+ +191 + | ++ + + + + | + catch (Exception e) |
+ +192 + | ++ + + + + | + { |
+ +193 + | ++ + + + + | + Instance.StdLogHandler = new ConsoleHandler(); |
+ +194 + | ++ + + + + | + } |
+ +195 + | ++ + + + + | + Instance.StandardLogger.addHandler(Instance.StdLogHandler); |
+ +196 + | ++ + + + + | + |
+ +197 + | ++ + + + + | + Instance.StandardLogger.setLevel(Level.WARNING); |
+ +198 + | ++ + + + + | + Instance.StdLogHandler.setLevel(Level.WARNING); |
+ +199 + | ++ + + + + | + |
+ +200 + | +
+
+1
+
+1. initLogs : negated conditional → KILLED + + + |
+ if (fileCreated) |
+ +201 + | ++ + + + + | + { |
+ +202 + | ++ + + + + | + Instance.StandardLogger.info("Log file created"); |
+ +203 + | +
+
+1
+
+1. initLogs : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyUselessClass::setAll → KILLED + + + |
+ Instance.MyValues.setAll(); |
+ +204 + | ++ + + + + | + } |
+ +205 + | ++ + + + + | + else |
+ +206 + | ++ + + + + | + { |
+ +207 + | +
+
+1
+
+1. initLogs : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyUselessClass::clearAll → NO_COVERAGE + + + |
+ Instance.MyValues.clearAll(); |
+ +208 + | ++ + + + + | + Instance.StandardLogger.warning |
+ +209 + | ++ + + + + | + ("Cannot create log file, redirecting logs to the console"); |
+ +210 + | ++ + + + + | + } |
+ +211 + | ++ + + + + | + } |
+ +212 + | ++ + + + + | + } |
+ +213 + | ++ + + + + | +} |
Mutations | ||
30 | ++ |
+
+
+
+ 1.1 |
+
44 | ++ |
+
+
+
+ 1.1 |
+
45 | ++ |
+
+
+
+ 1.1 |
+
53 | ++ |
+
+
+
+ 1.1 |
+
61 | ++ |
+
+
+
+ 1.1 |
+
85 | ++ |
+
+
+
+ 1.1 |
+
89 | ++ |
+
+
+
+ 1.1 |
+
93 | ++ |
+
+
+
+ 1.1 |
+
97 | ++ |
+
+
+
+ 1.1 |
+
101 | ++ |
+
+
+
+ 1.1 |
+
105 | ++ |
+
+
+
+ 1.1 |
+
109 | ++ |
+
+
+
+ 1.1 |
+
113 | ++ |
+
+
+
+ 1.1 |
+
117 | ++ |
+
+
+
+ 1.1 |
+
122 | ++ |
+
+
+
+ 1.1 |
+
131 | ++ |
+
+
+
+ 1.1 |
+
135 | ++ |
+
+
+
+ 1.1 |
+
139 | ++ |
+
+
+
+ 1.1 |
+
143 | ++ |
+
+
+
+ 1.1 |
+
147 | ++ |
+
+
+
+ 1.1 |
+
151 | ++ |
+
+
+
+ 1.1 |
+
155 | ++ |
+
+
+
+ 1.1 |
+
159 | ++ |
+
+
+
+ 1.1 |
+
163 | ++ |
+
+
+
+ 1.1 |
+
168 | ++ |
+
+
+
+ 1.1 |
+
176 | ++ |
+
+
+
+ 1.1 |
+
178 | ++ |
+
+
+
+ 1.1 |
+
200 | ++ |
+
+
+
+ 1.1 |
+
203 | ++ |
+
+
+
+ 1.1 |
+
207 | ++ |
+
+
+
+ 1.1 |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
1 | +80% | +97% | +
Name | +Line Coverage | +Mutation Coverage | +
---|---|---|
MyLogger.java | +80% |
+ 97% |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dnoo.dnooMain; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +// ********************************************************************** |
+ +4 + | ++ + + + + | +import eu.stamp_project.examples.dnoo.dnooHello.HelloApp; |
+ +5 + | ++ + + + + | +import eu.stamp_project.examples.dnoo.dnooLogs.MyLogger; |
+ +6 + | ++ + + + + | +|
+ +7 + | ++ + + + + | +// ********************************************************************** |
+ +8 + | ++ + + + + | +public class MyGod |
+ +9 + | ++ + + + + | +{ |
+ +10 + | ++ + + + + | + // ********************************************************************** |
+ +11 + | ++ + + + + | + // public |
+ +12 + | ++ + + + + | + // ********************************************************************** |
+ +13 + | ++ + + + + | + // ******** methods |
+ +14 + | ++ + + + + | +|
+ +15 + | ++ + + + + | + // ********************************************************************** |
+ +16 + | ++ + + + + | + public static void main(String[] args) |
+ +17 + | ++ + + + + | + { |
+ +18 + | ++ + + + + | + int indentCount = 1; |
+ +19 + | ++ + + + + | + int argIndex = 0; |
+ +20 + | ++ + + + + | + String indentArg = ""; |
+ +21 + | ++ + + + + | + String fileName = ""; |
+ +22 + | ++ + + + + | + String logLevel = "WARNING"; |
+ +23 + | ++ + + + + | + boolean printOnStdout = true; |
+ +24 + | ++ + + + + | + boolean shouldRun = true; |
+ +25 + | ++ + + + + | +|
+ +26 + | +
+
+2
+
+1. main : changed conditional boundary → NO_COVERAGE +2. main : negated conditional → NO_COVERAGE + + + |
+ while (argIndex < args.length) |
+ +27 + | ++ + + + + | + { |
+ +28 + | +
+
+1
+
+1. main : negated conditional → NO_COVERAGE + + + |
+ if (args[argIndex].equals("-h")) |
+ +29 + | ++ + + + + | + { |
+ +30 + | +
+
+1
+
+1. main : removed call to eu/stamp_project/examples/dnoo/dnooMain/MyGod::printHelp → NO_COVERAGE + + + |
+ printHelp(); |
+ +31 + | ++ + + + + | + shouldRun = false; |
+ +32 + | ++ + + + + | + argIndex = args.length; |
+ +33 + | ++ + + + + | + } |
+ +34 + | +
+
+1
+
+1. main : negated conditional → NO_COVERAGE + + + |
+ else if (args[argIndex].equals("-no_stdout")) |
+ +35 + | ++ + + + + | + { |
+ +36 + | ++ + + + + | + printOnStdout = false; |
+ +37 + | +
+
+1
+
+1. main : Replaced integer addition with subtraction → NO_COVERAGE + + + |
+ argIndex = argIndex + 1; |
+ +38 + | ++ + + + + | + } |
+ +39 + | +
+
+1
+
+1. main : negated conditional → NO_COVERAGE + + + |
+ else if (args[argIndex].equals("-log")) |
+ +40 + | ++ + + + + | + { |
+ +41 + | +
+
+3
+
+1. main : changed conditional boundary → NO_COVERAGE +2. main : Replaced integer addition with subtraction → NO_COVERAGE +3. main : negated conditional → NO_COVERAGE + + + |
+ if (argIndex + 1 < args.length) |
+ +42 + | ++ + + + + | + { |
+ +43 + | +
+
+1
+
+1. main : Replaced integer addition with subtraction → NO_COVERAGE + + + |
+ logLevel = args[argIndex + 1]; |
+ +44 + | ++ + + + + | + } |
+ +45 + | ++ + + + + | + else |
+ +46 + | ++ + + + + | + { |
+ +47 + | +
+
+1
+
+1. main : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.err.println("Missing argument: -log <level>, -h for help"); |
+ +48 + | +
+
+1
+
+1. main : removed call to java/lang/System::exit → NO_COVERAGE + + + |
+ System.exit(1); |
+ +49 + | ++ + + + + | + } |
+ +50 + | +
+
+1
+
+1. main : Replaced integer addition with subtraction → NO_COVERAGE + + + |
+ argIndex = argIndex + 2; |
+ +51 + | ++ + + + + | + } |
+ +52 + | +
+
+1
+
+1. main : negated conditional → NO_COVERAGE + + + |
+ else if (indentArg.length() == 0) |
+ +53 + | ++ + + + + | + { |
+ +54 + | ++ + + + + | + indentArg = args[argIndex]; |
+ +55 + | +
+
+1
+
+1. main : Replaced integer addition with subtraction → NO_COVERAGE + + + |
+ argIndex = argIndex + 1; |
+ +56 + | ++ + + + + | + } |
+ +57 + | +
+
+1
+
+1. main : negated conditional → NO_COVERAGE + + + |
+ else if (fileName.length() == 0) |
+ +58 + | ++ + + + + | + { |
+ +59 + | ++ + + + + | + fileName = args[argIndex]; |
+ +60 + | +
+
+1
+
+1. main : Replaced integer addition with subtraction → NO_COVERAGE + + + |
+ argIndex = argIndex + 1; |
+ +61 + | ++ + + + + | + } |
+ +62 + | ++ + + + + | + else |
+ +63 + | ++ + + + + | + { |
+ +64 + | +
+
+1
+
+1. main : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.err.println("Unknown argument: " + args[argIndex] + ", -h for help"); |
+ +65 + | +
+
+1
+
+1. main : removed call to java/lang/System::exit → NO_COVERAGE + + + |
+ System.exit(1); |
+ +66 + | ++ + + + + | + } |
+ +67 + | ++ + + + + | + } |
+ +68 + | ++ + + + + | +|
+ +69 + | +
+
+1
+
+1. main : negated conditional → NO_COVERAGE + + + |
+ if (shouldRun) |
+ +70 + | ++ + + + + | + { |
+ +71 + | +
+
+2
+
+1. main : changed conditional boundary → NO_COVERAGE +2. main : negated conditional → NO_COVERAGE + + + |
+ if (indentArg.length() > 0) |
+ +72 + | ++ + + + + | + { |
+ +73 + | ++ + + + + | + try |
+ +74 + | ++ + + + + | + { |
+ +75 + | ++ + + + + | + indentCount = Integer.parseInt(indentArg); |
+ +76 + | ++ + + + + | + } |
+ +77 + | ++ + + + + | + catch (NumberFormatException e) |
+ +78 + | ++ + + + + | + { |
+ +79 + | +
+
+1
+
+1. main : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.err.println("Argument " + indentArg + |
+ +80 + | ++ + + + + | + " must be an integer, -h for help"); |
+ +81 + | +
+
+1
+
+1. main : removed call to java/lang/System::exit → NO_COVERAGE + + + |
+ System.exit(1); |
+ +82 + | ++ + + + + | + } |
+ +83 + | ++ + + + + | + } |
+ +84 + | ++ + + + + | +|
+ +85 + | +
+
+1
+
+1. main : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::setLevel → NO_COVERAGE + + + |
+ MyLogger.setLevel(logLevel); |
+ +86 + | ++ + + + + | +|
+ +87 + | ++ + + + + | + HelloApp myApp = new HelloApp(indentCount, fileName); |
+ +88 + | +
+
+1
+
+1. main : removed call to eu/stamp_project/examples/dnoo/dnooHello/HelloApp::setShouldPrintOnStdout → NO_COVERAGE + + + |
+ myApp.setShouldPrintOnStdout(printOnStdout); |
+ +89 + | +
+
+1
+
+1. main : removed call to eu/stamp_project/examples/dnoo/dnooHello/HelloApp::run → NO_COVERAGE + + + |
+ myApp.run(); |
+ +90 + | ++ + + + + | + } |
+ +91 + | ++ + + + + | + } |
+ +92 + | ++ + + + + | +|
+ +93 + | ++ + + + + | + // ********************************************************************** |
+ +94 + | ++ + + + + | + public static void printHelp() |
+ +95 + | ++ + + + + | + { |
+ +96 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("DNOO"); |
+ +97 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("----"); |
+ +98 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Print on stdout a 'Hello World !' message formatted according to"); |
+ +99 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("<indentation_count>, and generate an output file"); |
+ +100 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(""); |
+ +101 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("args: [-h | <indentation_count> [<file_name>] [-no_stdout] [-log <level>]]"); |
+ +102 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" -h: this help"); |
+ +103 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" <indentation_count>: number of '-' for message indentation, default is 1"); |
+ +104 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" <file_name>: output file name, default is my_storage.txt"); |
+ +105 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" output file name contains <indentation_count> and the stdout"); |
+ +106 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" -no_stdout: if specified, do not print anything on stdout,"); |
+ +107 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" generate only the output file"); |
+ +108 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" -log <level>: specify the level of information to log,"); |
+ +109 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" <level> is one of {OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL}, default is WARNING"); |
+ +110 + | +
+
+1
+
+1. printHelp : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println(" generate a log file, dnoo.log, in the current directory"); |
+ +111 + | ++ + + + + | + } |
+ +112 + | ++ + + + + | +} |
Mutations | ||
26 | ++ |
+
+
+
+ 1.1 2.2 |
+
28 | ++ |
+
+
+
+ 1.1 |
+
30 | ++ |
+
+
+
+ 1.1 |
+
34 | ++ |
+
+
+
+ 1.1 |
+
37 | ++ |
+
+
+
+ 1.1 |
+
39 | ++ |
+
+
+
+ 1.1 |
+
41 | ++ |
+
+
+
+ 1.1 2.2 3.3 |
+
43 | ++ |
+
+
+
+ 1.1 |
+
47 | ++ |
+
+
+
+ 1.1 |
+
48 | ++ |
+
+
+
+ 1.1 |
+
50 | ++ |
+
+
+
+ 1.1 |
+
52 | ++ |
+
+
+
+ 1.1 |
+
55 | ++ |
+
+
+
+ 1.1 |
+
57 | ++ |
+
+
+
+ 1.1 |
+
60 | ++ |
+
+
+
+ 1.1 |
+
64 | ++ |
+
+
+
+ 1.1 |
+
65 | ++ |
+
+
+
+ 1.1 |
+
69 | ++ |
+
+
+
+ 1.1 |
+
71 | ++ |
+
+
+
+ 1.1 2.2 |
+
79 | ++ |
+
+
+
+ 1.1 |
+
81 | ++ |
+
+
+
+ 1.1 |
+
85 | ++ |
+
+
+
+ 1.1 |
+
88 | ++ |
+
+
+
+ 1.1 |
+
89 | ++ |
+
+
+
+ 1.1 |
+
96 | ++ |
+
+
+
+ 1.1 |
+
97 | ++ |
+
+
+
+ 1.1 |
+
98 | ++ |
+
+
+
+ 1.1 |
+
99 | ++ |
+
+
+
+ 1.1 |
+
100 | ++ |
+
+
+
+ 1.1 |
+
101 | ++ |
+
+
+
+ 1.1 |
+
102 | ++ |
+
+
+
+ 1.1 |
+
103 | ++ |
+
+
+
+ 1.1 |
+
104 | ++ |
+
+
+
+ 1.1 |
+
105 | ++ |
+
+
+
+ 1.1 |
+
106 | ++ |
+
+
+
+ 1.1 |
+
107 | ++ |
+
+
+
+ 1.1 |
+
108 | ++ |
+
+
+
+ 1.1 |
+
109 | ++ |
+
+
+
+ 1.1 |
+
110 | ++ |
+
+
+
+ 1.1 |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
1 | +0% | +0% | +
Name | +Line Coverage | +Mutation Coverage | +
---|---|---|
MyGod.java | +0% |
+ 0% |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dnoo.dnooStorage; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +// ********************************************************************** |
+ +4 + | ++ + + + + | +import java.io.PrintStream; |
+ +5 + | ++ + + + + | +import java.io.BufferedReader; |
+ +6 + | ++ + + + + | +import java.io.FileReader; |
+ +7 + | ++ + + + + | +import java.io.IOException; |
+ +8 + | ++ + + + + | +import java.io.File; |
+ +9 + | ++ + + + + | +import java.util.*; |
+ +10 + | ++ + + + + | +|
+ +11 + | ++ + + + + | +import eu.stamp_project.examples.dnoo.dnooLogs.MyLogger; |
+ +12 + | ++ + + + + | +|
+ +13 + | ++ + + + + | +// ********************************************************************** |
+ +14 + | ++ + + + + | +public class MyStorage |
+ +15 + | ++ + + + + | +{ |
+ +16 + | ++ + + + + | + // ********************************************************************** |
+ +17 + | ++ + + + + | + // public |
+ +18 + | ++ + + + + | + // ********************************************************************** |
+ +19 + | ++ + + + + | + // ******** methods |
+ +20 + | ++ + + + + | +|
+ +21 + | ++ + + + + | + // ********************************************************************** |
+ +22 + | ++ + + + + | + public static void deleteFile(String fileName) |
+ +23 + | ++ + + + + | + { |
+ +24 + | ++ + + + + | + String methodName = "deleteFile"; |
+ +25 + | ++ + + + + | + MyLogger.getLogger().entering("MyStorage", methodName); |
+ +26 + | ++ + + + + | +|
+ +27 + | ++ + + + + | + File theFile = null; |
+ +28 + | ++ + + + + | +|
+ +29 + | ++ + + + + | + // delete file if it already exists |
+ +30 + | ++ + + + + | + theFile = new File(fileName); |
+ +31 + | +
+
+1
+
+1. deleteFile : negated conditional → KILLED + + + |
+ if (theFile.exists()) |
+ +32 + | ++ + + + + | + { |
+ +33 + | ++ + + + + | + theFile.delete(); |
+ +34 + | ++ + + + + | + } |
+ +35 + | ++ + + + + | +|
+ +36 + | ++ + + + + | + MyLogger.getLogger().exiting("MyStorage", methodName); |
+ +37 + | ++ + + + + | + } |
+ +38 + | ++ + + + + | +|
+ +39 + | ++ + + + + | + // ********************************************************************** |
+ +40 + | ++ + + + + | + public MyStorage() |
+ +41 + | ++ + + + + | + { |
+ +42 + | ++ + + + + | + String methodName = "MyStorage"; |
+ +43 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +44 + | ++ + + + + | +|
+ +45 + | ++ + + + + | + FileName = "my_storage.txt"; |
+ +46 + | ++ + + + + | + MyData = new ArrayList<String>(); |
+ +47 + | ++ + + + + | +|
+ +48 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +49 + | ++ + + + + | + } |
+ +50 + | ++ + + + + | +|
+ +51 + | ++ + + + + | + // ********************************************************************** |
+ +52 + | ++ + + + + | + public MyStorage(String fileName) |
+ +53 + | ++ + + + + | + { |
+ +54 + | ++ + + + + | + String methodName = "MyStorage_String"; |
+ +55 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +56 + | ++ + + + + | +|
+ +57 + | ++ + + + + | + this.FileName = fileName; |
+ +58 + | ++ + + + + | + MyData = new ArrayList<String>(); |
+ +59 + | ++ + + + + | +|
+ +60 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +61 + | ++ + + + + | + } |
+ +62 + | ++ + + + + | +|
+ +63 + | ++ + + + + | + // ********************************************************************** |
+ +64 + | ++ + + + + | + public void readData() |
+ +65 + | ++ + + + + | + { |
+ +66 + | ++ + + + + | + String methodName = "readData"; |
+ +67 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +68 + | ++ + + + + | +|
+ +69 + | ++ + + + + | + BufferedReader myBuffer = null; |
+ +70 + | ++ + + + + | + FileReader myFile = null; |
+ +71 + | ++ + + + + | + String currentLine; |
+ +72 + | ++ + + + + | +|
+ +73 + | ++ + + + + | + try |
+ +74 + | ++ + + + + | + { |
+ +75 + | ++ + + + + | + myFile = new FileReader(FileName); |
+ +76 + | ++ + + + + | + myBuffer = new BufferedReader(myFile); |
+ +77 + | +
+
+1
+
+1. readData : negated conditional → KILLED + + + |
+ while ((currentLine = myBuffer.readLine()) != null) |
+ +78 + | ++ + + + + | + { |
+ +79 + | +
+
+1
+
+1. readData : removed call to eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::addData → KILLED + + + |
+ addData(currentLine); |
+ +80 + | ++ + + + + | + } |
+ +81 + | ++ + + + + | + } |
+ +82 + | ++ + + + + | + catch(IOException e) |
+ +83 + | ++ + + + + | + { |
+ +84 + | +
+
+1
+
+1. readData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: cannot read " + FileName); |
+ +85 + | ++ + + + + | + } |
+ +86 + | ++ + + + + | +|
+ +87 + | ++ + + + + | + try |
+ +88 + | ++ + + + + | + { |
+ +89 + | +
+
+1
+
+1. readData : negated conditional → KILLED + + + |
+ if (myBuffer != null) |
+ +90 + | ++ + + + + | + { |
+ +91 + | +
+
+1
+
+1. readData : removed call to java/io/BufferedReader::close → KILLED + + + |
+ myBuffer.close(); |
+ +92 + | ++ + + + + | + } |
+ +93 + | +
+
+1
+
+1. readData : negated conditional → KILLED + + + |
+ if (myFile != null) |
+ +94 + | ++ + + + + | + { |
+ +95 + | +
+
+1
+
+1. readData : removed call to java/io/FileReader::close → KILLED + + + |
+ myFile.close(); |
+ +96 + | ++ + + + + | + } |
+ +97 + | ++ + + + + | + } |
+ +98 + | ++ + + + + | + catch(IOException e) |
+ +99 + | ++ + + + + | + { |
+ +100 + | +
+
+1
+
+1. readData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: closing " + FileName); |
+ +101 + | ++ + + + + | + } |
+ +102 + | ++ + + + + | +|
+ +103 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +104 + | ++ + + + + | + } |
+ +105 + | ++ + + + + | +|
+ +106 + | ++ + + + + | + // ********************************************************************** |
+ +107 + | ++ + + + + | + public void saveData() |
+ +108 + | ++ + + + + | + { |
+ +109 + | ++ + + + + | + String methodName = "saveData"; |
+ +110 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +111 + | ++ + + + + | +|
+ +112 + | ++ + + + + | + try |
+ +113 + | ++ + + + + | + { |
+ +114 + | ++ + + + + | + PrintStream writer = new PrintStream(new File(FileName)); |
+ +115 + | +
+
+2
+
+1. saveData : changed conditional boundary → KILLED +2. saveData : negated conditional → KILLED + + + |
+ for (int i = 0; i < getDataSize(); i++) |
+ +116 + | ++ + + + + | + { |
+ +117 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::println → KILLED + + + |
+ writer.println(getData(i)); |
+ +118 + | ++ + + + + | + } |
+ +119 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::close → SURVIVED + + + |
+ writer.close(); |
+ +120 + | ++ + + + + | + } |
+ +121 + | ++ + + + + | + catch(IOException e) |
+ +122 + | ++ + + + + | + { |
+ +123 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: cannot write into " + FileName); |
+ +124 + | ++ + + + + | + } |
+ +125 + | ++ + + + + | +|
+ +126 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +127 + | ++ + + + + | + } |
+ +128 + | ++ + + + + | +|
+ +129 + | ++ + + + + | + // ********************************************************************** |
+ +130 + | ++ + + + + | + public boolean isEqual(MyStorage anotherStorage) |
+ +131 + | ++ + + + + | + { |
+ +132 + | ++ + + + + | + String methodName = "isEqual"; |
+ +133 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +134 + | ++ + + + + | +|
+ +135 + | +
+
+1
+
+1. isEqual : negated conditional → KILLED + + + |
+ boolean areEqual = (getDataSize() == anotherStorage.getDataSize()); |
+ +136 + | ++ + + + + | +|
+ +137 + | +
+
+4
+
+1. isEqual : changed conditional boundary → KILLED +2. isEqual : Changed increment from 1 to -1 → KILLED +3. isEqual : negated conditional → KILLED +4. isEqual : negated conditional → KILLED + + + |
+ for (int i = 0; i < getDataSize() && areEqual; i++) |
+ +138 + | ++ + + + + | + { |
+ +139 + | +
+
+1
+
+1. isEqual : negated conditional → KILLED + + + |
+ if (! (getData(i).equals(anotherStorage.getData(i)))) |
+ +140 + | ++ + + + + | + { |
+ +141 + | ++ + + + + | + areEqual = false; |
+ +142 + | ++ + + + + | + } |
+ +143 + | ++ + + + + | + } |
+ +144 + | ++ + + + + | +|
+ +145 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +146 + | +
+
+1
+
+1. isEqual : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(areEqual); |
+ +147 + | ++ + + + + | + } |
+ +148 + | ++ + + + + | +|
+ +149 + | ++ + + + + | + // ********************************************************************** |
+ +150 + | ++ + + + + | + public boolean dataAreEqual(ArrayList<String> otherData) |
+ +151 + | ++ + + + + | + { |
+ +152 + | ++ + + + + | + String methodName = "dataAreEqual"; |
+ +153 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +154 + | ++ + + + + | +|
+ +155 + | +
+
+1
+
+1. dataAreEqual : negated conditional → KILLED + + + |
+ boolean areEqual = (getDataSize() == otherData.size()); |
+ +156 + | ++ + + + + | +|
+ +157 + | +
+
+4
+
+1. dataAreEqual : negated conditional → SURVIVED +2. dataAreEqual : negated conditional → SURVIVED +3. dataAreEqual : changed conditional boundary → KILLED +4. dataAreEqual : Changed increment from 1 to -1 → KILLED + + + |
+ for (int i = 0; i < getDataSize() && areEqual; i++) |
+ +158 + | ++ + + + + | + { |
+ +159 + | +
+
+1
+
+1. dataAreEqual : negated conditional → KILLED + + + |
+ if (! (getData(i).equals(otherData.get(i)))) |
+ +160 + | ++ + + + + | + { |
+ +161 + | ++ + + + + | + areEqual = false; |
+ +162 + | ++ + + + + | + } |
+ +163 + | ++ + + + + | + } |
+ +164 + | ++ + + + + | +|
+ +165 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +166 + | +
+
+1
+
+1. dataAreEqual : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(areEqual); |
+ +167 + | ++ + + + + | + } |
+ +168 + | ++ + + + + | +|
+ +169 + | ++ + + + + | + // ********************************************************************** |
+ +170 + | ++ + + + + | + // ******** attributes |
+ +171 + | ++ + + + + | +|
+ +172 + | ++ + + + + | + // ********************************************************************** |
+ +173 + | ++ + + + + | + public String getFileName() |
+ +174 + | ++ + + + + | + { |
+ +175 + | +
+
+1
+
+1. getFileName : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::getFileName to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(FileName); |
+ +176 + | ++ + + + + | + } |
+ +177 + | ++ + + + + | +|
+ +178 + | ++ + + + + | + // ********************************************************************** |
+ +179 + | ++ + + + + | + public int getDataSize() |
+ +180 + | ++ + + + + | + { |
+ +181 + | +
+
+1
+
+1. getDataSize : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(MyData.size()); |
+ +182 + | ++ + + + + | + } |
+ +183 + | ++ + + + + | +|
+ +184 + | ++ + + + + | + // ********************************************************************** |
+ +185 + | ++ + + + + | + public String getData(int index) |
+ +186 + | ++ + + + + | + { |
+ +187 + | +
+
+1
+
+1. getData : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::getData to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(MyData.get(index)); |
+ +188 + | ++ + + + + | + } |
+ +189 + | ++ + + + + | +|
+ +190 + | ++ + + + + | + // ********************************************************************** |
+ +191 + | ++ + + + + | + public void addData(String aData) |
+ +192 + | ++ + + + + | + { |
+ +193 + | ++ + + + + | + MyLogger.getLogger().finest("IN : DataSize = " + Integer.toString(getDataSize()) |
+ +194 + | ++ + + + + | + + " - aData = " + aData); |
+ +195 + | ++ + + + + | +|
+ +196 + | ++ + + + + | + MyData.add(aData); |
+ +197 + | ++ + + + + | +|
+ +198 + | ++ + + + + | + MyLogger.getLogger().finest("OUT: DataSize = " + Integer.toString(getDataSize())); |
+ +199 + | ++ + + + + | + } |
+ +200 + | ++ + + + + | +|
+ +201 + | ++ + + + + | + // ********************************************************************** |
+ +202 + | ++ + + + + | + public void delData(String aData) |
+ +203 + | ++ + + + + | + { |
+ +204 + | ++ + + + + | + MyLogger.getLogger().finest("IN : DataSize = " + Integer.toString(getDataSize())); |
+ +205 + | ++ + + + + | +|
+ +206 + | ++ + + + + | + boolean found = false; |
+ +207 + | ++ + + + + | +|
+ +208 + | +
+
+4
+
+1. delData : changed conditional boundary → NO_COVERAGE +2. delData : Changed increment from 1 to -1 → NO_COVERAGE +3. delData : negated conditional → NO_COVERAGE +4. delData : negated conditional → NO_COVERAGE + + + |
+ for (int i = 0; i < getDataSize() && ! found; i++) |
+ +209 + | ++ + + + + | + { |
+ +210 + | +
+
+1
+
+1. delData : negated conditional → NO_COVERAGE + + + |
+ if (getData(i).equals(aData)) |
+ +211 + | ++ + + + + | + { |
+ +212 + | ++ + + + + | + MyData.remove(i); |
+ +213 + | ++ + + + + | + found = true; |
+ +214 + | ++ + + + + | + } |
+ +215 + | ++ + + + + | + } |
+ +216 + | ++ + + + + | +|
+ +217 + | ++ + + + + | + MyLogger.getLogger().finest("OUT: DataSize = " + Integer.toString(getDataSize()) |
+ +218 + | ++ + + + + | + + " - found = " + Boolean.toString(found)); |
+ +219 + | ++ + + + + | + } |
+ +220 + | ++ + + + + | +|
+ +221 + | ++ + + + + | + // ********************************************************************** |
+ +222 + | ++ + + + + | + // private |
+ +223 + | ++ + + + + | + // ********************************************************************** |
+ +224 + | ++ + + + + | + // ******** attributes |
+ +225 + | ++ + + + + | + private String FileName; |
+ +226 + | ++ + + + + | + private ArrayList<String> MyData; |
+ +227 + | ++ + + + + | +} |
Mutations | ||
31 | ++ |
+
+
+
+ 1.1 |
+
77 | ++ |
+
+
+
+ 1.1 |
+
79 | ++ |
+
+
+
+ 1.1 |
+
84 | ++ |
+
+
+
+ 1.1 |
+
89 | ++ |
+
+
+
+ 1.1 |
+
91 | ++ |
+
+
+
+ 1.1 |
+
93 | ++ |
+
+
+
+ 1.1 |
+
95 | ++ |
+
+
+
+ 1.1 |
+
100 | ++ |
+
+
+
+ 1.1 |
+
115 | ++ |
+
+
+
+ 1.1 2.2 |
+
117 | ++ |
+
+
+
+ 1.1 |
+
119 | ++ |
+
+
+
+ 1.1 |
+
123 | ++ |
+
+
+
+ 1.1 |
+
135 | ++ |
+
+
+
+ 1.1 |
+
137 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
139 | ++ |
+
+
+
+ 1.1 |
+
146 | ++ |
+
+
+
+ 1.1 |
+
155 | ++ |
+
+
+
+ 1.1 |
+
157 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
159 | ++ |
+
+
+
+ 1.1 |
+
166 | ++ |
+
+
+
+ 1.1 |
+
175 | ++ |
+
+
+
+ 1.1 |
+
181 | ++ |
+
+
+
+ 1.1 |
+
187 | ++ |
+
+
+
+ 1.1 |
+
208 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
210 | ++ |
+
+
+
+ 1.1 |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
1 | +80% | +69% | +
Name | +Line Coverage | +Mutation Coverage | +
---|---|---|
MyStorage.java | +80% |
+ 69% |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
4 | +68% | +55% | +
Name | +Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|---|
eu.stamp_project.examples.dnoo.dnooHello | +1 | +93% |
+ 83% |
+
eu.stamp_project.examples.dnoo.dnooLogs | +1 | +80% |
+ 97% |
+
eu.stamp_project.examples.dnoo.dnooMain | +1 | +0% |
+ 0% |
+
eu.stamp_project.examples.dnoo.dnooStorage | +1 | +80% |
+ 69% |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dnoo.dnooLogs; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +import java.io.File; |
+ +4 + | ++ + + + + | +import java.util.Locale; |
+ +5 + | ++ + + + + | +// ********************************************************************** |
+ +6 + | ++ + + + + | +import java.util.logging.ConsoleHandler; |
+ +7 + | ++ + + + + | +import java.util.logging.FileHandler; |
+ +8 + | ++ + + + + | +import java.util.logging.Formatter; |
+ +9 + | ++ + + + + | +import java.util.logging.Handler; |
+ +10 + | ++ + + + + | +import java.util.logging.Level; |
+ +11 + | ++ + + + + | +import java.util.logging.Logger; |
+ +12 + | ++ + + + + | +import java.util.logging.SimpleFormatter; |
+ +13 + | ++ + + + + | +|
+ +14 + | ++ + + + + | +// ********************************************************************** |
+ +15 + | ++ + + + + | +public class MyLogger |
+ +16 + | ++ + + + + | +{ |
+ +17 + | ++ + + + + | + // ********************************************************************** |
+ +18 + | ++ + + + + | + // public |
+ +19 + | ++ + + + + | + // ********************************************************************** |
+ +20 + | ++ + + + + | + // ******** attributes |
+ +21 + | ++ + + + + | + public static String LogFileName = "dnoo.log"; |
+ +22 + | ++ + + + + | +|
+ +23 + | ++ + + + + | + // ********************************************************************** |
+ +24 + | ++ + + + + | + // Level: String, public read/write class attribute |
+ +25 + | ++ + + + + | + // levels: "OFF", "SEVERE", "WARNING", "INFO", "CONFIG", "FINE", "FINER", |
+ +26 + | ++ + + + + | + // "FINEST", "ALL" |
+ +27 + | ++ + + + + | + public static String getLevel() |
+ +28 + | ++ + + + + | + { |
+ +29 + | ++ + + + + | + Level currentLevel = getLogger().getLevel(); |
+ +30 + | +
+
+1
+
+1. getLevel : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::getLevel to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(levelToString(currentLevel)); |
+ +31 + | ++ + + + + | + } |
+ +32 + | ++ + + + + | +|
+ +33 + | ++ + + + + | + // *********** |
+ +34 + | ++ + + + + | + public static void setLevel(String level) |
+ +35 + | ++ + + + + | + { |
+ +36 + | ++ + + + + | + getLogger().setLevel(stringToLevel(level)); |
+ +37 + | ++ + + + + | + Instance.StdLogHandler.setLevel(stringToLevel(level)); |
+ +38 + | ++ + + + + | + } |
+ +39 + | ++ + + + + | +|
+ +40 + | ++ + + + + | + // ********************************************************************** |
+ +41 + | ++ + + + + | + // ******** methods |
+ +42 + | ++ + + + + | + public static Logger getLogger() |
+ +43 + | ++ + + + + | + { |
+ +44 + | +
+
+1
+
+1. getLogger : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::initLogs → SURVIVED + + + |
+ initLogs(); |
+ +45 + | +
+
+1
+
+1. getLogger : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::getLogger to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(Instance.StandardLogger); |
+ +46 + | ++ + + + + | + } |
+ +47 + | ++ + + + + | +|
+ +48 + | ++ + + + + | + // ********************************************************************** |
+ +49 + | ++ + + + + | + public static void clearLogs() |
+ +50 + | ++ + + + + | + { |
+ +51 + | ++ + + + + | + File theFile = null; |
+ +52 + | ++ + + + + | +|
+ +53 + | +
+
+1
+
+1. clearLogs : negated conditional → NO_COVERAGE + + + |
+ if (Instance != null) |
+ +54 + | ++ + + + + | + { |
+ +55 + | ++ + + + + | + Instance.StdLogHandler = null; |
+ +56 + | ++ + + + + | + Instance.StandardLogger = null; |
+ +57 + | ++ + + + + | + Instance = null; |
+ +58 + | ++ + + + + | + } |
+ +59 + | ++ + + + + | + // delete file if it already exists |
+ +60 + | ++ + + + + | + theFile = new File(LogFileName); |
+ +61 + | +
+
+1
+
+1. clearLogs : negated conditional → NO_COVERAGE + + + |
+ if (theFile.exists()) |
+ +62 + | ++ + + + + | + { |
+ +63 + | ++ + + + + | + theFile.delete(); |
+ +64 + | ++ + + + + | + } |
+ +65 + | ++ + + + + | +|
+ +66 + | ++ + + + + | + return; |
+ +67 + | ++ + + + + | + } |
+ +68 + | ++ + + + + | +|
+ +69 + | ++ + + + + | + // ********************************************************************** |
+ +70 + | ++ + + + + | + // protected |
+ +71 + | ++ + + + + | + // ********************************************************************** |
+ +72 + | ++ + + + + | + // ******** attributes |
+ +73 + | ++ + + + + | + protected static MyLogger Instance = null; |
+ +74 + | ++ + + + + | + protected Logger StandardLogger = null; |
+ +75 + | ++ + + + + | + protected Handler StdLogHandler = null; |
+ +76 + | ++ + + + + | + protected MyUselessClass MyValues = null; |
+ +77 + | ++ + + + + | +|
+ +78 + | ++ + + + + | + // ********************************************************************** |
+ +79 + | ++ + + + + | + // ******** methods |
+ +80 + | ++ + + + + | + protected static Level stringToLevel(String level) |
+ +81 + | ++ + + + + | + { |
+ +82 + | ++ + + + + | + // levels: OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL |
+ +83 + | ++ + + + + | + Level theLevel = Level.WARNING; |
+ +84 + | ++ + + + + | +|
+ +85 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ if (level.equals("OFF")) |
+ +86 + | ++ + + + + | + { |
+ +87 + | ++ + + + + | + theLevel = Level.OFF; |
+ +88 + | ++ + + + + | + } |
+ +89 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("SEVERE")) |
+ +90 + | ++ + + + + | + { |
+ +91 + | ++ + + + + | + theLevel = Level.SEVERE; |
+ +92 + | ++ + + + + | + } |
+ +93 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("WARNING")) |
+ +94 + | ++ + + + + | + { |
+ +95 + | ++ + + + + | + theLevel = Level.WARNING; |
+ +96 + | ++ + + + + | + } |
+ +97 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("INFO")) |
+ +98 + | ++ + + + + | + { |
+ +99 + | ++ + + + + | + theLevel = Level.INFO; |
+ +100 + | ++ + + + + | + } |
+ +101 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("CONFIG")) |
+ +102 + | ++ + + + + | + { |
+ +103 + | ++ + + + + | + theLevel = Level.CONFIG; |
+ +104 + | ++ + + + + | + } |
+ +105 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINE")) |
+ +106 + | ++ + + + + | + { |
+ +107 + | ++ + + + + | + theLevel = Level.FINE; |
+ +108 + | ++ + + + + | + } |
+ +109 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINER")) |
+ +110 + | ++ + + + + | + { |
+ +111 + | ++ + + + + | + theLevel = Level.FINER; |
+ +112 + | ++ + + + + | + } |
+ +113 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("FINEST")) |
+ +114 + | ++ + + + + | + { |
+ +115 + | ++ + + + + | + theLevel = Level.FINEST; |
+ +116 + | ++ + + + + | + } |
+ +117 + | +
+
+1
+
+1. stringToLevel : negated conditional → KILLED + + + |
+ else if (level.equals("ALL")) |
+ +118 + | ++ + + + + | + { |
+ +119 + | ++ + + + + | + theLevel = Level.ALL; |
+ +120 + | ++ + + + + | + } |
+ +121 + | ++ + + + + | +|
+ +122 + | +
+
+1
+
+1. stringToLevel : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::stringToLevel to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(theLevel); |
+ +123 + | ++ + + + + | + } |
+ +124 + | ++ + + + + | +|
+ +125 + | ++ + + + + | + // ********************************************************************** |
+ +126 + | ++ + + + + | + protected static String levelToString(Level level) |
+ +127 + | ++ + + + + | + { |
+ +128 + | ++ + + + + | + // levels: OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL |
+ +129 + | ++ + + + + | + String theLevel = "WARNING"; |
+ +130 + | ++ + + + + | +|
+ +131 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ if (level == Level.OFF) |
+ +132 + | ++ + + + + | + { |
+ +133 + | ++ + + + + | + theLevel = "OFF"; |
+ +134 + | ++ + + + + | + } |
+ +135 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.SEVERE) |
+ +136 + | ++ + + + + | + { |
+ +137 + | ++ + + + + | + theLevel = "SEVERE"; |
+ +138 + | ++ + + + + | + } |
+ +139 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.WARNING) |
+ +140 + | ++ + + + + | + { |
+ +141 + | ++ + + + + | + theLevel = "WARNING"; |
+ +142 + | ++ + + + + | + } |
+ +143 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.INFO) |
+ +144 + | ++ + + + + | + { |
+ +145 + | ++ + + + + | + theLevel = "INFO"; |
+ +146 + | ++ + + + + | + } |
+ +147 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.CONFIG) |
+ +148 + | ++ + + + + | + { |
+ +149 + | ++ + + + + | + theLevel = "CONFIG"; |
+ +150 + | ++ + + + + | + } |
+ +151 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINE) |
+ +152 + | ++ + + + + | + { |
+ +153 + | ++ + + + + | + theLevel = "FINE"; |
+ +154 + | ++ + + + + | + } |
+ +155 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINER) |
+ +156 + | ++ + + + + | + { |
+ +157 + | ++ + + + + | + theLevel = "FINER"; |
+ +158 + | ++ + + + + | + } |
+ +159 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.FINEST) |
+ +160 + | ++ + + + + | + { |
+ +161 + | ++ + + + + | + theLevel = "FINEST"; |
+ +162 + | ++ + + + + | + } |
+ +163 + | +
+
+1
+
+1. levelToString : negated conditional → KILLED + + + |
+ else if (level == Level.ALL) |
+ +164 + | ++ + + + + | + { |
+ +165 + | ++ + + + + | + theLevel = "ALL"; |
+ +166 + | ++ + + + + | + } |
+ +167 + | ++ + + + + | +|
+ +168 + | +
+
+1
+
+1. levelToString : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooLogs/MyLogger::levelToString to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(theLevel); |
+ +169 + | ++ + + + + | + } |
+ +170 + | ++ + + + + | +|
+ +171 + | ++ + + + + | + // ********************************************************************** |
+ +172 + | ++ + + + + | + protected static void initLogs() |
+ +173 + | ++ + + + + | + { |
+ +174 + | ++ + + + + | + Formatter logFormater = null; |
+ +175 + | ++ + + + + | + boolean fileCreated = false; |
+ +176 + | +
+
+1
+
+1. initLogs : removed call to java/util/Locale::setDefault → SURVIVED + + + |
+ Locale.setDefault(Locale.ENGLISH); |
+ +177 + | ++ + + + + | +|
+ +178 + | +
+
+1
+
+1. initLogs : negated conditional → KILLED + + + |
+ if (Instance == null) |
+ +179 + | ++ + + + + | + { |
+ +180 + | ++ + + + + | + Instance = new MyLogger(); |
+ +181 + | ++ + + + + | + Instance.StandardLogger = Logger.getLogger(MyLogger.class.getName()); |
+ +182 + | ++ + + + + | + Instance.StandardLogger.setUseParentHandlers(false); |
+ +183 + | ++ + + + + | + Instance.MyValues = new MyUselessClass(); |
+ +184 + | ++ + + + + | + |
+ +185 + | ++ + + + + | + try |
+ +186 + | ++ + + + + | + { |
+ +187 + | ++ + + + + | + Instance.StdLogHandler = new FileHandler(LogFileName, false); |
+ +188 + | ++ + + + + | + Instance.StdLogHandler.setFormatter(new SimpleFormatter()); |
+ +189 + | ++ + + + + | + fileCreated = true; |
+ +190 + | ++ + + + + | + } |
+ +191 + | ++ + + + + | + catch (Exception e) |
+ +192 + | ++ + + + + | + { |
+ +193 + | ++ + + + + | + Instance.StdLogHandler = new ConsoleHandler(); |
+ +194 + | ++ + + + + | + } |
+ +195 + | ++ + + + + | + Instance.StandardLogger.addHandler(Instance.StdLogHandler); |
+ +196 + | ++ + + + + | + |
+ +197 + | ++ + + + + | + Instance.StandardLogger.setLevel(Level.WARNING); |
+ +198 + | ++ + + + + | + Instance.StdLogHandler.setLevel(Level.WARNING); |
+ +199 + | ++ + + + + | + |
+ +200 + | +
+
+1
+
+1. initLogs : negated conditional → SURVIVED + + + |
+ if (fileCreated) |
+ +201 + | ++ + + + + | + { |
+ +202 + | ++ + + + + | + Instance.StandardLogger.info("Log file created"); |
+ +203 + | +
+
+1
+
+1. initLogs : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyUselessClass::setAll → SURVIVED + + + |
+ Instance.MyValues.setAll(); |
+ +204 + | ++ + + + + | + } |
+ +205 + | ++ + + + + | + else |
+ +206 + | ++ + + + + | + { |
+ +207 + | +
+
+1
+
+1. initLogs : removed call to eu/stamp_project/examples/dnoo/dnooLogs/MyUselessClass::clearAll → NO_COVERAGE + + + |
+ Instance.MyValues.clearAll(); |
+ +208 + | ++ + + + + | + Instance.StandardLogger.warning |
+ +209 + | ++ + + + + | + ("Cannot create log file, redirecting logs to the console"); |
+ +210 + | ++ + + + + | + } |
+ +211 + | ++ + + + + | + } |
+ +212 + | ++ + + + + | + } |
+ +213 + | ++ + + + + | +} |
Mutations | ||
30 | ++ |
+
+
+
+ 1.1 |
+
44 | ++ |
+
+
+
+ 1.1 |
+
45 | ++ |
+
+
+
+ 1.1 |
+
53 | ++ |
+
+
+
+ 1.1 |
+
61 | ++ |
+
+
+
+ 1.1 |
+
85 | ++ |
+
+
+
+ 1.1 |
+
89 | ++ |
+
+
+
+ 1.1 |
+
93 | ++ |
+
+
+
+ 1.1 |
+
97 | ++ |
+
+
+
+ 1.1 |
+
101 | ++ |
+
+
+
+ 1.1 |
+
105 | ++ |
+
+
+
+ 1.1 |
+
109 | ++ |
+
+
+
+ 1.1 |
+
113 | ++ |
+
+
+
+ 1.1 |
+
117 | ++ |
+
+
+
+ 1.1 |
+
122 | ++ |
+
+
+
+ 1.1 |
+
131 | ++ |
+
+
+
+ 1.1 |
+
135 | ++ |
+
+
+
+ 1.1 |
+
139 | ++ |
+
+
+
+ 1.1 |
+
143 | ++ |
+
+
+
+ 1.1 |
+
147 | ++ |
+
+
+
+ 1.1 |
+
151 | ++ |
+
+
+
+ 1.1 |
+
155 | ++ |
+
+
+
+ 1.1 |
+
159 | ++ |
+
+
+
+ 1.1 |
+
163 | ++ |
+
+
+
+ 1.1 |
+
168 | ++ |
+
+
+
+ 1.1 |
+
176 | ++ |
+
+
+
+ 1.1 |
+
178 | ++ |
+
+
+
+ 1.1 |
+
200 | ++ |
+
+
+
+ 1.1 |
+
203 | ++ |
+
+
+
+ 1.1 |
+
207 | ++ |
+
+
+
+ 1.1 |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
1 | +67% | +77% | +
Name | +Line Coverage | +Mutation Coverage | +
---|---|---|
MyLogger.java | +67% |
+ 77% |
+
+ +1 + | ++ + + + + | +package eu.stamp_project.examples.dnoo.dnooStorage; |
+ +2 + | ++ + + + + | +|
+ +3 + | ++ + + + + | +// ********************************************************************** |
+ +4 + | ++ + + + + | +import java.io.PrintStream; |
+ +5 + | ++ + + + + | +import java.io.BufferedReader; |
+ +6 + | ++ + + + + | +import java.io.FileReader; |
+ +7 + | ++ + + + + | +import java.io.IOException; |
+ +8 + | ++ + + + + | +import java.io.File; |
+ +9 + | ++ + + + + | +import java.util.*; |
+ +10 + | ++ + + + + | +|
+ +11 + | ++ + + + + | +import eu.stamp_project.examples.dnoo.dnooLogs.MyLogger; |
+ +12 + | ++ + + + + | +|
+ +13 + | ++ + + + + | +// ********************************************************************** |
+ +14 + | ++ + + + + | +public class MyStorage |
+ +15 + | ++ + + + + | +{ |
+ +16 + | ++ + + + + | + // ********************************************************************** |
+ +17 + | ++ + + + + | + // public |
+ +18 + | ++ + + + + | + // ********************************************************************** |
+ +19 + | ++ + + + + | + // ******** methods |
+ +20 + | ++ + + + + | +|
+ +21 + | ++ + + + + | + // ********************************************************************** |
+ +22 + | ++ + + + + | + public static void deleteFile(String fileName) |
+ +23 + | ++ + + + + | + { |
+ +24 + | ++ + + + + | + String methodName = "deleteFile"; |
+ +25 + | ++ + + + + | + MyLogger.getLogger().entering("MyStorage", methodName); |
+ +26 + | ++ + + + + | +|
+ +27 + | ++ + + + + | + File theFile = null; |
+ +28 + | ++ + + + + | +|
+ +29 + | ++ + + + + | + // delete file if it already exists |
+ +30 + | ++ + + + + | + theFile = new File(fileName); |
+ +31 + | +
+
+1
+
+1. deleteFile : negated conditional → SURVIVED + + + |
+ if (theFile.exists()) |
+ +32 + | ++ + + + + | + { |
+ +33 + | ++ + + + + | + theFile.delete(); |
+ +34 + | ++ + + + + | + } |
+ +35 + | ++ + + + + | +|
+ +36 + | ++ + + + + | + MyLogger.getLogger().exiting("MyStorage", methodName); |
+ +37 + | ++ + + + + | + } |
+ +38 + | ++ + + + + | +|
+ +39 + | ++ + + + + | + // ********************************************************************** |
+ +40 + | ++ + + + + | + public MyStorage() |
+ +41 + | ++ + + + + | + { |
+ +42 + | ++ + + + + | + String methodName = "MyStorage"; |
+ +43 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +44 + | ++ + + + + | +|
+ +45 + | ++ + + + + | + FileName = "my_storage.txt"; |
+ +46 + | ++ + + + + | + MyData = new ArrayList<String>(); |
+ +47 + | ++ + + + + | +|
+ +48 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +49 + | ++ + + + + | + } |
+ +50 + | ++ + + + + | +|
+ +51 + | ++ + + + + | + // ********************************************************************** |
+ +52 + | ++ + + + + | + public MyStorage(String fileName) |
+ +53 + | ++ + + + + | + { |
+ +54 + | ++ + + + + | + String methodName = "MyStorage_String"; |
+ +55 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +56 + | ++ + + + + | +|
+ +57 + | ++ + + + + | + this.FileName = fileName; |
+ +58 + | ++ + + + + | + MyData = new ArrayList<String>(); |
+ +59 + | ++ + + + + | +|
+ +60 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +61 + | ++ + + + + | + } |
+ +62 + | ++ + + + + | +|
+ +63 + | ++ + + + + | + // ********************************************************************** |
+ +64 + | ++ + + + + | + public void readData() |
+ +65 + | ++ + + + + | + { |
+ +66 + | ++ + + + + | + String methodName = "readData"; |
+ +67 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +68 + | ++ + + + + | +|
+ +69 + | ++ + + + + | + BufferedReader myBuffer = null; |
+ +70 + | ++ + + + + | + FileReader myFile = null; |
+ +71 + | ++ + + + + | + String currentLine; |
+ +72 + | ++ + + + + | +|
+ +73 + | ++ + + + + | + try |
+ +74 + | ++ + + + + | + { |
+ +75 + | ++ + + + + | + myFile = new FileReader(FileName); |
+ +76 + | ++ + + + + | + myBuffer = new BufferedReader(myFile); |
+ +77 + | +
+
+1
+
+1. readData : negated conditional → KILLED + + + |
+ while ((currentLine = myBuffer.readLine()) != null) |
+ +78 + | ++ + + + + | + { |
+ +79 + | +
+
+1
+
+1. readData : removed call to eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::addData → KILLED + + + |
+ addData(currentLine); |
+ +80 + | ++ + + + + | + } |
+ +81 + | ++ + + + + | + } |
+ +82 + | ++ + + + + | + catch(IOException e) |
+ +83 + | ++ + + + + | + { |
+ +84 + | +
+
+1
+
+1. readData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: cannot read " + FileName); |
+ +85 + | ++ + + + + | + } |
+ +86 + | ++ + + + + | +|
+ +87 + | ++ + + + + | + try |
+ +88 + | ++ + + + + | + { |
+ +89 + | +
+
+1
+
+1. readData : negated conditional → SURVIVED + + + |
+ if (myBuffer != null) |
+ +90 + | ++ + + + + | + { |
+ +91 + | +
+
+1
+
+1. readData : removed call to java/io/BufferedReader::close → SURVIVED + + + |
+ myBuffer.close(); |
+ +92 + | ++ + + + + | + } |
+ +93 + | +
+
+1
+
+1. readData : negated conditional → SURVIVED + + + |
+ if (myFile != null) |
+ +94 + | ++ + + + + | + { |
+ +95 + | +
+
+1
+
+1. readData : removed call to java/io/FileReader::close → SURVIVED + + + |
+ myFile.close(); |
+ +96 + | ++ + + + + | + } |
+ +97 + | ++ + + + + | + } |
+ +98 + | ++ + + + + | + catch(IOException e) |
+ +99 + | ++ + + + + | + { |
+ +100 + | +
+
+1
+
+1. readData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: closing " + FileName); |
+ +101 + | ++ + + + + | + } |
+ +102 + | ++ + + + + | +|
+ +103 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +104 + | ++ + + + + | + } |
+ +105 + | ++ + + + + | +|
+ +106 + | ++ + + + + | + // ********************************************************************** |
+ +107 + | ++ + + + + | + public void saveData() |
+ +108 + | ++ + + + + | + { |
+ +109 + | ++ + + + + | + String methodName = "saveData"; |
+ +110 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +111 + | ++ + + + + | +|
+ +112 + | ++ + + + + | + try |
+ +113 + | ++ + + + + | + { |
+ +114 + | ++ + + + + | + PrintStream writer = new PrintStream(new File(FileName)); |
+ +115 + | +
+
+2
+
+1. saveData : changed conditional boundary → KILLED +2. saveData : negated conditional → KILLED + + + |
+ for (int i = 0; i < getDataSize(); i++) |
+ +116 + | ++ + + + + | + { |
+ +117 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::println → KILLED + + + |
+ writer.println(getData(i)); |
+ +118 + | ++ + + + + | + } |
+ +119 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::close → SURVIVED + + + |
+ writer.close(); |
+ +120 + | ++ + + + + | + } |
+ +121 + | ++ + + + + | + catch(IOException e) |
+ +122 + | ++ + + + + | + { |
+ +123 + | +
+
+1
+
+1. saveData : removed call to java/io/PrintStream::println → NO_COVERAGE + + + |
+ System.out.println("Error: cannot write into " + FileName); |
+ +124 + | ++ + + + + | + } |
+ +125 + | ++ + + + + | +|
+ +126 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +127 + | ++ + + + + | + } |
+ +128 + | ++ + + + + | +|
+ +129 + | ++ + + + + | + // ********************************************************************** |
+ +130 + | ++ + + + + | + public boolean isEqual(MyStorage anotherStorage) |
+ +131 + | ++ + + + + | + { |
+ +132 + | ++ + + + + | + String methodName = "isEqual"; |
+ +133 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +134 + | ++ + + + + | +|
+ +135 + | +
+
+1
+
+1. isEqual : negated conditional → KILLED + + + |
+ boolean areEqual = (getDataSize() == anotherStorage.getDataSize()); |
+ +136 + | ++ + + + + | +|
+ +137 + | +
+
+4
+
+1. isEqual : negated conditional → SURVIVED +2. isEqual : negated conditional → SURVIVED +3. isEqual : changed conditional boundary → KILLED +4. isEqual : Changed increment from 1 to -1 → KILLED + + + |
+ for (int i = 0; i < getDataSize() && areEqual; i++) |
+ +138 + | ++ + + + + | + { |
+ +139 + | +
+
+1
+
+1. isEqual : negated conditional → KILLED + + + |
+ if (! (getData(i).equals(anotherStorage.getData(i)))) |
+ +140 + | ++ + + + + | + { |
+ +141 + | ++ + + + + | + areEqual = false; |
+ +142 + | ++ + + + + | + } |
+ +143 + | ++ + + + + | + } |
+ +144 + | ++ + + + + | +|
+ +145 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +146 + | +
+
+1
+
+1. isEqual : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(areEqual); |
+ +147 + | ++ + + + + | + } |
+ +148 + | ++ + + + + | +|
+ +149 + | ++ + + + + | + // ********************************************************************** |
+ +150 + | ++ + + + + | + public boolean dataAreEqual(ArrayList<String> otherData) |
+ +151 + | ++ + + + + | + { |
+ +152 + | ++ + + + + | + String methodName = "dataAreEqual"; |
+ +153 + | ++ + + + + | + MyLogger.getLogger().entering(getClass().getName(), methodName); |
+ +154 + | ++ + + + + | +|
+ +155 + | +
+
+1
+
+1. dataAreEqual : negated conditional → KILLED + + + |
+ boolean areEqual = (getDataSize() == otherData.size()); |
+ +156 + | ++ + + + + | +|
+ +157 + | +
+
+4
+
+1. dataAreEqual : negated conditional → SURVIVED +2. dataAreEqual : negated conditional → SURVIVED +3. dataAreEqual : changed conditional boundary → KILLED +4. dataAreEqual : Changed increment from 1 to -1 → KILLED + + + |
+ for (int i = 0; i < getDataSize() && areEqual; i++) |
+ +158 + | ++ + + + + | + { |
+ +159 + | +
+
+1
+
+1. dataAreEqual : negated conditional → KILLED + + + |
+ if (! (getData(i).equals(otherData.get(i)))) |
+ +160 + | ++ + + + + | + { |
+ +161 + | ++ + + + + | + areEqual = false; |
+ +162 + | ++ + + + + | + } |
+ +163 + | ++ + + + + | + } |
+ +164 + | ++ + + + + | +|
+ +165 + | ++ + + + + | + MyLogger.getLogger().exiting(getClass().getName(), methodName); |
+ +166 + | +
+
+1
+
+1. dataAreEqual : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(areEqual); |
+ +167 + | ++ + + + + | + } |
+ +168 + | ++ + + + + | +|
+ +169 + | ++ + + + + | + // ********************************************************************** |
+ +170 + | ++ + + + + | + // ******** attributes |
+ +171 + | ++ + + + + | +|
+ +172 + | ++ + + + + | + // ********************************************************************** |
+ +173 + | ++ + + + + | + public String getFileName() |
+ +174 + | ++ + + + + | + { |
+ +175 + | +
+
+1
+
+1. getFileName : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::getFileName to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(FileName); |
+ +176 + | ++ + + + + | + } |
+ +177 + | ++ + + + + | +|
+ +178 + | ++ + + + + | + // ********************************************************************** |
+ +179 + | ++ + + + + | + public int getDataSize() |
+ +180 + | ++ + + + + | + { |
+ +181 + | +
+
+1
+
+1. getDataSize : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED + + + |
+ return(MyData.size()); |
+ +182 + | ++ + + + + | + } |
+ +183 + | ++ + + + + | +|
+ +184 + | ++ + + + + | + // ********************************************************************** |
+ +185 + | ++ + + + + | + public String getData(int index) |
+ +186 + | ++ + + + + | + { |
+ +187 + | +
+
+1
+
+1. getData : mutated return of Object value for eu/stamp_project/examples/dnoo/dnooStorage/MyStorage::getData to ( if (x != null) null else throw new RuntimeException ) → KILLED + + + |
+ return(MyData.get(index)); |
+ +188 + | ++ + + + + | + } |
+ +189 + | ++ + + + + | +|
+ +190 + | ++ + + + + | + // ********************************************************************** |
+ +191 + | ++ + + + + | + public void addData(String aData) |
+ +192 + | ++ + + + + | + { |
+ +193 + | ++ + + + + | + MyLogger.getLogger().finest("IN : DataSize = " + Integer.toString(getDataSize()) |
+ +194 + | ++ + + + + | + + " - aData = " + aData); |
+ +195 + | ++ + + + + | +|
+ +196 + | ++ + + + + | + MyData.add(aData); |
+ +197 + | ++ + + + + | +|
+ +198 + | ++ + + + + | + MyLogger.getLogger().finest("OUT: DataSize = " + Integer.toString(getDataSize())); |
+ +199 + | ++ + + + + | + } |
+ +200 + | ++ + + + + | +|
+ +201 + | ++ + + + + | + // ********************************************************************** |
+ +202 + | ++ + + + + | + public void delData(String aData) |
+ +203 + | ++ + + + + | + { |
+ +204 + | ++ + + + + | + MyLogger.getLogger().finest("IN : DataSize = " + Integer.toString(getDataSize())); |
+ +205 + | ++ + + + + | +|
+ +206 + | ++ + + + + | + boolean found = false; |
+ +207 + | ++ + + + + | +|
+ +208 + | +
+
+4
+
+1. delData : changed conditional boundary → NO_COVERAGE +2. delData : Changed increment from 1 to -1 → NO_COVERAGE +3. delData : negated conditional → NO_COVERAGE +4. delData : negated conditional → NO_COVERAGE + + + |
+ for (int i = 0; i < getDataSize() && ! found; i++) |
+ +209 + | ++ + + + + | + { |
+ +210 + | +
+
+1
+
+1. delData : negated conditional → NO_COVERAGE + + + |
+ if (getData(i).equals(aData)) |
+ +211 + | ++ + + + + | + { |
+ +212 + | ++ + + + + | + MyData.remove(i); |
+ +213 + | ++ + + + + | + found = true; |
+ +214 + | ++ + + + + | + } |
+ +215 + | ++ + + + + | + } |
+ +216 + | ++ + + + + | +|
+ +217 + | ++ + + + + | + MyLogger.getLogger().finest("OUT: DataSize = " + Integer.toString(getDataSize()) |
+ +218 + | ++ + + + + | + + " - found = " + Boolean.toString(found)); |
+ +219 + | ++ + + + + | + } |
+ +220 + | ++ + + + + | +|
+ +221 + | ++ + + + + | + // ********************************************************************** |
+ +222 + | ++ + + + + | + // private |
+ +223 + | ++ + + + + | + // ********************************************************************** |
+ +224 + | ++ + + + + | + // ******** attributes |
+ +225 + | ++ + + + + | + private String FileName; |
+ +226 + | ++ + + + + | + private ArrayList<String> MyData; |
+ +227 + | ++ + + + + | +} |
Mutations | ||
31 | ++ |
+
+
+
+ 1.1 |
+
77 | ++ |
+
+
+
+ 1.1 |
+
79 | ++ |
+
+
+
+ 1.1 |
+
84 | ++ |
+
+
+
+ 1.1 |
+
89 | ++ |
+
+
+
+ 1.1 |
+
91 | ++ |
+
+
+
+ 1.1 |
+
93 | ++ |
+
+
+
+ 1.1 |
+
95 | ++ |
+
+
+
+ 1.1 |
+
100 | ++ |
+
+
+
+ 1.1 |
+
115 | ++ |
+
+
+
+ 1.1 2.2 |
+
117 | ++ |
+
+
+
+ 1.1 |
+
119 | ++ |
+
+
+
+ 1.1 |
+
123 | ++ |
+
+
+
+ 1.1 |
+
135 | ++ |
+
+
+
+ 1.1 |
+
137 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
139 | ++ |
+
+
+
+ 1.1 |
+
146 | ++ |
+
+
+
+ 1.1 |
+
155 | ++ |
+
+
+
+ 1.1 |
+
157 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
159 | ++ |
+
+
+
+ 1.1 |
+
166 | ++ |
+
+
+
+ 1.1 |
+
175 | ++ |
+
+
+
+ 1.1 |
+
181 | ++ |
+
+
+
+ 1.1 |
+
187 | ++ |
+
+
+
+ 1.1 |
+
208 | ++ |
+
+
+
+ 1.1 2.2 3.3 4.4 |
+
210 | ++ |
+
+
+
+ 1.1 |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
1 | +80% | +50% | +
Name | +Line Coverage | +Mutation Coverage | +
---|---|---|
MyStorage.java | +80% |
+ 50% |
+
Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|
2 | +74% | +62% | +
Name | +Number of Classes | +Line Coverage | +Mutation Coverage | +
---|---|---|---|
eu.stamp_project.examples.dnoo.dnooLogs | +1 | +67% |
+ 77% |
+
eu.stamp_project.examples.dnoo.dnooStorage | +1 | +80% |
+ 50% |
+