hardhat 3.1.2 → 3.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/src/internal/builtin-plugins/coverage/coverage-manager.d.ts +14 -14
  3. package/dist/src/internal/builtin-plugins/coverage/coverage-manager.d.ts.map +1 -1
  4. package/dist/src/internal/builtin-plugins/coverage/coverage-manager.js +66 -110
  5. package/dist/src/internal/builtin-plugins/coverage/coverage-manager.js.map +1 -1
  6. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.d.ts.map +1 -1
  7. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js +13 -6
  8. package/dist/src/internal/builtin-plugins/coverage/hook-handlers/solidity.js.map +1 -1
  9. package/dist/src/internal/builtin-plugins/coverage/process-coverage.d.ts +21 -0
  10. package/dist/src/internal/builtin-plugins/coverage/process-coverage.d.ts.map +1 -0
  11. package/dist/src/internal/builtin-plugins/coverage/process-coverage.js +291 -0
  12. package/dist/src/internal/builtin-plugins/coverage/process-coverage.js.map +1 -0
  13. package/dist/src/internal/builtin-plugins/coverage/reports/html.d.ts +3 -0
  14. package/dist/src/internal/builtin-plugins/coverage/reports/html.d.ts.map +1 -0
  15. package/dist/src/internal/builtin-plugins/coverage/reports/html.js +37 -0
  16. package/dist/src/internal/builtin-plugins/coverage/reports/html.js.map +1 -0
  17. package/dist/src/internal/builtin-plugins/coverage/types.d.ts +9 -3
  18. package/dist/src/internal/builtin-plugins/coverage/types.d.ts.map +1 -1
  19. package/dist/src/internal/builtin-plugins/network-manager/config-resolution.js +1 -1
  20. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.d.ts +1 -1
  21. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.d.ts.map +1 -1
  22. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.js +26 -25
  23. package/dist/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.js.map +1 -1
  24. package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.d.ts.map +1 -1
  25. package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.js +3 -0
  26. package/dist/src/internal/builtin-plugins/solidity/build-system/solc-info.js.map +1 -1
  27. package/dist/src/internal/builtin-plugins/test/task-action.d.ts.map +1 -1
  28. package/dist/src/internal/builtin-plugins/test/task-action.js +53 -53
  29. package/dist/src/internal/builtin-plugins/test/task-action.js.map +1 -1
  30. package/package.json +3 -2
  31. package/src/internal/builtin-plugins/coverage/coverage-manager.ts +121 -176
  32. package/src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts +19 -8
  33. package/src/internal/builtin-plugins/coverage/process-coverage.ts +442 -0
  34. package/src/internal/builtin-plugins/coverage/reports/html.ts +56 -0
  35. package/src/internal/builtin-plugins/coverage/types.ts +8 -3
  36. package/src/internal/builtin-plugins/network-manager/config-resolution.ts +1 -1
  37. package/src/internal/builtin-plugins/solidity/build-system/compiler/downloader.ts +40 -26
  38. package/src/internal/builtin-plugins/solidity/build-system/solc-info.ts +3 -0
  39. package/src/internal/builtin-plugins/test/task-action.ts +63 -66
  40. package/templates/hardhat-3/01-node-test-runner-viem/package.json +1 -1
  41. package/templates/hardhat-3/02-mocha-ethers/package.json +4 -4
  42. package/templates/hardhat-3/03-minimal/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # hardhat
2
2
 
3
+ ## 3.1.4
4
+
5
+ ### Patch Changes
6
+
7
+ - d7c13fa: Fixes a bug in how code coverage for Solidity tests is calculated ([7767](https://github.com/NomicFoundation/hardhat/pull/7767)).
8
+ - b6a9d5a: Hardhat tries to use the latest Solidity version supported by Slang in case the a newer, unsupported version is selected ([7846](https://github.com/NomicFoundation/hardhat/pull/7846)).
9
+ - 268acbf: Added HTML coverage report for solidity tests ([7787](https://github.com/NomicFoundation/hardhat/pull/7787)).
10
+
11
+ ## 3.1.3
12
+
13
+ ### Patch Changes
14
+
15
+ - 12d7468: Add mocha results to test summary numbers ([#7791](https://github.com/NomicFoundation/hardhat/pull/7791))
16
+ - 25155b5: Add support for the official builds of `solc` for ARM64 Linux ([#7752](https://github.com/NomicFoundation/hardhat/issues/7752))
17
+ - 065df38: Bumped EDR version to [`0.12.0-next.22`](https://github.com/NomicFoundation/edr/releases/tag/%40nomicfoundation%2Fedr%400.12.0-next.22).
18
+ - NomicFoundation/edr@b5a7b75: Added an API that reports the latest supported Solidity version for source instrumentation
19
+ - 5abcee6: Use Osaka as the default EVM target for solc 0.8.31+ and increase the gas limit per EIP-7935. Thanks @Amxx! ([#7813](https://github.com/NomicFoundation/hardhat/pull/7813))
20
+
3
21
  ## 3.1.2
4
22
 
5
23
  ### Patch Changes
@@ -1,27 +1,27 @@
1
- import type { CoverageData, CoverageManager, CoverageMetadata, Tag } from "./types.js";
1
+ import type { CoverageData, CoverageManager, CoverageMetadata, Statement } from "./types.js";
2
2
  type Line = number;
3
- type Branch = [Line, Tag];
4
3
  /**
5
4
  * @private exposed for testing purposes only
6
5
  */
6
+ export interface FileReport {
7
+ lineExecutionCounts: Map<Line, number>;
8
+ executedStatementsCount: number;
9
+ unexecutedStatementsCount: number;
10
+ executedLinesCount: number;
11
+ unexecutedLines: Set<Line>;
12
+ }
7
13
  export interface Report {
8
- [relativePath: string]: {
9
- tagExecutionCounts: Map<Tag, number>;
10
- lineExecutionCounts: Map<Line, number>;
11
- branchExecutionCounts: Map<Branch, number>;
12
- executedTagsCount: number;
13
- executedLinesCount: number;
14
- executedBranchesCount: number;
15
- partiallyExecutedLines: Set<Line>;
16
- unexecutedLines: Set<Line>;
17
- };
14
+ [relativePath: string]: FileReport;
18
15
  }
16
+ type FilesMetadata = Map<string, // relative path
17
+ Map<string, // composite key
18
+ Statement>>;
19
19
  export declare class CoverageManagerImplementation implements CoverageManager {
20
20
  #private;
21
21
  /**
22
22
  * @private exposed for testing purposes only
23
23
  */
24
- metadata: CoverageMetadata;
24
+ filesMetadata: FilesMetadata;
25
25
  /**
26
26
  * @private exposed for testing purposes only
27
27
  */
@@ -41,7 +41,7 @@ export declare class CoverageManagerImplementation implements CoverageManager {
41
41
  /**
42
42
  * @private exposed for testing purposes only
43
43
  */
44
- getReport(): Report;
44
+ getReport(): Promise<Report>;
45
45
  /**
46
46
  * @private exposed for testing purposes only
47
47
  */
@@ -1 +1 @@
1
- {"version":3,"file":"coverage-manager.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/coverage-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAEhB,GAAG,EACJ,MAAM,YAAY,CAAC;AAsBpB,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,CAAC,YAAY,EAAE,MAAM,GAAG;QACtB,kBAAkB,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACrC,mBAAmB,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE3C,iBAAiB,EAAE,MAAM,CAAC;QAC1B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,qBAAqB,EAAE,MAAM,CAAC;QAE9B,sBAAsB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;KAC5B,CAAC;CACH;AAED,qBAAa,6BAA8B,YAAW,eAAe;;IACnE;;OAEG;IACI,QAAQ,EAAE,gBAAgB,CAAM;IACvC;;OAEG;IACI,IAAI,EAAE,YAAY,CAAM;gBAMnB,YAAY,EAAE,MAAM;IAUnB,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnC,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB7C,YAAY,IAAI,IAAI;IAIpB,aAAa,IAAI,IAAI;IAI5B;;OAEG;IACU,QAAQ,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAetD;;OAEG;IACI,SAAS,IAAI,MAAM;IA2I1B;;OAEG;IACI,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAsE/C;;OAEG;IACI,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAiCvD;;OAEG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI/C;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM;IA4D9C;;OAEG;IACI,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAmFpD"}
1
+ {"version":3,"file":"coverage-manager.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/coverage-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,SAAS,EACV,MAAM,YAAY,CAAC;AAyBpB,KAAK,IAAI,GAAG,MAAM,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,UAAU;IAOzB,mBAAmB,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEvC,uBAAuB,EAAE,MAAM,CAAC;IAChC,yBAAyB,EAAE,MAAM,CAAC;IAElC,kBAAkB,EAAE,MAAM,CAAC;IAE3B,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAAC;CACpC;AAED,KAAK,aAAa,GAAG,GAAG,CACtB,MAAM,EAAE,gBAAgB;AACxB,GAAG,CACD,MAAM,EAAE,gBAAgB;AACxB,SAAS,CACV,CACF,CAAC;AAEF,qBAAa,6BAA8B,YAAW,eAAe;;IACnE;;OAEG;IACI,aAAa,EAAE,aAAa,CAG/B;IAEJ;;OAEG;IACI,IAAI,EAAE,YAAY,CAAM;gBAMnB,YAAY,EAAE,MAAM;IAUnB,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBtD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnC,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB7C,YAAY,IAAI,IAAI;IAIpB,aAAa,IAAI,IAAI;IAI5B;;OAEG;IACU,QAAQ,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAetD;;OAEG;IACU,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IA2DzC;;OAEG;IACI,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAkE/C;;OAEG;IACI,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAiCvD;;OAEG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI/C;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM;IA4D9C;;OAEG;IACI,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CA8EpD"}
@@ -1,16 +1,17 @@
1
1
  import path from "node:path";
2
- import { assertHardhatInvariant } from "@nomicfoundation/hardhat-errors";
3
2
  import { divider, formatTable } from "@nomicfoundation/hardhat-utils/format";
4
- import { ensureDir, getAllFilesMatching, readJsonFile, remove, writeJsonFile, writeUtf8File, } from "@nomicfoundation/hardhat-utils/fs";
3
+ import { ensureDir, getAllFilesMatching, readJsonFile, readUtf8File, remove, writeJsonFile, writeUtf8File, } from "@nomicfoundation/hardhat-utils/fs";
5
4
  import chalk from "chalk";
6
5
  import debug from "debug";
6
+ import { getProcessedCoverageInfo } from "./process-coverage.js";
7
+ import { generateHtmlReport } from "./reports/html.js";
7
8
  const log = debug("hardhat:core:coverage:coverage-manager");
8
9
  const MAX_COLUMN_WIDTH = 80;
9
10
  export class CoverageManagerImplementation {
10
11
  /**
11
12
  * @private exposed for testing purposes only
12
13
  */
13
- metadata = [];
14
+ filesMetadata = new Map();
14
15
  /**
15
16
  * @private exposed for testing purposes only
16
17
  */
@@ -32,12 +33,19 @@ export class CoverageManagerImplementation {
32
33
  log("Added data", JSON.stringify(data, null, 2));
33
34
  }
34
35
  async addMetadata(metadata) {
35
- // NOTE: The received metadata might contain duplicates. We deduplicate it
36
- // when we generate the report.
37
36
  for (const entry of metadata) {
38
- this.metadata.push(entry);
37
+ log("Added metadata", JSON.stringify(metadata, null, 2));
38
+ let fileStatements = this.filesMetadata.get(entry.relativePath);
39
+ if (fileStatements === undefined) {
40
+ fileStatements = new Map();
41
+ this.filesMetadata.set(entry.relativePath, fileStatements);
42
+ }
43
+ const key = `${entry.relativePath}-${entry.tag}-${entry.startUtf16}-${entry.endUtf16}`;
44
+ const existingData = fileStatements.get(key);
45
+ if (existingData === undefined) {
46
+ fileStatements.set(key, entry);
47
+ }
39
48
  }
40
- log("Added metadata", JSON.stringify(metadata, null, 2));
41
49
  }
42
50
  async clearData(id) {
43
51
  const dataPath = await this.#getDataPath(id);
@@ -57,12 +65,15 @@ export class CoverageManagerImplementation {
57
65
  return;
58
66
  }
59
67
  await this.loadData(...ids);
60
- const report = this.getReport();
68
+ const report = await this.getReport();
61
69
  const lcovReport = this.formatLcovReport(report);
62
70
  const markdownReport = this.formatMarkdownReport(report);
63
71
  const lcovReportPath = path.join(this.#coveragePath, "lcov.info");
64
72
  await writeUtf8File(lcovReportPath, lcovReport);
65
73
  log(`Saved lcov report to ${lcovReportPath}`);
74
+ const htmlReportPath = path.join(this.#coveragePath, "html");
75
+ await generateHtmlReport(report, htmlReportPath);
76
+ console.log(`Saved html report to ${htmlReportPath}`);
66
77
  console.log(markdownReport);
67
78
  console.log();
68
79
  log("Printed markdown report");
@@ -93,92 +104,42 @@ export class CoverageManagerImplementation {
93
104
  /**
94
105
  * @private exposed for testing purposes only
95
106
  */
96
- getReport() {
97
- const report = {};
98
- const relativePaths = this.metadata.map(({ relativePath }) => relativePath);
99
- const allStatements = this.metadata;
100
- // NOTE: We preserve only the last statement per tag in the statementsByTag map.
101
- const statementsByTag = new Map();
102
- for (const statement of allStatements) {
103
- statementsByTag.set(statement.tag, statement);
104
- }
105
- const allExecutedTags = this.data;
106
- const allExecutedStatementsByRelativePath = new Map();
107
- for (const tag of allExecutedTags) {
108
- // NOTE: We should not encounter an executed tag we don't have metadata for.
109
- const statement = statementsByTag.get(tag);
110
- assertHardhatInvariant(statement !== undefined, "Expected a statement");
111
- const relativePath = statement.relativePath;
112
- const allExecutedStatements = allExecutedStatementsByRelativePath.get(relativePath) ?? [];
113
- allExecutedStatements.push(statement);
114
- allExecutedStatementsByRelativePath.set(relativePath, allExecutedStatements);
115
- }
116
- const uniqueExecutedTags = new Set(allExecutedTags);
117
- const uniqueUnexecutedTags = Array.from(statementsByTag.keys()).filter((tag) => !uniqueExecutedTags.has(tag));
118
- const uniqueUnexecutedStatementsByRelativePath = new Map();
119
- for (const tag of uniqueUnexecutedTags) {
120
- // NOTE: We cannot encounter an executed tag we don't have metadata for.
121
- const statement = statementsByTag.get(tag);
122
- assertHardhatInvariant(statement !== undefined, "Expected a statement");
123
- const relativePath = statement.relativePath;
124
- const unexecutedStatements = uniqueUnexecutedStatementsByRelativePath.get(relativePath) ?? [];
125
- unexecutedStatements.push(statement);
126
- uniqueUnexecutedStatementsByRelativePath.set(relativePath, unexecutedStatements);
127
- }
128
- for (const relativePath of relativePaths) {
129
- const allExecutedStatements = allExecutedStatementsByRelativePath.get(relativePath) ?? [];
130
- const uniqueUnexecutedStatements = uniqueUnexecutedStatementsByRelativePath.get(relativePath) ?? [];
131
- const tagExecutionCounts = new Map();
132
- for (const statement of allExecutedStatements) {
133
- const tagExecutionCount = tagExecutionCounts.get(statement.tag) ?? 0;
134
- tagExecutionCounts.set(statement.tag, tagExecutionCount + 1);
135
- }
136
- const lineExecutionCounts = new Map();
137
- const branchExecutionCounts = new Map();
138
- for (const [tag, executionCount] of tagExecutionCounts) {
139
- const statement = statementsByTag.get(tag);
140
- assertHardhatInvariant(statement !== undefined, "Expected a statement");
141
- for (let line = statement.startLine; line <= statement.endLine; line++) {
142
- const lineExecutionCount = lineExecutionCounts.get(line) ?? 0;
143
- lineExecutionCounts.set(line, lineExecutionCount + executionCount);
144
- const branchExecutionCount = branchExecutionCounts.get([line, tag]) ?? 0;
145
- branchExecutionCounts.set([line, tag], branchExecutionCount + executionCount);
146
- }
147
- }
148
- const executedTagsCount = tagExecutionCounts.size;
149
- const executedLinesCount = lineExecutionCounts.size;
150
- const executedBranchesCount = branchExecutionCounts.size;
151
- const partiallyExecutedLines = new Set();
152
- const unexecutedLines = new Set();
153
- for (const statement of uniqueUnexecutedStatements) {
154
- if (!tagExecutionCounts.has(statement.tag)) {
155
- tagExecutionCounts.set(statement.tag, 0);
107
+ async getReport() {
108
+ const allExecutedTags = new Set(this.data);
109
+ const reportPromises = Array.from(this.filesMetadata.entries()).map(async ([fileRelativePath, fileStatements]) => {
110
+ const statements = Array.from(fileStatements.values());
111
+ const fileContent = await readUtf8File(path.join(process.cwd(), fileRelativePath));
112
+ const tags = new Set();
113
+ let executedStatementsCount = 0;
114
+ let unexecutedStatementsCount = 0;
115
+ for (const { tag } of statements) {
116
+ if (allExecutedTags.has(tag)) {
117
+ tags.add(tag);
118
+ executedStatementsCount++;
156
119
  }
157
- for (let line = statement.startLine; line <= statement.endLine; line++) {
158
- if (!lineExecutionCounts.has(line)) {
159
- lineExecutionCounts.set(line, 0);
160
- unexecutedLines.add(line);
161
- }
162
- else {
163
- partiallyExecutedLines.add(line);
164
- }
165
- if (!branchExecutionCounts.has([line, statement.tag])) {
166
- branchExecutionCounts.set([line, statement.tag], 0);
167
- }
120
+ else {
121
+ unexecutedStatementsCount++;
168
122
  }
169
123
  }
170
- report[relativePath] = {
171
- tagExecutionCounts,
172
- lineExecutionCounts,
173
- branchExecutionCounts,
174
- executedTagsCount,
175
- executedLinesCount,
176
- executedBranchesCount,
177
- partiallyExecutedLines,
178
- unexecutedLines,
124
+ const coverageInfo = getProcessedCoverageInfo(fileContent, statements, tags);
125
+ const lineExecutionCounts = new Map();
126
+ coverageInfo.lines.executed.forEach((_, line) => lineExecutionCounts.set(line, 1));
127
+ coverageInfo.lines.unexecuted.forEach((_, line) => lineExecutionCounts.set(line, 0));
128
+ const executedLinesCount = coverageInfo.lines.executed.size;
129
+ const unexecutedLines = new Set(coverageInfo.lines.unexecuted.keys());
130
+ return {
131
+ path: fileRelativePath,
132
+ data: {
133
+ lineExecutionCounts,
134
+ executedStatementsCount,
135
+ unexecutedStatementsCount,
136
+ executedLinesCount,
137
+ unexecutedLines,
138
+ },
179
139
  };
180
- }
181
- return report;
140
+ });
141
+ const results = await Promise.all(reportPromises);
142
+ return Object.fromEntries(results.map((r) => [r.path, r.data]));
182
143
  }
183
144
  /**
184
145
  * @private exposed for testing purposes only
@@ -196,7 +157,7 @@ export class CoverageManagerImplementation {
196
157
  // For each source file referenced in the .gcda file, there is a section
197
158
  // containing filename and coverage data:
198
159
  // SF:<path to the source file>
199
- for (const [relativePath, { branchExecutionCounts, executedBranchesCount, lineExecutionCounts, executedLinesCount, },] of Object.entries(report)) {
160
+ for (const [relativePath, { lineExecutionCounts, executedLinesCount },] of Object.entries(report)) {
200
161
  lcov += `SF:${relativePath}\n`;
201
162
  // NOTE: We report statement coverage as branches to get partial line coverage
202
163
  // data in tools parsing the lcov files. This is because the lcov format
@@ -207,11 +168,12 @@ export class CoverageManagerImplementation {
207
168
  // Branch coverage summaries are stored in two lines:
208
169
  // BRF:<number of branches found>
209
170
  // BRH:<number of branches hit>
210
- for (const [[line, tag], executionCount] of branchExecutionCounts) {
211
- lcov += `BRDA:${line},0,${tag},${executionCount === 0 ? "-" : executionCount}\n`;
212
- }
213
- lcov += `BRH:${executedBranchesCount}\n`;
214
- lcov += `BRF:${branchExecutionCounts.size}\n`;
171
+ // TODO: currently EDR does not provide branch coverage information.
172
+ // for (const [[line, tag], executionCount] of branchExecutionCounts) {
173
+ // lcov += `BRDA:${line},0,${tag},${executionCount === 0 ? "-" : executionCount}\n`;
174
+ // }
175
+ // lcov += `BRH:${executedBranchesCount}\n`;
176
+ // lcov += `BRF:${branchExecutionCounts.size}\n`;
215
177
  // Then there is a list of execution counts for each instrumented line
216
178
  // (i.e. a line which resulted in executable code):
217
179
  // DA:<line number>,<execution count>[,<checksum>]
@@ -329,30 +291,25 @@ export class CoverageManagerImplementation {
329
291
  const rows = [];
330
292
  rows.push([chalk.bold("Coverage Report")]);
331
293
  rows.push(divider);
332
- rows.push([
333
- "File Path",
334
- "Line %",
335
- "Statement %",
336
- "Uncovered Lines",
337
- "Partially Covered Lines",
338
- ].map((s) => chalk.yellow(s)));
339
- const bodyRows = Object.entries(report).map(([relativePath, { tagExecutionCounts, lineExecutionCounts, executedTagsCount, executedLinesCount, unexecutedLines, partiallyExecutedLines, },]) => {
294
+ rows.push(["File Path", "Line %", "Statement %", "Uncovered Lines"].map((s) => chalk.yellow(s)));
295
+ const bodyRows = Object.entries(report).map(([relativePath, { executedStatementsCount, unexecutedStatementsCount, lineExecutionCounts, executedLinesCount, unexecutedLines, },]) => {
340
296
  const lineCoverage = lineExecutionCounts.size === 0
341
297
  ? 0
342
298
  : (executedLinesCount * 100.0) / lineExecutionCounts.size;
343
- const statementCoverage = tagExecutionCounts.size === 0
299
+ const statementCoverage = executedStatementsCount === 0
344
300
  ? 0
345
- : (executedTagsCount * 100.0) / tagExecutionCounts.size;
301
+ : (executedStatementsCount * 100.0) /
302
+ (executedStatementsCount + unexecutedStatementsCount);
346
303
  totalExecutedLines += executedLinesCount;
347
304
  totalExecutableLines += lineExecutionCounts.size;
348
- totalExecutedStatements += executedTagsCount;
349
- totalExecutableStatements += tagExecutionCounts.size;
305
+ totalExecutedStatements += executedStatementsCount;
306
+ totalExecutableStatements +=
307
+ executedStatementsCount + unexecutedStatementsCount;
350
308
  const row = [
351
309
  this.formatRelativePath(relativePath),
352
310
  this.formatCoverage(lineCoverage),
353
311
  this.formatCoverage(statementCoverage),
354
312
  this.formatLines(unexecutedLines),
355
- this.formatLines(partiallyExecutedLines),
356
313
  ];
357
314
  return row;
358
315
  });
@@ -369,7 +326,6 @@ export class CoverageManagerImplementation {
369
326
  this.formatCoverage(totalLineCoverage),
370
327
  this.formatCoverage(totalStatementCoverage),
371
328
  "",
372
- "",
373
329
  ]);
374
330
  return formatTable(rows);
375
331
  }
@@ -1 +1 @@
1
- {"version":3,"file":"coverage-manager.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/coverage-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coverage-manager.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/coverage-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"solidity.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;8BAqBvC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAAxD,wBAiHG"}
1
+ {"version":3,"file":"solidity.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;8BA0BvC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAAxD,wBAuHG"}
@@ -1,9 +1,11 @@
1
1
  import path from "node:path";
2
- import { addStatementCoverageInstrumentation } from "@nomicfoundation/edr";
2
+ import { addStatementCoverageInstrumentation, latestSupportedSolidityVersion, } from "@nomicfoundation/edr";
3
3
  import { assertHardhatInvariant, HardhatError, } from "@nomicfoundation/hardhat-errors";
4
4
  import { ensureError } from "@nomicfoundation/hardhat-utils/error";
5
5
  import { readUtf8File } from "@nomicfoundation/hardhat-utils/fs";
6
+ import { findClosestPackageRoot } from "@nomicfoundation/hardhat-utils/package";
6
7
  import debug from "debug";
8
+ import { satisfies } from "semver";
7
9
  import { CoverageManagerImplementation } from "../coverage-manager.js";
8
10
  const log = debug("hardhat:core:coverage:hook-handlers:solidity");
9
11
  const COVERAGE_LIBRARY_PATH = "__hardhat_coverage_library_a3e9cfe2-41b4-4a1f-ad9e-ac62dd82979e.sol";
@@ -14,6 +16,11 @@ export default async () => ({
14
16
  const isTestSource = (await context.solidity.getScope(fsPath)) === "tests";
15
17
  if (context.globalOptions.coverage && !isTestSource) {
16
18
  try {
19
+ const latestSupportedVersion = latestSupportedSolidityVersion();
20
+ if (!satisfies(solcVersion, `<=${latestSupportedVersion}`)) {
21
+ console.log(`Solidity version ${solcVersion} is not yet supported for coverage instrumentation. Hardhat will try the latest supported version ${latestSupportedVersion} instead.`);
22
+ solcVersion = latestSupportedVersion;
23
+ }
17
24
  const { source, metadata } = addStatementCoverageInstrumentation(fileContent, sourceName, solcVersion, COVERAGE_LIBRARY_PATH);
18
25
  // TODO: Remove this once EDR starts returning line information as part
19
26
  // of the metadata.
@@ -31,13 +38,11 @@ export default async () => ({
31
38
  case "statement":
32
39
  const relativePath = path.relative(context.config.paths.root, fsPath);
33
40
  const tag = Buffer.from(m.tag).toString("hex");
34
- const startLine = lineNumbers[m.startUtf16];
35
- const endLine = lineNumbers[m.endUtf16 - 1];
36
41
  coverageMetadata.push({
37
42
  relativePath,
38
43
  tag,
39
- startLine,
40
- endLine,
44
+ startUtf16: m.startUtf16,
45
+ endUtf16: m.endUtf16,
41
46
  });
42
47
  break;
43
48
  default:
@@ -79,7 +84,9 @@ export default async () => ({
79
84
  // NOTE: We add the coverage.sol straight into sources here. The alternative
80
85
  // would be to do it during the resolution phase. However, we decided this
81
86
  // is a simpler solution, at least for now.
82
- const content = await readUtf8File(path.join(import.meta.dirname, "../../../../../../coverage.sol"));
87
+ const packageRoot = await findClosestPackageRoot(import.meta.url);
88
+ const coverageSolPath = path.join(packageRoot, "coverage.sol");
89
+ const content = await readUtf8File(coverageSolPath);
83
90
  solcInput.sources[COVERAGE_LIBRARY_PATH] = { content };
84
91
  }
85
92
  return next(context, solcInput);
@@ -1 +1 @@
1
- {"version":3,"file":"solidity.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solidity.js","sourceRoot":"","sources":["../../../../../../src/internal/builtin-plugins/coverage/hook-handlers/solidity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { CoverageMetadata } from "./types.js";
2
+ /**
3
+ * Processes the raw EDR coverage information for a file and returns the executed and
4
+ * non-executed statements and lines.
5
+ *
6
+ * @param fileContent The original file content being analyzed
7
+ * @param metadata Coverage metadata received from EDR for this file
8
+ * @param hitTags The coverage tags recorded as executed during the test run
9
+ * for this specific file.
10
+ *
11
+ * @returns An object containing:
12
+ * - statements: the executed and not-executed statements
13
+ * - lines: the executed and not-executed line numbers
14
+ */
15
+ export declare function getProcessedCoverageInfo(fileContent: string, metadata: CoverageMetadata, hitTags: Set<string>): {
16
+ lines: {
17
+ executed: Map<number, string>;
18
+ unexecuted: Map<number, string>;
19
+ };
20
+ };
21
+ //# sourceMappingURL=process-coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-coverage.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/coverage/process-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AASpB;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GACnB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACjC,CAAC;CACH,CAwBA"}