Report when no contracts to compile

updates
This commit is contained in:
andy53
2022-12-19 13:47:03 +01:00
committed by Nikola Matic
parent 73fcf69188
commit 3bc535e1a1
6 changed files with 91 additions and 3 deletions
+44 -1
View File
@@ -25,6 +25,7 @@
#include <test/Common.h>
#include <test/libsolidity/util/SoltestErrors.h>
#include <liblangutil/SemVerHandler.h>
#include <test/FilesystemUtils.h>
#include <libsolutil/JSON.h>
@@ -44,6 +45,7 @@ using namespace std;
using namespace solidity::frontend;
using namespace solidity::test;
using namespace solidity::util;
using namespace solidity::langutil;
using PathSet = set<boost::filesystem::path>;
@@ -1006,10 +1008,14 @@ BOOST_AUTO_TEST_CASE(cli_include_paths)
canonicalWorkDir / "lib",
};
string const expectedStdoutContent = "Compiler run successful. No contracts to compile.\n";
OptionsReaderAndMessages result = runCLI(commandLine, "");
BOOST_TEST(result.stderrContent == "");
BOOST_TEST(result.stdoutContent == "");
if (SemVerVersion{string(VersionString)}.isPrerelease())
BOOST_TEST(result.stdoutContent == "");
else
BOOST_TEST(result.stdoutContent == expectedStdoutContent);
BOOST_REQUIRE(result.success);
BOOST_TEST(result.options == expectedOptions);
BOOST_TEST(result.reader.sourceUnits() == expectedSources);
@@ -1018,6 +1024,43 @@ BOOST_AUTO_TEST_CASE(cli_include_paths)
BOOST_TEST(result.reader.basePath() == expectedWorkDir / "base/");
}
BOOST_AUTO_TEST_CASE(cli_no_contracts_to_compile)
{
string const contractSource = R"(
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.0;
enum Status { test }
)";
string const expectedStdoutContent = "Compiler run successful. No contracts to compile.\n";
OptionsReaderAndMessages result = runCLI({"solc", "-"}, contractSource);
if (SemVerVersion{string(VersionString)}.isPrerelease())
BOOST_TEST(result.stdoutContent == "");
else
BOOST_TEST(result.stdoutContent == expectedStdoutContent);
BOOST_REQUIRE(result.success);
}
BOOST_AUTO_TEST_CASE(cli_no_output)
{
string const contractSource = R"(
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.0;
abstract contract A {
function B() public virtual returns(uint);
})";
string const expectedStdoutContent = "Compiler run successful. No output generated.\n";
OptionsReaderAndMessages result = runCLI({"solc", "-"}, contractSource);
if (SemVerVersion{string(VersionString)}.isPrerelease())
BOOST_TEST(result.stdoutContent == "");
else
BOOST_TEST(result.stdoutContent == expectedStdoutContent);
BOOST_REQUIRE(result.success);
}
BOOST_AUTO_TEST_CASE(standard_json_include_paths)
{
TemporaryDirectory tempDir({"base/", "include/", "lib/nested/"}, TEST_CASE_NAME);