Blob Blame History Raw
#!/bin/bash

usage() {
    echo "usage `basename $0` [OPTIONS]"
    echo "  --threads NUM       The number of threads to use for running tests."
    echo "  --testsuite-dir DIR Directory containing the test-suite source."
    echo "  --compiler [gcc|clang] The compiler to test."
}

cc="clang"
cxx="clang++"
testsuite_dir="/usr/share/llvm-test-suite/"
thread_args=""

while [ $# -gt 0 ]; do
    case $1 in
        --threads)
            shift
            threads="$1"
            ;;
        --testsuite-dir)
            shift
            testsuire_dir="$1"
            ;;
        --compiler)
            shift
            compiler="$1"
            case $compiler in
                clang)
                    cc="clang"
                    cxx="clang++"
                    ;;
                gcc)
                    cc="gcc"
                    cxx="g++"
                    ;;
                *)
                    echo "unknown compiler: $1"
                    exit 1
                    ;;
            esac
            ;;
        * )
            echo "unknown option: $1"
            echo ""
            usage
            exit 1
            ;;
    esac
    shift
done

if [ -n "$threads" ]; then
  thread_args_ninja="-j$threads"
  thread_args_lit="j$threads"
fi

set -xe

cd $(mktemp -d -p /var/tmp)

cmake -G Ninja $testsuite_dir \
    -DCMAKE_C_COMPILER=$cc \
    -DCMAKE_CXX_COMPILER=$cxx \
    -DTEST_SUITE_LIT_FLAGS="-sv$thread_args_lit"

ninja $thread_args_ninja check

rm -rf *