|
|
@@ -1,6 +1,50 @@
|
|
|
#!/bin/sh
|
|
|
-go test ./wal \
|
|
|
- ./snap \
|
|
|
- ./etcdserver/... \
|
|
|
- ./raft \
|
|
|
- ./store
|
|
|
+#
|
|
|
+# Run all etcd tests
|
|
|
+# ./test
|
|
|
+# ./test -v
|
|
|
+#
|
|
|
+# Run tests for one package
|
|
|
+#
|
|
|
+# PKG=./wal ./test
|
|
|
+# PKG=snap ./test
|
|
|
+
|
|
|
+# Invoke ./cover for HTML output
|
|
|
+COVER=${COVER:-"-cover"}
|
|
|
+
|
|
|
+source ./build
|
|
|
+
|
|
|
+TESTABLE="wal snap etcdserver etcdserver/etcdhttp etcdserver/etcdserverpb raft store"
|
|
|
+FORMATTABLE="$TESTABLE cors.go main.go"
|
|
|
+
|
|
|
+# user has not provided PKG override
|
|
|
+if [ -z "$PKG" ]; then
|
|
|
+ TEST=$TESTABLE
|
|
|
+ FMT=$FORMATTABLE
|
|
|
+
|
|
|
+# user has provided PKG override
|
|
|
+else
|
|
|
+ # strip out leading dotslashes and trailing slashes from PKG=./foo/
|
|
|
+ TEST=${PKG/#./}
|
|
|
+ TEST=${TEST/#\//}
|
|
|
+ TEST=${TEST/%\//}
|
|
|
+
|
|
|
+ # only run gofmt on packages provided by user
|
|
|
+ FMT="$TEST"
|
|
|
+fi
|
|
|
+
|
|
|
+# split TEST into an array and prepend REPO_PATH to each local package
|
|
|
+split=(${TEST// / })
|
|
|
+TEST=${split[@]/#/${REPO_PATH}/}
|
|
|
+
|
|
|
+echo "Running tests..."
|
|
|
+go test ${COVER} $@ ${TEST}
|
|
|
+
|
|
|
+echo "Checking gofmt..."
|
|
|
+fmtRes=$(gofmt -l $FMT)
|
|
|
+if [ -n "${fmtRes}" ]; then
|
|
|
+ echo -e "gofmt checking failed:\n${fmtRes}"
|
|
|
+ exit 255
|
|
|
+fi
|
|
|
+
|
|
|
+echo "Success"
|