mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Provide a better error reporting for failed cmdline tests.
This commit is contained in:
parent
ae519c1278
commit
dea201800f
@ -25,20 +25,24 @@ OLDARGS=(--optimize --combined-json "abi,asm,ast,bin,bin-runtime,devdoc,interfac
|
|||||||
function compileFull()
|
function compileFull()
|
||||||
{
|
{
|
||||||
local expected_exit_code=0
|
local expected_exit_code=0
|
||||||
local expect_output=0
|
local expect_output='none'
|
||||||
if [[ $1 = '-e' ]]; then
|
|
||||||
|
case "$1" in
|
||||||
|
'--expect-errors')
|
||||||
expected_exit_code=1
|
expected_exit_code=1
|
||||||
expect_output=1
|
expect_output='warnings-or-errors'
|
||||||
shift;
|
shift;
|
||||||
fi
|
;;
|
||||||
if [[ $1 = '-w' ]]; then
|
'--expect-warnings')
|
||||||
expect_output=1
|
expect_output='warnings-or-errors'
|
||||||
shift;
|
shift;
|
||||||
fi
|
;;
|
||||||
if [[ $1 = '-o' ]]; then
|
'--ignore-warnings')
|
||||||
expect_output=2
|
expect_output='any'
|
||||||
shift;
|
shift;
|
||||||
fi
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
local args=("${FULLARGS[@]}")
|
local args=("${FULLARGS[@]}")
|
||||||
if [[ $1 = '-v' ]]; then
|
if [[ $1 = '-v' ]]; then
|
||||||
if (echo "$2" | grep -Po '(?<=0.4.)\d+' >/dev/null); then
|
if (echo "$2" | grep -Po '(?<=0.4.)\d+' >/dev/null); then
|
||||||
@ -71,20 +75,31 @@ function compileFull()
|
|||||||
set -e
|
set -e
|
||||||
rm "$stderr_path"
|
rm "$stderr_path"
|
||||||
|
|
||||||
if [[ \
|
if [[
|
||||||
("$exit_code" -ne "$expected_exit_code" || \
|
$exit_code != "$expected_exit_code" ||
|
||||||
( $expect_output -eq 0 && -n "$errors" ) || \
|
$errors != "" && $expect_output == 'none' ||
|
||||||
( $expect_output -ne 0 && $expected_exit_code -eq 0 && $expect_output -ne 2 && -z "$errors" ))
|
$errors == "" && $expect_output != 'none' && $expect_output != 'any' && $expected_exit_code == 0
|
||||||
]]
|
]]
|
||||||
then
|
then
|
||||||
printError "Unexpected compilation result:"
|
printError "TEST FAILURE"
|
||||||
printError "Expected failure: $expected_exit_code - Expected warning / error output: $expect_output"
|
printError "Actual exit code: $exit_code"
|
||||||
printError "Was failure: $exit_code"
|
printError "Expected exit code: $expected_exit_code"
|
||||||
|
printError "==== Output ===="
|
||||||
echo "$errors"
|
echo "$errors"
|
||||||
|
printError "== Output end =="
|
||||||
|
printError ""
|
||||||
|
case "$expect_output" in
|
||||||
|
'none') printError "No output was expected." ;;
|
||||||
|
'warnings-or-errors') printError "Expected warnings or errors." ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
printError ""
|
||||||
printError "While calling:"
|
printError "While calling:"
|
||||||
echo "\"$SOLC\" ${args[*]} ${files[*]}"
|
echo "\"$SOLC\" ${args[*]} ${files[*]}"
|
||||||
printError "Inside directory:"
|
printError "Inside directory:"
|
||||||
pwd
|
echo " $(pwd)"
|
||||||
|
printError "Input was:"
|
||||||
|
cat -- "${files[@]}"
|
||||||
false
|
false
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -156,11 +156,11 @@ SOLTMPDIR=$(mktemp -d)
|
|||||||
if ( ! grep -E "This will not compile after" "$f" >/dev/null && \
|
if ( ! grep -E "This will not compile after" "$f" >/dev/null && \
|
||||||
grep -E "This will not compile|import \"" "$f" >/dev/null )
|
grep -E "This will not compile|import \"" "$f" >/dev/null )
|
||||||
then
|
then
|
||||||
opts=(-e)
|
opts=(--expect-errors)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ignore warnings in this case
|
# ignore warnings in this case
|
||||||
opts+=(-o)
|
opts+=(--ignore-warnings)
|
||||||
|
|
||||||
findMinimalVersion "$f"
|
findMinimalVersion "$f"
|
||||||
if [[ "$version" == "" ]]
|
if [[ "$version" == "" ]]
|
||||||
|
@ -369,7 +369,7 @@ printTask "Compiling various other contracts and libraries..."
|
|||||||
do
|
do
|
||||||
echo " - $dir"
|
echo " - $dir"
|
||||||
cd "$dir"
|
cd "$dir"
|
||||||
compileFull -w ./*.sol ./*/*.sol
|
compileFull --expect-warnings ./*.sol ./*/*.sol
|
||||||
cd ..
|
cd ..
|
||||||
done
|
done
|
||||||
)
|
)
|
||||||
@ -397,15 +397,15 @@ SOLTMPDIR=$(mktemp -d)
|
|||||||
# are used (in the style guide)
|
# are used (in the style guide)
|
||||||
if grep -E "This will not compile|import \"" "$f" >/dev/null
|
if grep -E "This will not compile|import \"" "$f" >/dev/null
|
||||||
then
|
then
|
||||||
opts=(-e)
|
opts=(--expect-errors)
|
||||||
fi
|
fi
|
||||||
if grep "This will report a warning" "$f" >/dev/null
|
if grep "This will report a warning" "$f" >/dev/null
|
||||||
then
|
then
|
||||||
opts+=(-w)
|
opts+=(--expect-warnings)
|
||||||
fi
|
fi
|
||||||
if grep "This may report a warning" "$f" >/dev/null
|
if grep "This may report a warning" "$f" >/dev/null
|
||||||
then
|
then
|
||||||
opts+=(-o)
|
opts+=(--ignore-warnings)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Disable the version pragma in code snippets that only work with the current development version.
|
# Disable the version pragma in code snippets that only work with the current development version.
|
||||||
|
Loading…
Reference in New Issue
Block a user