99 lines
2.9 KiB
Bash
Executable File
99 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copyright 2013 Google Inc.
|
|
#
|
|
# 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.
|
|
#
|
|
# Author: jefftk@google.com (Jeff Kaufman)
|
|
#
|
|
# Runs ngx_pagespeed system tests.
|
|
#
|
|
# Exits with status 0 if all tests pass.
|
|
# Exits with status 1 immediately if any test fails.
|
|
# Exits with status 2 if command line args are wrong.
|
|
#
|
|
# Usage:
|
|
# ./run_tests.sh /path/to/mod_pagespeed /path/to/nginx/binary
|
|
#
|
|
# By default the test script uses several ports. If you have a port conflict
|
|
# and need to override one you can do that by setting the relevant environment
|
|
# variable. For example:
|
|
# PRIMARY_PORT=1234 ./run_tests.sh /.../mod_pagespeed /.../nginx/binary
|
|
|
|
# Normally we test only with the native fetcher off. Set
|
|
# TEST_NATIVE_FETCHER=true to also test the native fetcher, set
|
|
# TEST_SERF_FETCHER=false to skip the serf fetcher.
|
|
TEST_NATIVE_FETCHER=${TEST_NATIVE_FETCHER:-false}
|
|
TEST_SERF_FETCHER=${TEST_SERF_FETCHER:-true}
|
|
|
|
# Normally we actually run the tests, but you might only want us to set up nginx
|
|
# for you so you can do manual testing. If so, set RUN_TESTS=false and this
|
|
# will exit after configuring and starting nginx.
|
|
RUN_TESTS=${RUN_TESTS:-true}
|
|
|
|
# To run tests with valgrind, set the environment variable USE_VALGRIND to
|
|
# true.
|
|
USE_VALGRIND=${USE_VALGRIND:-false}
|
|
|
|
if [ "$#" -ne 2 ] ; then
|
|
echo "Usage: $0 mod_pagespeed_dir nginx_executable"
|
|
exit 2
|
|
fi
|
|
|
|
MOD_PAGESPEED_DIR="$1"
|
|
NGINX_EXECUTABLE="$2"
|
|
|
|
: ${PRIMARY_PORT:=8050}
|
|
: ${SECONDARY_PORT:=8051}
|
|
: ${CONTROLLER_PORT:=8053}
|
|
: ${RCPORT:=9991}
|
|
: ${PAGESPEED_TEST_HOST:=selfsigned.modpagespeed.com}
|
|
|
|
this_dir="$( cd $(dirname "$0") && pwd)"
|
|
|
|
function run_test_checking_failure() {
|
|
USE_VALGRIND="$USE_VALGRIND" \
|
|
PRIMARY_PORT="$PRIMARY_PORT" \
|
|
SECONDARY_PORT="$SECONDARY_PORT" \
|
|
MOD_PAGESPEED_DIR="$MOD_PAGESPEED_DIR" \
|
|
NGINX_EXECUTABLE="$NGINX_EXECUTABLE" \
|
|
PAGESPEED_TEST_HOST="$PAGESPEED_TEST_HOST" \
|
|
RUN_TESTS="$RUN_TESTS" \
|
|
CONTROLLER_PORT="$CONTROLLER_PORT" \
|
|
RCPORT="$RCPORT" \
|
|
bash "$this_dir/nginx_system_test.sh"
|
|
STATUS=$?
|
|
echo "With $@ setup."
|
|
case $STATUS in
|
|
0)
|
|
return # No failure.
|
|
;;
|
|
3)
|
|
return # Only expected failures.
|
|
;;
|
|
4)
|
|
return # Return passing error code when running manually.
|
|
;;
|
|
*)
|
|
exit 1 # Real failure.
|
|
esac
|
|
}
|
|
|
|
if $TEST_SERF_FETCHER; then
|
|
NATIVE_FETCHER=off run_test_checking_failure "serf fetcher"
|
|
fi
|
|
|
|
if $TEST_NATIVE_FETCHER; then
|
|
NATIVE_FETCHER=on run_test_checking_failure "native fetcher"
|
|
fi
|