#!/bin/bash # Copyright 2021 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 # Test the cross-compiled RISCV 64-bit Linux targets. # # The desired build directory can be passed as the first argument. Otherwise, it # uses the environment variable IREE_TARGET_BUILD_DIR, defaulting to # "build-riscv". Designed for CI, but can be run manually. Expects to be run # from the root of the IREE repository. set -xeuo pipefail BUILD_DIR="${1:-${IREE_TARGET_BUILD_DIR:-build-riscv}}" RISCV_PLATFORM="${IREE_TARGET_PLATFORM:-linux}" RISCV_ARCH="${IREE_TARGET_ARCH:-riscv_64}" BUILD_PRESET="${BUILD_PRESET:-test}" # Environment variable used by the emulator. export RISCV_TOOLCHAIN_ROOT="${RISCV_RV64_LINUX_TOOLCHAIN_ROOT}" export CTEST_PARALLEL_LEVEL=${CTEST_PARALLEL_LEVEL:-$(nproc)} ctest_args=( "--timeout 900" "--output-on-failure" "--no-tests=error" ) declare -a label_exclude_args=( "^nodocker$" "^driver=vulkan$" "^driver=metal$" "^driver=cuda$" "^driver=rocm$" "^driver=hip$" "^vulkan_uses_vk_khr_shader_float16_int8$" "^requires-filesystem$" "^requires-dtz$" "^noriscv$" ) # TODO(#10462): Investigate the lowering_config test issue. declare -a test_exclude_args=( "regression_llvm-cpu_lowering_config" ) if [[ "${BUILD_PRESET}" == "benchmark-suite-test" ]]; then 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} exit 0 fi # Test runtime unit tests runtime_label_exclude_regex="($(IFS="|" ; echo "${label_exclude_args[*]}"))" runtime_ctest_args=( "--test-dir ${BUILD_DIR}/runtime/" ${ctest_args[@]} "--label-exclude ${runtime_label_exclude_regex}" ) echo "******** Running runtime CTest ********" ctest ${runtime_ctest_args[@]} tools_ctest_args=( "--test-dir ${BUILD_DIR}/tools/test" ${ctest_args[@]} "--label-exclude ${runtime_label_exclude_regex}" ) echo "******** Running tools CTest ********" ctest ${tools_ctest_args[@]} if [[ "${RISCV_PLATFORM}-${RISCV_ARCH}" == "linux-riscv_32" ]]; then # stablehlo.power is also disabled because musl math library is not compiled for # 32-bit. test_exclude_args+=( "stablehlo.*llvm-cpu.*pow" ) fi tests_label_exclude_regex="($(IFS="|" ; echo "${label_exclude_args[*]}"))" tests_exclude_regex="($(IFS="|" ; echo "${test_exclude_args[*]}"))" test_ctest_args=( "--test-dir ${BUILD_DIR}/tests/e2e" ${ctest_args[@]} "--label-exclude ${tests_label_exclude_regex}" "--exclude-regex ${tests_exclude_regex}" ) echo "******** Running e2e CTest ********" ctest ${test_ctest_args[@]}