Merge pull request #4703 from ethereum/solc-fix-double-quoting-path-names

solc: Fixes double-quoting path names on stderr.
This commit is contained in:
chriseth 2018-08-07 21:46:00 +02:00 committed by GitHub
commit 8e93b729a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 54 additions and 4 deletions

View File

@ -402,11 +402,11 @@ bool CommandLineInterface::readInputFilesAndConfigureRemappings()
{
if (!ignoreMissing)
{
cerr << "\"" << infile << "\" is not found" << endl;
cerr << infile << " is not found." << endl;
return false;
}
else
cerr << "\"" << infile << "\" is not found. Skipping." << endl;
cerr << infile << " is not found. Skipping." << endl;
continue;
}
@ -415,11 +415,11 @@ bool CommandLineInterface::readInputFilesAndConfigureRemappings()
{
if (!ignoreMissing)
{
cerr << "\"" << infile << "\" is not a valid file" << endl;
cerr << infile << " is not a valid file." << endl;
return false;
}
else
cerr << "\"" << infile << "\" is not a valid file. Skipping." << endl;
cerr << infile << " is not a valid file. Skipping." << endl;
continue;
}

View File

@ -94,6 +94,56 @@ printTask "Testing unknown options..."
fi
)
# General helper function for testing SOLC behaviour, based on file name, compile opts, exit code, stdout and stderr.
# An failure is expected.
test_solc_file_input_failures() {
local filename="${1}"
local solc_args="${2}"
local stdout_expected="${3}"
local stderr_expected="${4}"
local stdout_path=`mktemp`
local stderr_path=`mktemp`
set +e
"$SOLC" "${filename}" ${solc_args} 1>$stdout_path 2>$stderr_path
exitCode=$?
set -e
if [[ $exitCode -eq 0 ]]; then
printError "Incorrect exit code. Expected failure (non-zero) but got success (0)."
rm -f $stdout_path $stderr_path
exit 1
fi
if [[ "$(cat $stdout_path)" != "${stdout_expected}" ]]; then
printError "Incorrect output on stderr received. Expected:"
echo -e "${stdout_expected}"
printError "But got:"
cat $stdout_path
rm -f $stdout_path $stderr_path
exit 1
fi
if [[ "$(cat $stderr_path)" != "${stderr_expected}" ]]; then
printError "Incorrect output on stderr received. Expected:"
echo -e "${stderr_expected}"
printError "But got:"
cat $stderr_path
rm -f $stdout_path $stderr_path
exit 1
fi
rm -f $stdout_path $stderr_path
}
printTask "Testing passing files that are not found..."
test_solc_file_input_failures "file_not_found.sol" "" "" "\"file_not_found.sol\" is not found."
printTask "Testing passing files that are not files..."
test_solc_file_input_failures "." "" "" "\".\" is not a valid file."
printTask "Compiling various other contracts and libraries..."
(
cd "$REPO_ROOT"/test/compilationTests/