Merge pull request #11235 from ethereum/cmdline-tests-for-stdin

Allow using stdin in cmdlineTests
This commit is contained in:
Kamil Śliwak 2021-04-19 16:21:43 +02:00 committed by GitHub
commit 2abd3073d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 23 additions and 10 deletions

View File

@ -131,9 +131,11 @@ function test_solc_behaviour()
if [[ "$exit_code_expected" = "" ]]; then exit_code_expected="0"; fi
local solc_command="$SOLC ${filename} ${solc_args[*]} <$solc_stdin"
[[ $filename == "" ]] || solc_args+=("$filename")
local solc_command="$SOLC ${solc_args[*]} <$solc_stdin"
set +e
"$SOLC" "${filename}" "${solc_args[@]}" <"$solc_stdin" >"$stdout_path" 2>"$stderr_path"
"$SOLC" "${solc_args[@]}" <"$solc_stdin" >"$stdout_path" 2>"$stderr_path"
exitCode=$?
set -e
@ -300,20 +302,24 @@ printTask "Running general commandline tests..."
# Use printf to get rid of the trailing newline
inputFile=$(printf "%s" "${inputFiles}")
# If no files specified, assume input.sol as the default
if [ -z "${inputFile}" ]; then
inputFile="${tdir}/input.sol"
fi
if [ "${inputFile}" = "${tdir}/input.json" ]
then
! [ -e "${tdir}/stdin" ] || { printError "Found a file called 'stdin' but redirecting standard input in JSON mode is not allowed."; exit 1; }
stdin="${inputFile}"
inputFile=""
stdout="$(cat "${tdir}/output.json" 2>/dev/null || true)"
stdoutExpectationFile="${tdir}/output.json"
command_args="--standard-json "$(cat "${tdir}/args" 2>/dev/null || true)
else
if [ -e "${tdir}/stdin" ]
then
stdin="${tdir}/stdin"
[ -f "${tdir}/stdin" ] || { printError "'stdin' is not a regular file."; exit 1; }
else
stdin=""
fi
stdout="$(cat "${tdir}/output" 2>/dev/null || true)"
stdoutExpectationFile="${tdir}/output"
command_args=$(cat "${tdir}/args" 2>/dev/null || true)

View File

@ -1 +1 @@
--standard-json
--standard-json input.sol

View File

@ -1 +1 @@
File not found: standard_file_not_found/input.sol
File not found: input.sol

View File

@ -0,0 +1 @@
-

View File

@ -0,0 +1,5 @@
Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.
--> <stdin>
Warning: Source file does not specify required compiler version!
--> <stdin>

View File

@ -0,0 +1 @@
contract C {}