From e8f2e4d64ce623daeb80510a41bf352acac44053 Mon Sep 17 00:00:00 2001 From: Daniel Kirchner Date: Fri, 10 Jan 2020 14:43:16 +0100 Subject: [PATCH 1/2] CLI workarounds for old compilers. --- test/cli.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/test/cli.js b/test/cli.js index fb0fbd67..3bc15420 100644 --- a/test/cli.js +++ b/test/cli.js @@ -1,4 +1,5 @@ const tape = require('tape'); +const semver = require('semver'); const spawn = require('tape-spawn'); const pkg = require('../package.json'); @@ -44,7 +45,11 @@ tape('CLI', function (t) { t.test('incorrect source source', function (st) { var spt = spawn(st, './solcjs --bin test/resources/fixtureIncorrectSource.sol'); - spt.stderr.match(/^test\/resources\/fixtureIncorrectSource.sol:1:1: SyntaxError: Invalid pragma "contract"/); + if (semver.lt(pkg.version, '0.4.16')) { + spt.stderr.match(/^test\/resources\/fixtureIncorrectSource.sol:1:1:.* Unknown pragma "contract"/); + } else { + spt.stderr.match(/^test\/resources\/fixtureIncorrectSource.sol:1:1: SyntaxError: Invalid pragma "contract"/); + } spt.end(); }); @@ -63,6 +68,8 @@ tape('CLI', function (t) { }); t.test('standard json', function (st) { + var pure = semver.lt(pkg.version, '0.4.17') ? '' : 'pure'; + var pragma = semver.lt(pkg.version, '0.4.0') ? '' : 'pragma solidity >=0.4.0; '; var input = { 'language': 'Solidity', 'settings': { @@ -74,7 +81,7 @@ tape('CLI', function (t) { }, 'sources': { 'Contract.sol': { - 'content': 'pragma solidity >=0.5.0; contract Contract { function f() pure public {} }' + 'content': pragma + 'contract Contract { function f() ' + pure + ' public {} }' } } }; From bb4b6eaf31c9aef82c5255956bca5db6e7187c2b Mon Sep 17 00:00:00 2001 From: Daniel Kirchner Date: Sat, 11 Jan 2020 00:23:03 +0100 Subject: [PATCH 2/2] Do not expect userdoc output using standard json for <= 0.4.6 --- test/cli.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/cli.js b/test/cli.js index 3bc15420..4804c408 100644 --- a/test/cli.js +++ b/test/cli.js @@ -92,7 +92,10 @@ tape('CLI', function (t) { spt.stdin.on('finish', function () { spt.stderr.empty(); spt.stdout.match(/Contract.sol/); - spt.stdout.match(/userdoc/); + if (semver.gt(pkg.version, '0.4.6')) { + // TODO: is it legit to skip this for <=0.4.6? + spt.stdout.match(/userdoc/); + } spt.succeeds(); spt.end(); });