diff options
author | Wendall Cada <wendallc@apache.org> | 2013-04-05 11:46:54 -0700 |
---|---|---|
committer | Wendall Cada <wendallc@apache.org> | 2013-04-05 11:46:54 -0700 |
commit | 9dfddaa7bf30d30c8fbbc4e1cc2bff4dc35dadac (patch) | |
tree | 348989a99ba27443ce67f8c321e2a16f7bcfde16 | |
parent | 826eba77b96b885aca9873c649e0d2849e170f7a (diff) | |
download | couchdb-9dfddaa7bf30d30c8fbbc4e1cc2bff4dc35dadac.tar.gz |
Refactor javascript runner script to handle couchdb restarts. Single interpreter per test.COUCHDB-1762-fix-javascript-tests
-rw-r--r-- | test/javascript/run.tpl | 117 |
1 files changed, 77 insertions, 40 deletions
diff --git a/test/javascript/run.tpl b/test/javascript/run.tpl index 39a47a6b8..d9f736542 100644 --- a/test/javascript/run.tpl +++ b/test/javascript/run.tpl @@ -27,9 +27,83 @@ if [ -z "$MAKE" ]; then MAKE=make fi +trap 'abort' EXIT INT + +start() { + ./utils/run -b -r 0 -n \ + -a $BUILD_DIR/etc/couchdb/default_dev.ini \ + -a $SRC_DIR/test/random_port.ini \ + -a $BUILD_DIR/etc/couchdb/local_dev.ini 1>/dev/null +} + +stop() { + ./utils/run -d 1>/dev/null +} + +restart() { + stop + start +} + +abort() { + trap - 0 + stop + exit 2 +} + +process_response() { + while read data + do + if [ $data = 'restart' ]; + then + restart + else + echo "$data" + fi + done +} + +run() { + # start the tests + echo -n "$1 ... " + $COUCHJS -H -u $COUCH_URI_FILE \ + $SCRIPT_DIR/json2.js \ + $SCRIPT_DIR/sha1.js \ + $SCRIPT_DIR/oauth.js \ + $SCRIPT_DIR/couch.js \ + $SCRIPT_DIR/replicator_db_inc.js \ + $SCRIPT_DIR/couch_test_runner.js \ + $JS_TEST_DIR/couch_http.js \ + $JS_TEST_DIR/test_setup.js \ + $1 \ + $JS_TEST_DIR/cli_runner.js | process_response + + if [ -z $RESULT ]; then + RESULT=$? + elif [ "$?" -eq 1 ]; then + RESULT=$? + fi + +} + +# start CouchDB +if [ -z $COUCHDB_NO_START ]; then + $MAKE dev + start +fi + +echo "Running javascript tests ..." + if [ "$#" -eq 0 ]; then - TEST_SRC="$SCRIPT_DIR/test/*.js" + COUNTER=1 + FILES=($SCRIPT_DIR/test/*.js) + for TEST_SRC in "${FILES[@]}" + do + echo -n "$COUNTER/${#FILES[@]} " + let COUNTER=COUNTER+1 + run $TEST_SRC + done else TEST_SRC="$1" if [ ! -f $TEST_SRC ]; then @@ -40,47 +114,10 @@ else echo "file $1 does not exist" exit 1 fi + run $TEST_SRC fi fi fi -# stop CouchDB on exit from various signals -abort() { - trap - 0 - ./utils/run -d - exit 2 -} - -# start CouchDB -if [ -z $COUCHDB_NO_START ]; then - $MAKE dev - trap 'abort' EXIT INT - ./utils/run -b -r 1 -n \ - -a $BUILD_DIR/etc/couchdb/default_dev.ini \ - -a $SRC_DIR/test/random_port.ini \ - -a $BUILD_DIR/etc/couchdb/local_dev.ini - sleep 1 # give it a sec -fi - -# start the tests -$COUCHJS -H -u $COUCH_URI_FILE \ - $SCRIPT_DIR/json2.js \ - $SCRIPT_DIR/sha1.js \ - $SCRIPT_DIR/oauth.js \ - $SCRIPT_DIR/couch.js \ - $SCRIPT_DIR/couch_test_runner.js \ - $SCRIPT_DIR/couch_tests.js \ - $SCRIPT_DIR/replicator_db_inc.js \ - $TEST_SRC \ - $JS_TEST_DIR/couch_http.js \ - $JS_TEST_DIR/cli_runner.js - -RESULT=$? - -if [ -z $COUCHDB_NO_START ]; then - # stop CouchDB - ./utils/run -d - trap - 0 -fi - +trap - 0 exit $RESULT |