| #! /usr/bin/env bash |
| |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you 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. |
| |
| # |
| # Basic regression test script. |
| # |
| # Verify that the source tree builds and that out of tree builds work. We don't use root for any of this because |
| # it should not be required (that would be a bug). Then run the automake regression tests and the traffic_server |
| # regression tests. |
| # |
| |
| set -e # exit on error |
| |
| TMPDIR=${TMPDIR:-/tmp} |
| BUILDID="org.apache.trafficserver.$$" |
| |
| SRCROOT=${SRCROOT:-$(cd $(dirname $0)/.. && pwd)} # where the source lives |
| OBJROOT=${OBJROOT:-"$TMPDIR/$BUILDID/obj"} # where we are building |
| DSTROOT=${DSTROOT:-"$TMPDIR/$BUILDID/dst"} # where we are installing |
| |
| # Force low make parallelization so that the build can complete in a VM with |
| # only a small amount of memory. |
| NPROCS=${NPROCS:-2} |
| |
| mkdir -p $SRCROOT |
| mkdir -p $OBJROOT |
| mkdir -p $DSTROOT |
| |
| prog() { |
| case $1 in |
| cc) |
| case $(uname -v) in |
| Darwin*) echo clang ;; |
| omnios*) echo /opt/gcc-4.6.3/bin/gcc ;; |
| *) echo cc ;; |
| esac |
| ;; |
| cxx) |
| case $(uname -v) in |
| Darwin*) echo clang++ ;; |
| omnios*) echo /opt/gcc-4.6.3/bin/g++ ;; |
| *) echo c++ ;; |
| esac |
| ;; |
| make) |
| case $(uname) in |
| FreeBSD) echo gmake ;; |
| *) echo make ;; |
| esac |
| ;; |
| esac |
| } |
| |
| extras() { |
| case $(uname -v) in |
| Darwin*) echo --with-openssl=$(brew --prefix openssl) ;; |
| esac |
| } |
| |
| autogen() { |
| ( |
| cd "$SRCROOT" |
| [ configure -nt configure.ac -a Makefile.in -nt Makefile.am ] || autoreconf -fi |
| ) |
| } |
| |
| configure() { |
| ( |
| cd $OBJROOT |
| $SRCROOT/configure \ |
| --prefix=$DSTROOT \ |
| --enable-debug \ |
| --enable-werror \ |
| --enable-example-plugins \ |
| --enable-test-tools \ |
| --enable-experimental-plugins \ |
| $(extras) \ |
| CC="$CC" \ |
| CXX="$CXX" \ |
| "$@" |
| ) |
| } |
| |
| build() { |
| ( cd $OBJROOT && $MAKE -j $NPROCS ) |
| ( cd $OBJROOT && $MAKE install ) |
| } |
| |
| # Run extended (level 3) regressions. |
| regress() { |
| ( cd $OBJROOT && $MAKE check ) && \ |
| $DSTROOT/bin/traffic_server -k -K -R 1 && \ |
| $SRCROOT/tests/autest.sh --ats-bin=$DSTROOT/bin |
| } |
| |
| CC=${CC:-$(prog cc)} |
| CXX=${CXX:-$(prog cxx)} |
| MAKE=${MAKE:-$(prog make)} |
| export CC CXX MAKE |
| |
| autogen |
| configure "$@" |
| build |
| regress |