[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