#!/usr/bin/env bash
# SPDX-License-Identifier: BSD-3-Clause

set -eo pipefail

source $DOCKER_BUILD_DIR/.ci/docker-prelude.sh

export CONFIGURE_OPTIONS=

if [ -d build ]; then
  rm -rf build
fi

if [ -d ./build-no-tests ]; then
  rm -rf build-no-tests
fi

if [ -d ./config_test ]; then
  rm -rf config_test
fi

if [ -z "$WITH_CRYPTO" ]; then
    echo "variable WITH_CRYPTO not set, defaulting to ossl"
    export WITH_CRYPTO="ossl"
fi

if [ "$WITH_CRYPTO" != "ossl" ]; then
    export CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS --disable-fapi"
fi

./bootstrap

# Is it a fuzz run, if so build the fuzz test and exit.
if [ "$GEN_FUZZ" == "1" ]; then
    ./configure --with-fuzzing=libfuzzer --enable-tcti-fuzzing \
      --disable-tcti-device --disable-tcti-mssim --disable-tcti-swtpm \
      --disable-shared --with-crypto="$WITH_CRYPTO"
    make -j$(nproc) check
    exit 0
fi

if [ "$TEST_TCTI_CONFIG" != "true" ]; then
#
# General build runs
#

# build with no tests enabled
mkdir ./build-no-tests
pushd ./build-no-tests

echo "PWD: $(pwd)"
echo "ls -la ../ $(ls -la ../)"

../configure --with-crypto=$WITH_CRYPTO $CONFIGURE_OPTIONS
make -j$(nproc)
popd

# build with all tests enabled
mkdir ./build
pushd ./build

if [ "$CC" == "gcc" ]; then
  export CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS --enable-code-coverage";
fi

if [ "$SCANBUILD" == "yes" ]; then
  scan-build --status-bugs ../configure --enable-unit --enable-integration --with-crypto=$WITH_CRYPTO $CONFIGURE_OPTIONS
elif [ "$CC" == "clang" ]; then
  ../configure --enable-unit --enable-integration --with-crypto=$WITH_CRYPTO $CONFIGURE_OPTIONS
else
  if [ "$WITH_TCTI" == "mssim" ]; then
    ../configure --with-sanitizer=undefined,address --disable-tcti-swtpm --enable-unit --enable-integration --with-crypto=$WITH_CRYPTO $CONFIGURE_OPTIONS
  else
    ../configure --with-sanitizer=undefined,address --enable-unit --enable-integration --with-crypto=$WITH_CRYPTO $CONFIGURE_OPTIONS
  fi
fi

if [ "$SCANBUILD" == "yes" ]; then
  scan-build --status-bugs make -j distcheck
elif [ "$CC" == "clang" ]; then
  make -j distcheck
else
  make -j check
fi

popd

else # TEST_TCTI_CONFIG == true
mkdir ./config_test
pushd ./config_test
if [ "$CC" == "gcc" ]; then
  # No TCTI - expect to fail
  echo "========================== START TEST - NO TCTI =========================="
  (../configure --disable-doxygen-doc --enable-unit --enable-integration --disable-tcti-swtpm --disable-tcti-mssim --disable-tcti-device && exit 1) || echo "failed as expected";
  # only device TCTI
  echo "========================== START TEST - device TCTI =========================="
  mkdir -p ./dev/tpm0 && ../configure --disable-doxygen-doc --enable-unit --enable-integration --disable-tcti-swtpm --disable-tcti-mssim --enable-tcti-device --with-device=./dev/tpm0
  make -j check TESTS="test/unit/tcti-device" && rm -rf ./dev
  # only mssim TCTI
  echo "========================== START TEST - mssim TCTI =========================="
  ../configure --disable-doxygen-doc --enable-unit --enable-integration --disable-tcti-swtpm --enable-tcti-mssim --disable-tcti-device
  make -j check TESTS="test/unit/tcti-mssim"
  # device and mssim TCTIs
  echo "========================== START TEST - mssim & device TCTI =========================="
  ../configure --disable-doxygen-doc --enable-unit --enable-integration --disable-tcti-swtpm --enable-tcti-mssim --enable-tcti-device
  make -j check TESTS="test/unit/tcti-device test/unit/tcti-mssim"
  # only swtmp TCTI
  echo "========================== START TEST - swtpm TCTI =========================="
  ../configure --disable-doxygen-doc --enable-unit --enable-integration --enable-tcti-swtpm --disable-tcti-mssim --disable-tcti-device
  make -j check TESTS="test/unit/tcti-swtpm"
  # swtmp and device TCTIs
  echo "========================== START TEST - swtpm & device TCTI =========================="
  ../configure --disable-doxygen-doc --enable-unit --enable-integration --enable-tcti-swtpm --disable-tcti-mssim --enable-tcti-device
  make -j check TESTS="test/unit/tcti-swtpm test/unit/tcti-device"
  # swtmp and mssim TCTIs
  echo "========================== START TEST - swtpm & mssim TCTI =========================="
  ../configure --disable-doxygen-doc --enable-unit --enable-integration --enable-tcti-swtpm --enable-tcti-mssim --disable-tcti-device
  make -j check TESTS="test/unit/tcti-swtpm test/unit/tcti-mssim"
  # all TCTIs
  echo "========================== START TEST - swtpm & mssim & device TCTI =========================="
  ../configure --disable-doxygen-doc --enable-unit --enable-integration --enable-tcti-swtpm --enable-tcti-mssim --enable-tcti-device
  make -j check TESTS="test/unit/tcti-swtpm test/unit/tcti-mssim test/unit/tcti-device"
fi # CC == gcc
popd
fi # TEST_TCTI_CONFIG

# back in root git directory, check for whitespace errors. We do this post CI
# so people can verify the rest of their patch works in CI before dying.
# git diff --check fails with a non-zero return code causing the shell to die
# as it has a set -e executed.
if [ -n "$BASE_REF" ]; then
  echo "Running whitespace check"
  git fetch origin "$BASE_REF"
  git diff --check "origin/$BASE_REF"
fi

if [ "$ENABLE_COVERAGE" == "true" ]; then
    bash <(curl -s https://codecov.io/bash)
fi
exit 0
