xref: /llvm-project/libcxx/utils/libcxx-lit (revision 5c2bdc53c445b9f951cb13fb445b9145c970ee36)
131deca46SLouis Dionne#!/usr/bin/env bash
231deca46SLouis Dionne
331deca46SLouis Dionneset -e
431deca46SLouis Dionne
531deca46SLouis DionnePROGNAME="$(basename "${0}")"
631deca46SLouis Dionnefunction usage() {
731deca46SLouis Dionnecat <<EOF
831deca46SLouis DionneUsage:
9*77fc5499SWill Hawkins${PROGNAME} [-h|--help] [-b|--bootstrap] <build-directory> [lit options...] tests...
1031deca46SLouis Dionne
1131deca46SLouis DionneShortcut to build the libc++ testing dependencies and run the libc++ tests with Lit.
1231deca46SLouis Dionne
13*77fc5499SWill Hawkins[-b|--bootstrap]   Configure tests to run against a bootstrap build of libcxx.
1431deca46SLouis Dionne<build-directory>  The path to the build directory to use for building the library.
1531deca46SLouis Dionne[lit options...]   Optional options to pass to 'llvm-lit'.
169fca0313SLouis Dionnetests...           Paths of the tests to run. Those paths are relative to '<monorepo-root>'.
1731deca46SLouis Dionne
1831deca46SLouis DionneExample
1931deca46SLouis Dionne=======
2031deca46SLouis Dionne$ cmake -S runtimes -B build/ -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi"
2131deca46SLouis Dionne$ libcxx-lit build/ -sv libcxx/test/std/utilities/
2231deca46SLouis DionneEOF
2331deca46SLouis Dionne}
2431deca46SLouis Dionne
25*77fc5499SWill Hawkinstype="cxx"
26*77fc5499SWill Hawkinsif [[ "${1}" == "-h" || "${1}" == "--help" ]]; then
2731deca46SLouis Dionne    usage
2831deca46SLouis Dionne    exit 0
2931deca46SLouis Dionnefi
30*77fc5499SWill Hawkins
31*77fc5499SWill Hawkinsif [[ "${1}" == "-b" || "${1}" == "--bootstrap" ]]; then
32*77fc5499SWill Hawkins    type="runtimes"
33*77fc5499SWill Hawkins    shift
34*77fc5499SWill Hawkinsfi
3531deca46SLouis Dionne
3631deca46SLouis Dionneif [[ $# -lt 1 ]]; then
3731deca46SLouis Dionne    usage
3831deca46SLouis Dionne    exit 1
3931deca46SLouis Dionnefi
4031deca46SLouis Dionne
4131deca46SLouis Dionnebuild_dir="${1}"
4231deca46SLouis Dionneshift
4331deca46SLouis Dionne
44*77fc5499SWill Hawkinsif [[ "${type}" == "runtimes" ]]; then
45*77fc5499SWill Hawkins        echo "N.B.: In a bootstrap build, lit needs a prefix to work correctly;"
46*77fc5499SWill Hawkins        echo "      See libcxx/docs/Testinglibcxx.rst for more information."
47*77fc5499SWill Hawkinsfi
48*77fc5499SWill Hawkinscmake --build "${build_dir}" --target ${type}-test-depends
4931deca46SLouis Dionne"${build_dir}/bin/llvm-lit" ${@}
50