[gjs] coverage: Don't count literals as executable
- From: Philip Chimento <pchimento src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gjs] coverage: Don't count literals as executable
- Date: Wed, 27 Sep 2017 04:26:54 +0000 (UTC)
commit 1fba725b21206b9c4ebdf950a1c91dc1fccf8fe2
Author: Philip Chimento <philip chimento gmail com>
Date: Sat Sep 23 10:30:23 2017 -0700
coverage: Don't count literals as executable
The AST type used to detect this is "Literal", previously it was given as
"LiteralExpression" which caused literals on their own line to be counted
as executable, but never executed during code coverage measurements.
Requires some changes in the tests, since there was some test data
assuming that literals were executable.
https://bugzilla.gnome.org/show_bug.cgi?id=788166
installed-tests/js/testCoverage.js | 46 ++++++++++++++++++------------------
modules/_bootstrap/coverage.js | 2 +-
2 files changed, 24 insertions(+), 24 deletions(-)
---
diff --git a/installed-tests/js/testCoverage.js b/installed-tests/js/testCoverage.js
index a5f8d30..df3e032 100644
--- a/installed-tests/js/testCoverage.js
+++ b/installed-tests/js/testCoverage.js
@@ -57,23 +57,23 @@ describe('Coverage.expressionLinesForAST', function () {
],
'finds lines inside multiline function arguments': [
- "function f(a, b, c) {\n" +
- "}\n" +
- "f(1,\n" +
- " 2,\n" +
- " 3);\n",
+ `function f(a, b, c) {
+ }
+ f(1,
+ 2 + 3,
+ 3 + 4);`,
[1, 3, 4, 5],
],
'finds lines inside function argument that is an object': [
- "function f(o) {\n" +
- "}\n" +
- "let obj = {\n" +
- " Name: new f({ a: 1,\n" +
- " b: 2,\n" +
- " c: 3\n" +
- " })\n" +
- "}\n",
+ `function f(o) {
+ }
+ let obj = {
+ Name: new f({ a: 1,
+ b: 2 + 3,
+ c: 3 + 4,
+ })
+ } `,
[1, 3, 4, 5, 6],
],
@@ -154,10 +154,10 @@ describe('Coverage.expressionLinesForAST', function () {
],
'finds lines for object property literals': [
- "var a = {\n" +
- " Name: 'foo',\n" +
- " Ex: 'bar'\n" +
- "};\n",
+ `var a = {
+ Name: 'foo' + 'bar',
+ Ex: 'bar' + 'foo',
+ }`,
[1, 2, 3],
],
@@ -190,12 +190,12 @@ describe('Coverage.expressionLinesForAST', function () {
],
'finds lines inside object-valued argument to throw statement': [
- "function f() {\n" +
- " throw {\n" +
- " a: 1,\n" +
- " b: 2\n" +
- " }\n" +
- "}\n",
+ `function f() {
+ throw {
+ a: 1 + 2,
+ b: 2 + 3,
+ }
+ }`,
[2, 3, 4],
],
};
diff --git a/modules/_bootstrap/coverage.js b/modules/_bootstrap/coverage.js
index fea755d..c8c5499 100644
--- a/modules/_bootstrap/coverage.js
+++ b/modules/_bootstrap/coverage.js
@@ -354,7 +354,7 @@ function expressionLinesForNode(statement) {
/* These expressions aren't executable on their own */
switch (statement.type) {
case 'FunctionDeclaration':
- case 'LiteralExpression':
+ case 'Literal':
break;
/* Perplexingly, an empty block statement is actually executable,
* push it if it is */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]