From fbea8094c29208a9d7d54bfb40f0cdd4d0ee5af2 Mon Sep 17 00:00:00 2001 From: eggplantzzz Date: Tue, 11 Feb 2020 10:48:22 -0800 Subject: [PATCH 1/3] Ensure assertion contracts are compiled before initializing the decoder and filter out TestEvents from logs before printing --- packages/core/lib/testing/soliditytest.js | 4 +++- packages/core/lib/testing/testrunner.js | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/core/lib/testing/soliditytest.js b/packages/core/lib/testing/soliditytest.js index b29e7414440..5e4db34e728 100644 --- a/packages/core/lib/testing/soliditytest.js +++ b/packages/core/lib/testing/soliditytest.js @@ -19,8 +19,10 @@ const SolidityTest = { // Set up our runner's needs first. suite.beforeAll("prepare suite", async function() { - await runner.initialize.bind(runner)(); + // This compiles some native contracts (including the assertion library + // contracts) which need to be compiled before initializing the runner await self.compileNewAbstractInterface.bind(this)(runner); + await runner.initialize.bind(runner)(); await self.deployTestDependencies.bind( this )(abstraction, dependencyPaths, runner); diff --git a/packages/core/lib/testing/testrunner.js b/packages/core/lib/testing/testrunner.js index f089b57f8e8..65f6a7dfdf7 100644 --- a/packages/core/lib/testing/testrunner.js +++ b/packages/core/lib/testing/testrunner.js @@ -175,7 +175,11 @@ TestRunner.prototype.endTest = async function(mocha) { fromBlock: this.currentTestStartBlock.toNumber() }); - if (logs.length === 0) { + const filteredLogs = logs.filter(log => { + return !log.decodings.length || log.decodings[0].abi.name !== "TestEvent"; + }); + + if (filteredLogs.length === 0) { this.logger.log(" > No events were emitted"); return; } @@ -184,7 +188,7 @@ TestRunner.prototype.endTest = async function(mocha) { this.logger.log(" ---------------------------"); this.logger.log(""); - for (const log of logs) { + for (const log of filteredLogs) { switch (log.decodings.length) { case 0: this.logger.log(` Warning: Could not decode event!`); From 6e2c81dda879b946c6353299703afa1f9a59e52d Mon Sep 17 00:00:00 2001 From: eggplantzzz Date: Tue, 11 Feb 2020 13:01:32 -0800 Subject: [PATCH 2/3] Edit variable name to be more precise --- packages/core/lib/testing/testrunner.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/lib/testing/testrunner.js b/packages/core/lib/testing/testrunner.js index 65f6a7dfdf7..5fff61b4633 100644 --- a/packages/core/lib/testing/testrunner.js +++ b/packages/core/lib/testing/testrunner.js @@ -175,11 +175,11 @@ TestRunner.prototype.endTest = async function(mocha) { fromBlock: this.currentTestStartBlock.toNumber() }); - const filteredLogs = logs.filter(log => { + const userDefinedEventLogs = logs.filter(log => { return !log.decodings.length || log.decodings[0].abi.name !== "TestEvent"; }); - if (filteredLogs.length === 0) { + if (userDefinedEventLogs.length === 0) { this.logger.log(" > No events were emitted"); return; } @@ -188,7 +188,7 @@ TestRunner.prototype.endTest = async function(mocha) { this.logger.log(" ---------------------------"); this.logger.log(""); - for (const log of filteredLogs) { + for (const log of userDefinedEventLogs) { switch (log.decodings.length) { case 0: this.logger.log(` Warning: Could not decode event!`); From 78835a4227b8be68ec60a02684f0f53277b1d393 Mon Sep 17 00:00:00 2001 From: tyler Date: Fri, 14 Feb 2020 09:28:15 -0800 Subject: [PATCH 3/3] Update packages/core/lib/testing/testrunner.js Co-Authored-By: Harry Altman <35589221+haltman-at@users.noreply.github.com> --- packages/core/lib/testing/testrunner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/lib/testing/testrunner.js b/packages/core/lib/testing/testrunner.js index 5fff61b4633..6f7fe19a08a 100644 --- a/packages/core/lib/testing/testrunner.js +++ b/packages/core/lib/testing/testrunner.js @@ -176,7 +176,7 @@ TestRunner.prototype.endTest = async function(mocha) { }); const userDefinedEventLogs = logs.filter(log => { - return !log.decodings.length || log.decodings[0].abi.name !== "TestEvent"; + return log.decodings.every(decoding => decoding.abi.name !== "TestEvent") }); if (userDefinedEventLogs.length === 0) {