#!/bin/bash

set -euo pipefail

# Start with static analysis
make clean all
mkdir -p reports/static-analysis
scan-build -o reports/static-analysis/ -plist-html --status-bugs make all

# Run the sanitizer builds and valgrind
make clean sanitize all

ARGUMENTS=("tokens" "text" "ast")
while IFS= read -r INPUT_FILE; do
    for ARGS in ${ARGUMENTS[@]}; do
        ./oas-asan $ARGS $INPUT_FILE > /dev/null
        ./oas-msan $ARGS $INPUT_FILE > /dev/null
        valgrind --leak-check=full --error-exitcode=1 ./oas $ARGS $INPUT_FILE >/dev/null
    done
done < <(find tests/input/ -type f -name '*.asm')