summaryrefslogtreecommitdiffstats
path: root/fb-remote-test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'fb-remote-test.sh')
-rwxr-xr-xfb-remote-test.sh93
1 files changed, 93 insertions, 0 deletions
diff --git a/fb-remote-test.sh b/fb-remote-test.sh
new file mode 100755
index 00000000000..38648d84fde
--- /dev/null
+++ b/fb-remote-test.sh
@@ -0,0 +1,93 @@
+#!/bin/bash
+
+source ./test_env
+
+FBCODE="$HOME/fbsource/fbcode"
+N=0
+HOSTS=$(smcc ls-hosts -s gluster.build.ash gluster.build.prn | xargs)
+TESTS=$DESIRED_TESTS
+FLAKY=$KNOWN_FLAKY_TESTS
+
+FLAGS=""
+
+function print_env {
+ echo "Settings:"
+ echo "FBCODE=$FBCODE"
+ echo "N=$N"
+ echo -e "-------\nHOSTS\n$HOSTS\n-------"
+ echo -e "TESTS\n$TESTS\n-------"
+ echo -e "FLAKY\n$FLAKY\n-------"
+}
+
+function cleanup {
+ rm -f /tmp/test-*.log
+}
+
+function usage {
+ echo "Usage: $0 [-h or --help] [-v or --verbose]
+ [--fbcode <fbcode root>]
+ [--valgrind] [--asan] [--asan-noleaks]
+ [--hosts <hosts>] [--smc-tier <tier name>] [-n <parallelism>]
+ [--tests <tests>] [--flaky <tests>]
+ "
+}
+
+function tiers_to_hosts {
+ hosts=""
+ for t in $1; do
+ hosts="$hosts $(smcc ls-hosts -s $t | xargs)"
+ done
+ echo $hosts
+}
+
+function parse_args () {
+ args=`getopt \
+ -o hvn: \
+ --long help,verbose,valgrind,asan,asan-noleaks,fbcode:,hosts:,smc-tier:,tests:,flaky: \
+ -n 'fb-remote-test.sh' -- "$@"`
+
+ if [ $? != 0 ]; then
+ echo "Error parsing getopt"
+ exit 1
+ fi
+
+ eval set -- "$args"
+
+ while true; do
+ case "$1" in
+ -h | --help) usage ; exit 1 ;;
+ --fbcode) FBCODE=$2 ; shift 2 ;;
+ -v | --verbose) FLAGS="$FLAGS -v" ; shift ;;
+ --valgrind) FLAGS="$FLAGS --valgrind" ; shift ;;
+ --asan-noleaks) FLAGS="$FLAGS --asan-noleaks"; shift ;;
+ --asan) FLAGS="$FLAGS --asan" ; shift ;;
+ --hosts) HOSTS=$2; shift 2 ;;
+ --smc-tier) HOSTS=$(tiers_to_hosts $2) ; shift 2 ;;
+ --tests) TESTS=$2; shift 2 ;;
+ --flaky) FLAKY=$2; shift 2 ;;
+ -n) N=$2; shift 2 ;;
+ *) break ;;
+ esac
+ done
+ run_tests_args="$@"
+}
+
+function main {
+ parse_args "$@"
+
+ if [ ! -d "$FBCODE" ]; then
+ echo "fbcode does not exists. Please checkout fbcode"
+ return 1
+ fi
+
+ print_env
+
+ cleanup
+
+ "$FBCODE/storage/gluster/gluster-build/fb-gluster-test.py" $FLAGS --tester \
+ --n "$N" --hosts "$HOSTS" --tests "$TESTS" --flaky_tests "$FLAKY"
+
+ exit $?
+}
+
+main "$@"