
Since CMake can't build with GCC on MacOS, choose a spec that doesn't have CMake in the DAG.
75 lines
2.1 KiB
Bash
Executable File
75 lines
2.1 KiB
Bash
Executable File
#!/bin/bash -e
|
|
#
|
|
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
#
|
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
|
|
#
|
|
# Description:
|
|
# Runs Spack unit tests.
|
|
#
|
|
# Usage:
|
|
# run-unit-tests [test ...]
|
|
#
|
|
# Options:
|
|
# Optionally add one or more unit tests
|
|
# to only run these tests.
|
|
#
|
|
|
|
#-----------------------------------------------------------
|
|
# Run a few initial commands and set up test environment
|
|
#-----------------------------------------------------------
|
|
ORIGINAL_PATH="$PATH"
|
|
|
|
. "$(dirname $0)/setup.sh"
|
|
check_dependencies $coverage git hg svn
|
|
|
|
# Move to root directory of Spack
|
|
# Allows script to be run from anywhere
|
|
cd "$SPACK_ROOT"
|
|
|
|
# Print compiler information
|
|
spack config get compilers
|
|
|
|
# Run spack help to cover command import
|
|
bin/spack -h
|
|
bin/spack help -a
|
|
|
|
# Profile and print top 20 lines for a simple call to spack spec
|
|
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
|
spack -p --lines 20 spec openmpi
|
|
else
|
|
spack -p --lines 20 spec mpileaks%gcc ^elfutils@0.170
|
|
fi
|
|
|
|
#-----------------------------------------------------------
|
|
# Run unit tests with code coverage
|
|
#-----------------------------------------------------------
|
|
$coverage_run $(which spack) test -x --verbose
|
|
|
|
#-----------------------------------------------------------
|
|
# Run tests for setup-env.sh
|
|
#-----------------------------------------------------------
|
|
# Clean the environment by removing Spack from the path and getting rid of
|
|
# the spack shell function
|
|
export PATH="$ORIGINAL_PATH"
|
|
unset spack
|
|
|
|
# start in the spack root directory
|
|
cd "$SPACK_ROOT"
|
|
|
|
# Run bash tests with coverage enabled, but pipe output to /dev/null
|
|
# because it seems that kcov seems to undo the script's redirection
|
|
if [ "$BASH_COVERAGE" = true ]; then
|
|
"$QA_DIR/bashcov" "$QA_DIR/setup-env-test.sh" &> /dev/null
|
|
"$QA_DIR/bashcov" "$QA_DIR/completion-test.sh" &> /dev/null
|
|
fi
|
|
|
|
# run the test scripts for their output (these will print nicely)
|
|
bash "$QA_DIR/setup-env-test.sh"
|
|
zsh "$QA_DIR/setup-env-test.sh"
|
|
dash "$QA_DIR/setup-env-test.sh"
|
|
|
|
bash "$QA_DIR/completion-test.sh"
|