[jscover] 06/69: Don't try to cover empty condition in loop (https://github.com/tntim96/JSCover/issues/137)

Sylvestre Ledru sylvestre at moszumanska.debian.org
Fri Aug 22 05:54:01 UTC 2014


This is an automated email from the git hooks/post-receive script.

sylvestre pushed a commit to branch master
in repository jscover.

commit 338118daebc4dfa02fea755bb8308ab8dc3a7074
Author: tntim96 <tntim96 at gmail.com>
Date:   Thu Jun 5 12:13:34 2014 +1000

    Don't try to cover empty condition in loop (https://github.com/tntim96/JSCover/issues/137)
---
 History.md                                                |  1 +
 src/main/java/jscover/instrument/BranchHelper.java        |  2 ++
 .../instrument/BranchInstrumentorIntegrationTest.java     | 15 +++++++++++++--
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/History.md b/History.md
index c274841..4c25944 100644
--- a/History.md
+++ b/History.md
@@ -1,6 +1,7 @@
 1.0.11 / 2014-??-??
 ==================
   * Improve error when 'Class-Path' not in manifest (https://github.com/tntim96/JSCover/pull/135)
+  * Don't try to cover empty condition in loop (https://github.com/tntim96/JSCover/issues/137)
 
 1.0.10 / 2014-06-03
 ==================
diff --git a/src/main/java/jscover/instrument/BranchHelper.java b/src/main/java/jscover/instrument/BranchHelper.java
index 26c929b..8d4375e 100644
--- a/src/main/java/jscover/instrument/BranchHelper.java
+++ b/src/main/java/jscover/instrument/BranchHelper.java
@@ -355,6 +355,8 @@ class BranchHelper {
     }
 
     boolean isBoolean(AstNode node) {
+        if (node instanceof EmptyExpression)
+            return false;
         switch (node.getType()) {
             case Token.EQ:
             case Token.NE:
diff --git a/src/test-integration/java/jscover/instrument/BranchInstrumentorIntegrationTest.java b/src/test-integration/java/jscover/instrument/BranchInstrumentorIntegrationTest.java
index b374afb..0f389ff 100644
--- a/src/test-integration/java/jscover/instrument/BranchInstrumentorIntegrationTest.java
+++ b/src/test-integration/java/jscover/instrument/BranchInstrumentorIntegrationTest.java
@@ -561,6 +561,14 @@ public class BranchInstrumentorIntegrationTest {
     }
 
     @Test
+    public void shouldNotWrapInfiniteForCondition() {
+        StringBuilder script = new StringBuilder("for (;;)\n");
+        script.append("  break;\n");
+        runScript(script.toString());
+        assertThat(getBranchData(scope, "test.js").size(), equalTo(0));
+    }
+
+    @Test
     public void shouldWrapForConditionVariable() {
         StringBuilder script = new StringBuilder("var x = true;\n");
         script.append("for (var i = 0; x; i++)\n");
@@ -854,9 +862,12 @@ public class BranchInstrumentorIntegrationTest {
     }
 
     private Scriptable getLineData(Scriptable scope, String uri, int lineNo) {
+        return (Scriptable) getBranchData(scope, uri).get(lineNo, getBranchData(scope, uri));
+    }
+
+    private NativeObject getBranchData(Scriptable scope, String uri) {
         Scriptable jscoverage = (Scriptable) scope.get("_$jscoverage", scope);
         Scriptable scriptData = (Scriptable) jscoverage.get(uri, jscoverage);
-        Scriptable branchData = (Scriptable) scriptData.get("branchData", scriptData);
-        return (Scriptable) branchData.get(lineNo, branchData);
+        return (NativeObject) scriptData.get("branchData", scriptData);
     }
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jscover.git



More information about the pkg-java-commits mailing list