| #!/bin/bash |
| |
| # Copyright 2022 The IREE Authors |
| # |
| # Licensed under the Apache License v2.0 with LLVM Exceptions. |
| # See https://llvm.org/LICENSE.txt for license information. |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| # Build tests based on benchmark suites for IREE. |
| # |
| # The desired build directory can be passed as the first argument. Otherwise, it |
| # uses the environment variable IREE_TARGET_BUILD_DIR, defaulting to |
| # "build-benchmark-suites-test". Designed for CI, but can be run manually. It |
| # reuses the build directory if it already exists. Expects to be run from the |
| # root of the IREE repository. |
| set -xeuo pipefail |
| |
| BUILD_DIR="${1:-${IREE_TARGET_BUILD_DIR:-build-benchmark-suites-test}}" |
| E2E_TEST_ARTIFACTS_DIR="$(realpath ${E2E_TEST_ARTIFACTS_DIR:-build-e2e-test-artifacts/e2e_test_artifacts})" |
| IREE_HOST_BIN_DIR="$(realpath ${IREE_HOST_BIN_DIR})" |
| |
| source build_tools/cmake/setup_build.sh |
| |
| # Configure, build, test |
| declare -a CMAKE_ARGS=( |
| "-G" "Ninja" |
| "-B" "${BUILD_DIR}" |
| "-DPython3_EXECUTABLE=${IREE_PYTHON3_EXECUTABLE}" |
| "-DPYTHON_EXECUTABLE=${IREE_PYTHON3_EXECUTABLE}" |
| "-DCMAKE_BUILD_TYPE=RelWithDebInfo" |
| "-DIREE_BUILD_COMPILER=OFF" |
| "-DIREE_HOST_BIN_DIR=${IREE_HOST_BIN_DIR}" |
| "-DIREE_BUILD_TESTS=ON" |
| "-DIREE_BUILD_SAMPLES=OFF" |
| "-DIREE_E2E_TEST_ARTIFACTS_DIR=${E2E_TEST_ARTIFACTS_DIR}" |
| ) |
| |
| echo "Configuring to build tests for benchmark suites" |
| "${CMAKE_BIN}" "${CMAKE_ARGS[@]}" |
| |
| echo "Building tests artifacts" |
| "${CMAKE_BIN}" --build "${BUILD_DIR}" \ |
| --target iree-run-module iree-run-module-test-deps -- -k 0 |
| |
| ctest_args=( |
| "--timeout 900" |
| "--output-on-failure" |
| "--no-tests=error" |
| ) |
| |
| declare -a label_args=( |
| "^test-type=run-module-test$" |
| ) |
| label_include_regex="($(IFS="|" ; echo "${label_args[*]}"))" |
| |
| echo "******** Running run-module CTest ********" |
| ctest --test-dir ${BUILD_DIR} ${ctest_args[@]} \ |
| --label-regex ${label_include_regex} |