set -au
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
LOG_BASE="${SCRIPT_DIR}/../_logs"
ZIN_BASE="${SCRIPT_DIR}/../Cargo.toml"
PARAM=${1:-""}
CARGO_MANIFEST_DIR=$ZIN_BASE
CURRENTDATE=$(date +"%Y-%m-%d--%H-%M")
if [[ ! -d "$LOG_BASE" ]]; then
mkdir -p "$LOG_BASE"
fi
if [[ "${PARAM}" == "--help" || "${PARAM}" == "-h" ]]; then
echo "Usage: $0 [PARAM]"
echo ""
echo " PARAM: [Optional] add test case name to be passed to cargo test"
echo ""
echo "Example: $0 my_test_case"
echo " Runs the cargo test command with the 'my_test_case' parameter"
echo " and saves the output to a log file in the _logs directory."
echo ""
exit 0
elif [[ "${PARAM}" == "" ]]; then
FILE_NAME="test_${CURRENTDATE}.log"
LOG_FILE="${LOG_BASE}/${FILE_NAME}"
touch "$LOG_FILE"
echo "COMMAND: cargo test --no-fail-fast --manifest-path ${ZIN_BASE} >> ${LOG_FILE}" >> "$LOG_FILE"
cargo test --no-fail-fast --manifest-path "$ZIN_BASE" >> "$LOG_FILE"
exit
else
FILE_NAME="test_${PARAM}_${CURRENTDATE}.log"
LOG_FILE="${LOG_BASE}/${FILE_NAME}"
RUST_LOG=debug
touch "$LOG_FILE"
echo "COMMAND: RUST_LOG=debug cargo test --no-fail-fast --manifest-path ${ZIN_BASE} ${PARAM} >> ${LOG_FILE}" > "$LOG_FILE"
RUST_LOG=debug cargo test --manifest-path "$ZIN_BASE" "$PARAM" 2>&1 | tee -a "$LOG_FILE"
exit
fi