#!/usr/bin/env bash
set -euo pipefail
repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
test_bin="$(mktemp)"
trap 'rm -f "$test_bin"' EXIT
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/voice_delivery_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/voice_upload_policy_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    -I "$repo_dir/boards/m5stack_stopwatch" -I "$repo_dir/firmware/tests/nvs_stub" \
    "$repo_dir/firmware/tests/wearable_preferences_test.cpp" \
    "$repo_dir/boards/m5stack_stopwatch/device_preferences_nvs.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/battery_status_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/voice_recording_store_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/wearable_shell_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/rtc_time_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/resource_size_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/wearable_renderer_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/watch_status_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/glyph_metrics_cache_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -pthread -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/ui_button_outbox_test.cpp" -o "$test_bin"
"$test_bin"
python3 "$repo_dir/firmware/tests/run_transcript_font_test.py"
python3 "$repo_dir/firmware/tests/cjk_subset_generator_test.py"
python3 "$repo_dir/firmware/tests/wifi_secrets_test.py"
python3 "$repo_dir/firmware/tests/wifi_production_binding_test.py"
python3 "$repo_dir/firmware/tests/wifi_ownership_concurrency_test.py"
python3 "$repo_dir/firmware/tests/run_wifi_manager_test.py"
python3 "$repo_dir/firmware/tests/run_history_binding_test.py"
python3 "$repo_dir/firmware/tests/run_wifi_ctl_test.py"
python3 "$repo_dir/firmware/tests/run_shell_input_test.py"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/physical_input_test.cpp" -o "$test_bin"
"$test_bin"

c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/agent_navigator_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/touch_gesture_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/agent_history_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/wifi_profiles_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -pthread -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/wifi_connection_ownership_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/wifi_network_lifecycle_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/wifi_usb_binding_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/network_menu_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/qr_code_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/wifi_usb_test.cpp" -o "$test_bin"
"$test_bin"
c++ -std=c++17 -Wall -Wextra -Werror -I "$repo_dir/boards/common/include" \
    "$repo_dir/firmware/tests/portal_html_test.cpp" -o "$test_bin"
"$test_bin"
