blob: 647a29a58bdaa40f55673379ea3bbc7489ab49be [file] [log] [blame]
#!/bin/sh -e
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
SRC_DIR=%abs_top_srcdir%
BUILD_DIR=%abs_top_builddir%
SCRIPT_DIR=$SRC_DIR/share/www/script
JS_TEST_DIR=$SRC_DIR/test/javascript
COUCHJS=%abs_top_builddir%/src/couchdb/priv/couchjs
COUCH_URI_FILE=%localstaterundir%/couch.uri
# make check-js calls us with MAKE=$(MAKE) so BSDish `gmake` invocations
# will get passed on correctly. If $0 gets run manually, default to
# `make`
if [ -z "$MAKE" ]; then
MAKE=make
fi
if [ "$#" -eq 0 ];
then
TEST_SRC="$SCRIPT_DIR/test/*.js"
else
TEST_SRC="$1"
if [ ! -f $TEST_SRC ]; then
TEST_SRC="$SCRIPT_DIR/test/$1"
if [ ! -f $TEST_SRC ]; then
TEST_SRC="$SCRIPT_DIR/test/$1.js"
if [ ! -f $TEST_SRC ]; then
echo "file $1 does not exist"
exit 1
fi
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 \
$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
exit $RESULT