blob: 2ae882ed1ca0bbe41d3f49d60816cfa428d48b2a [file] [log] [blame]
#!/bin/bash
DIR=/usr/local/dubbo/
source $DIR/utils.sh
cd $DIR
if [ "$TEST_CLASSES_DIR" == "" ]; then
echo "Missing env 'TEST_CLASSES_DIR' for test service"
return 1
fi
# wait ports before run app: WAIT_PORTS_BEFORE_RUN=host:port;host:port
if [ "$WAIT_PORTS_BEFORE_RUN" != "" ]; then
echo "Waiting ports before run test .."
# check ports
split_and_check_tcp_ports "$WAIT_PORTS_BEFORE_RUN" $SECONDS $WAIT_TIMEOUT
result=$?
if [ $result -ne 0 ]; then
echo "Wait ports before run test failure"
exit $result
fi
fi
# At least delay 1 second
if [ $RUN_DELAY -le 0 ]; then
RUN_DELAY=1
fi
#delay start
if [ $RUN_DELAY -gt 0 ]; then
echo "Delay $RUN_DELAY s."
sleep $RUN_DELAY
fi
# run testcase
echo "Running tests ..."
report_dir=$DIR/app/test-reports
# Fix Class loading problem in java9+: CompletableFuture.supplyAsync() is executed in the ForkJoinWorkerThread
# and it only uses system classloader to load classes instead of the IsolatedClassLoader
classpath=dubbo-test-runner.jar:$TEST_CLASSES_DIR:$APP_CLASSES_DIR:$APP_DEPENDENCY_DIR/*
java $JAVA_OPTS $DEBUG_OPTS -cp $classpath org.apache.dubbo.test.runner.TestRunnerMain "$TEST_CLASSES_DIR" "$APP_CLASSES_DIR" "$APP_DEPENDENCY_DIR" "$report_dir" "$TEST_PATTERNS" 2>&1
result=$?
if [ $result -ne 0 ]; then
echo "Run tests failure"
exit $result
else
echo "Run tests successfully"
fi