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 | ||||
|             stdin="" | ||||
|             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