aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-08-08 03:46:00 +0800
committerGitHub <noreply@github.com>2018-08-08 03:46:00 +0800
commit8e93b729a4fb50d1d0f21b86a7434ed91ae8826a (patch)
tree0eddc8f6219bb809a197888d2f115f76fbde4754
parent4f9d72aa831edc7492da5e44a0805f41220d2d55 (diff)
parent39ffd7500e68e1603cead1a8473c1fb990fbab8f (diff)
downloaddexon-solidity-8e93b729a4fb50d1d0f21b86a7434ed91ae8826a.tar.gz
dexon-solidity-8e93b729a4fb50d1d0f21b86a7434ed91ae8826a.tar.zst
dexon-solidity-8e93b729a4fb50d1d0f21b86a7434ed91ae8826a.zip
Merge pull request #4703 from ethereum/solc-fix-double-quoting-path-names
solc: Fixes double-quoting path names on stderr.
-rw-r--r--solc/CommandLineInterface.cpp8
-rwxr-xr-xtest/cmdlineTests.sh50
2 files changed, 54 insertions, 4 deletions
diff --git a/solc/CommandLineInterface.cpp b/solc/CommandLineInterface.cpp
index 14793759..429bd637 100644
--- a/solc/CommandLineInterface.cpp
+++ b/solc/CommandLineInterface.cpp
@@ -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;
}
diff --git a/test/cmdlineTests.sh b/test/cmdlineTests.sh
index d0296515..7256386d 100755
--- a/test/cmdlineTests.sh
+++ b/test/cmdlineTests.sh
@@ -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/