mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
49 lines
1.5 KiB
Bash
Executable File
49 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eo pipefail
|
|
|
|
# shellcheck source=scripts/common.sh
|
|
source "${REPO_ROOT}/scripts/common.sh"
|
|
# shellcheck source=scripts/common_cmdline.sh
|
|
source "${REPO_ROOT}/scripts/common_cmdline.sh"
|
|
|
|
SOLTMPDIR=$(mktemp -d -t "cmdline-test-docs-examples-XXXXXX")
|
|
cd "$SOLTMPDIR"
|
|
|
|
"$REPO_ROOT"/scripts/isolate_tests.py "$REPO_ROOT"/docs/
|
|
|
|
developmentVersion=$("$REPO_ROOT/scripts/get_version.sh")
|
|
|
|
for f in *.yul *.sol
|
|
do
|
|
# The contributors guide uses syntax tests, but we cannot
|
|
# really handle them here.
|
|
if grep -E 'DeclarationError:|// ----' "$f" >/dev/null
|
|
then
|
|
continue
|
|
fi
|
|
echo " - Compiling example $f"
|
|
|
|
opts=()
|
|
# We expect errors if explicitly stated, or if imports
|
|
# are used (in the style guide)
|
|
if grep -E "// This will not compile" "$f" >/dev/null ||
|
|
sed -e 's|//.*||g' "$f" | grep -E "import \"" >/dev/null
|
|
then
|
|
opts=(--expect-errors)
|
|
fi
|
|
if grep "// This will report a warning" "$f" >/dev/null
|
|
then
|
|
opts+=(--expect-warnings)
|
|
fi
|
|
if grep "// This may report a warning" "$f" >/dev/null
|
|
then
|
|
opts+=(--ignore-warnings)
|
|
fi
|
|
|
|
# Disable the version pragma in code snippets that only work with the current development version.
|
|
# It's necessary because x.y.z won't match `^x.y.z` or `>=x.y.z` pragmas until it's officially released.
|
|
sed -i.bak -E -e 's/pragma[[:space:]]+solidity[[:space:]]*(\^|>=)[[:space:]]*'"$developmentVersion"'/pragma solidity >0.0.1/' "$f"
|
|
compileFull "${opts[@]}" "$SOLTMPDIR/$f"
|
|
done
|
|
rm -r "$SOLTMPDIR"
|