mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #11641 from TerranCivilian/src-hash-CommonIO-fix
Fix newline error in solidity::util::readUntilEnd
This commit is contained in:
commit
a709216e37
@ -9,6 +9,7 @@ Compiler Features:
|
||||
|
||||
|
||||
Bugfixes:
|
||||
* Commandline Interface: Fix extra newline character being appended to sources passed through standard input, affecting their hashes.
|
||||
* SMTChecker: Fix internal error in magic type access (``block``, ``msg``, ``tx``).
|
||||
|
||||
|
||||
|
@ -74,16 +74,9 @@ string solidity::util::readFileAsString(boost::filesystem::path const& _file)
|
||||
|
||||
string solidity::util::readUntilEnd(istream& _stdin)
|
||||
{
|
||||
string ret;
|
||||
while (!_stdin.eof())
|
||||
{
|
||||
string tmp;
|
||||
// NOTE: this will read until EOF or NL
|
||||
getline(_stdin, tmp);
|
||||
ret.append(tmp);
|
||||
ret.append("\n");
|
||||
}
|
||||
return ret;
|
||||
ostringstream ss;
|
||||
ss << _stdin.rdbuf();
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
#if defined(_WIN32)
|
||||
|
@ -66,6 +66,30 @@ BOOST_AUTO_TEST_CASE(readFileAsString_symlink)
|
||||
BOOST_TEST(readFileAsString(tempDir.path() / "symlink.txt") == "ABC\ndef\n");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(readUntilEnd_no_ending_newline)
|
||||
{
|
||||
istringstream inputStream("ABC\ndef");
|
||||
BOOST_TEST(readUntilEnd(inputStream) == "ABC\ndef");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(readUntilEnd_with_ending_newline)
|
||||
{
|
||||
istringstream inputStream("ABC\ndef\n");
|
||||
BOOST_TEST(readUntilEnd(inputStream) == "ABC\ndef\n");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(readUntilEnd_cr_lf_newline)
|
||||
{
|
||||
istringstream inputStream("ABC\r\ndef");
|
||||
BOOST_TEST(readUntilEnd(inputStream) == "ABC\r\ndef");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(readUntilEnd_empty)
|
||||
{
|
||||
istringstream inputStream("");
|
||||
BOOST_TEST(readUntilEnd(inputStream) == "");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
} // namespace solidity::util::test
|
||||
|
@ -153,7 +153,7 @@ BOOST_AUTO_TEST_CASE(cli_input)
|
||||
{"a", "b", "c/d/e/"},
|
||||
};
|
||||
map<string, string> expectedSources = {
|
||||
{"<stdin>", "\n"},
|
||||
{"<stdin>", ""},
|
||||
{(expectedDir1 / "input1.sol").generic_string(), ""},
|
||||
{(expectedDir2 / "input2.sol").generic_string(), ""},
|
||||
};
|
||||
@ -854,7 +854,7 @@ BOOST_AUTO_TEST_CASE(cli_paths_to_source_unit_names_base_path_and_stdin)
|
||||
expectedOptions.modelChecker.initialize = true;
|
||||
|
||||
map<string, string> expectedSources = {
|
||||
{"<stdin>", "\n"},
|
||||
{"<stdin>", ""},
|
||||
};
|
||||
FileReader::FileSystemPathSet expectedAllowedDirectories = {};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user