Make --pretty-json work with Standard JSON output

This commit is contained in:
Ladislav Sladecek
2021-07-26 16:00:46 +02:00
committed by Kamil Śliwak
parent 7041b87c3b
commit 9bbeea58c8
24 changed files with 176 additions and 26 deletions
+9 -4
View File
@@ -138,6 +138,7 @@ BOOST_AUTO_TEST_CASE(cli_mode_options)
"--experimental-via-ir",
"--revert-strings=strip",
"--pretty-json",
"--json-indent=7",
"--no-color",
"--error-codes",
"--libraries="
@@ -173,6 +174,7 @@ BOOST_AUTO_TEST_CASE(cli_mode_options)
{"a", "b", "c/d"},
{"", "contract.sol", ""},
};
expectedOptions.input.addStdin = true;
expectedOptions.input.basePath = "/home/user/";
expectedOptions.input.allowedDirectories = {"/tmp", "/home", "project", "../contracts", "", "c", "/usr/lib"};
@@ -183,11 +185,11 @@ BOOST_AUTO_TEST_CASE(cli_mode_options)
expectedOptions.output.evmVersion = EVMVersion::spuriousDragon();
expectedOptions.output.experimentalViaIR = true;
expectedOptions.output.revertStrings = RevertStrings::Strip;
expectedOptions.formatting.json = JsonFormat{JsonFormat::Pretty, 7};
expectedOptions.linker.libraries = {
{"dir1/file1.sol:L", h160("1234567890123456789012345678901234567890")},
{"dir2/file2.sol:L", h160("1111122222333334444455555666667777788888")},
};
expectedOptions.formatting.prettyJson = true;
expectedOptions.formatting.coloredOutput = false;
expectedOptions.formatting.withErrorIds = true;
expectedOptions.compiler.outputs = {
@@ -269,6 +271,7 @@ BOOST_AUTO_TEST_CASE(assembly_mode_options)
"--experimental-via-ir", // Ignored in assembly mode
"--revert-strings=strip", // Accepted but has no effect in assembly mode
"--pretty-json",
"--json-indent=1",
"--no-color",
"--error-codes",
"--libraries="
@@ -313,13 +316,13 @@ BOOST_AUTO_TEST_CASE(assembly_mode_options)
expectedOptions.output.overwriteFiles = true;
expectedOptions.output.evmVersion = EVMVersion::spuriousDragon();
expectedOptions.output.revertStrings = RevertStrings::Strip;
expectedOptions.formatting.json = JsonFormat {JsonFormat::Pretty, 1};
expectedOptions.assembly.targetMachine = expectedMachine;
expectedOptions.assembly.inputLanguage = expectedLanguage;
expectedOptions.linker.libraries = {
{"dir1/file1.sol:L", h160("1234567890123456789012345678901234567890")},
{"dir2/file2.sol:L", h160("1111122222333334444455555666667777788888")},
};
expectedOptions.formatting.prettyJson = true;
expectedOptions.formatting.coloredOutput = false;
expectedOptions.formatting.withErrorIds = true;
expectedOptions.compiler.outputs = {
@@ -359,7 +362,8 @@ BOOST_AUTO_TEST_CASE(standard_json_mode_options)
"--evm-version=spuriousDragon", // Ignored in Standard JSON mode
"--experimental-via-ir", // Ignored in Standard JSON mode
"--revert-strings=strip", // Accepted but has no effect in Standard JSON mode
"--pretty-json", // Accepted but has no effect in Standard JSON mode
"--pretty-json",
"--json-indent=1",
"--no-color", // Accepted but has no effect in Standard JSON mode
"--error-codes", // Accepted but has no effect in Standard JSON mode
"--libraries=" // Ignored in Standard JSON mode
@@ -387,6 +391,7 @@ BOOST_AUTO_TEST_CASE(standard_json_mode_options)
};
CommandLineOptions expectedOptions;
expectedOptions.input.mode = InputMode::StandardJson;
expectedOptions.input.paths = {};
expectedOptions.input.standardJsonFile = "input.json";
@@ -395,7 +400,7 @@ BOOST_AUTO_TEST_CASE(standard_json_mode_options)
expectedOptions.output.dir = "/tmp/out";
expectedOptions.output.overwriteFiles = true;
expectedOptions.output.revertStrings = RevertStrings::Strip;
expectedOptions.formatting.prettyJson = true;
expectedOptions.formatting.json = JsonFormat {JsonFormat::Pretty, 1};
expectedOptions.formatting.coloredOutput = false;
expectedOptions.formatting.withErrorIds = true;
expectedOptions.compiler.outputs = {