mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #11235 from ethereum/cmdline-tests-for-stdin
Allow using stdin in cmdlineTests
This commit is contained in:
commit
2abd3073d4
@ -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)
|
||||
|
@ -1 +1 @@
|
||||
--standard-json
|
||||
--standard-json input.sol
|
||||
|
@ -1 +1 @@
|
||||
File not found: standard_file_not_found/input.sol
|
||||
File not found: input.sol
|
||||
|
1
test/cmdlineTests/stdin/args
Normal file
1
test/cmdlineTests/stdin/args
Normal file
@ -0,0 +1 @@
|
||||
-
|
5
test/cmdlineTests/stdin/err
Normal file
5
test/cmdlineTests/stdin/err
Normal 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>
|
1
test/cmdlineTests/stdin/stdin
Normal file
1
test/cmdlineTests/stdin/stdin
Normal file
@ -0,0 +1 @@
|
||||
contract C {}
|
Loading…
Reference in New Issue
Block a user