aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2017-01-25 06:36:35 +0800
committerchriseth <c@ethdev.com>2017-01-25 06:37:48 +0800
commit605455f96b64f0c4b229cc31186f2dcf22433e6d (patch)
treec7712ebe18e4caa40acd04c0218cd0668a81560f
parent1316bb75651ea365c5246277d2dfd3d366be9070 (diff)
downloaddexon-solidity-605455f96b64f0c4b229cc31186f2dcf22433e6d.tar.gz
dexon-solidity-605455f96b64f0c4b229cc31186f2dcf22433e6d.tar.zst
dexon-solidity-605455f96b64f0c4b229cc31186f2dcf22433e6d.zip
Tests for library checksums.
-rwxr-xr-xscripts/tests.sh16
-rwxr-xr-xtest/cmdlineTests.sh51
2 files changed, 53 insertions, 14 deletions
diff --git a/scripts/tests.sh b/scripts/tests.sh
index dfbda734..cf18cb26 100755
--- a/scripts/tests.sh
+++ b/scripts/tests.sh
@@ -30,20 +30,8 @@ set -e
REPO_ROOT="$(dirname "$0")"/..
- # Compile all files in std and examples.
-
-for f in "$REPO_ROOT"/std/*.sol
-do
- echo "Compiling $f..."
- set +e
- output=$("$REPO_ROOT"/build/solc/solc "$f" 2>&1)
- failed=$?
- # Remove the pre-release warning from the compiler output
- output=$(echo "$output" | grep -v 'pre-release')
- echo "$output"
- set -e
- test -z "$output" -a "$failed" -eq 0
-done
+echo "Running commandline tests..."
+"$REPO_ROOT/test/cmdlineTests.sh"
# This conditional is only needed because we don't have a working Homebrew
# install for `eth` at the time of writing, so we unzip the ZIP file locally
diff --git a/test/cmdlineTests.sh b/test/cmdlineTests.sh
new file mode 100755
index 00000000..fc48654a
--- /dev/null
+++ b/test/cmdlineTests.sh
@@ -0,0 +1,51 @@
+#!/usr/bin/env bash
+
+#------------------------------------------------------------------------------
+# Bash script to run commandline Solidity tests.
+#
+# The documentation for solidity is hosted at:
+#
+# https://solidity.readthedocs.org
+#
+# ------------------------------------------------------------------------------
+# This file is part of solidity.
+#
+# solidity is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# solidity is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with solidity. If not, see <http://www.gnu.org/licenses/>
+#
+# (c) 2016 solidity contributors.
+#------------------------------------------------------------------------------
+
+set -e
+
+REPO_ROOT="$(dirname "$0")"/..
+SOLC="$REPO_ROOT/build/solc/solc"
+
+ # Compile all files in std and examples.
+
+for f in "$REPO_ROOT"/std/*.sol
+do
+ echo "Compiling $f..."
+ set +e
+ output=$("$SOLC" "$f" 2>&1)
+ failed=$?
+ # Remove the pre-release warning from the compiler output
+ output=$(echo "$output" | grep -v 'pre-release')
+ echo "$output"
+ set -e
+ test -z "$output" -a "$failed" -eq 0
+done
+
+# Test library checksum
+echo 'contact C {}' | "$SOLC" --link --libraries a:0x90f20564390eAe531E810af625A22f51385Cd222
+! echo 'contract C {}' | "$SOLC" --link --libraries a:0x80f20564390eAe531E810af625A22f51385Cd222 2>/dev/null