aboutsummaryrefslogtreecommitdiff
path: root/tests/script/runtests.sh
diff options
context:
space:
mode:
authorChristopher Peplin <chris.peplin@rhubarbtech.com>2014-09-20 16:26:08 -0400
committerChristopher Peplin <chris.peplin@rhubarbtech.com>2014-09-20 16:26:39 -0400
commit663626f06d79aa4d3d3b17e0391897c852658a28 (patch)
tree05fd05167e6d68ef3a01bbd5e8d49aa683daa730 /tests/script/runtests.sh
parent086c6e96ca4b98e8a144b5f7f37a7b3b6fedc61d (diff)
Move scripts inside tests directory.
Fixed https://github.com/sudar/Arduino-Makefile/issues/260
Diffstat (limited to 'tests/script/runtests.sh')
-rwxr-xr-xtests/script/runtests.sh48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/script/runtests.sh b/tests/script/runtests.sh
new file mode 100755
index 0000000..5f513da
--- /dev/null
+++ b/tests/script/runtests.sh
@@ -0,0 +1,48 @@
+#!/usr/bin/env bash
+
+TESTS_DIR=examples
+
+failures=()
+
+# These examples cannot be tested easily at the moment as they require
+# alternate cores. The MakefileExample doesn't actually contain any source code
+# to compile.
+NON_TESTABLE_EXAMPLES=(ATtinyBlink MakefileExample TinySoftWareSerial)
+
+for dir in $TESTS_DIR/*/
+do
+ dir=${dir%*/}
+ example=${dir##*/}
+ example_is_testable=true
+ for non_testable_example in "${NON_TESTABLE_EXAMPLES[@]}"; do
+ if [[ $example == $non_testable_example ]]; then
+ example_is_testable=false
+ break
+ fi
+ done
+
+ if ! $example_is_testable; then
+ echo "Skipping non-testable example $example..."
+ continue
+ fi
+
+ pushd $dir
+ echo "Compiling $example..."
+ make_output=`make clean`
+ make_output=`make`
+ if [[ $? -ne 0 ]]; then
+ failures+=("$example")
+ echo "Example $example failed"
+ fi
+ popd
+done
+
+for failure in "${failures[@]}"; do
+ echo "Example $failure failed"
+done
+
+if [[ ${#failures[@]} -eq 0 ]]; then
+ echo "All tests passed."
+else
+ exit 1
+fi