#!/usr/bin/env bash
# Runs every timed experiment serially (to avoid CPU contention between them).
set -uo pipefail
HERE=$(cd "$(dirname "$0")/.." && pwd); R="$HERE/results"; S="$HERE/scripts"; mkdir -p "$R"
date -u +"start %Y-%m-%dT%H:%M:%SZ" | tee "$R/run_all.log"
# Experiment 1: lock scope (30 runs, 5 s hold, as in the original measurement)
for v in before after head head_immediate; do node "$S/audit_experiments.mjs" lockscope $v 30 5000 > "$R/exp1_lockscope_$v.jsonl"; done
echo "exp1 done $(date -u +%T)" | tee -a "$R/run_all.log"
# Experiment 4: fork resistance and tamper evidence
for v in before after head; do
  node "$S/audit_experiments.mjs" interleave $v 200 > "$R/exp4_interleave_$v.jsonl"
  node "$S/audit_experiments.mjs" stress $v 100 8 5 > "$R/exp4_stress_$v.jsonl"
  node "$S/audit_experiments.mjs" tamper $v > "$R/exp4_tamper_$v.jsonl"
done
echo "exp4 done $(date -u +%T)" | tee -a "$R/run_all.log"
# Experiment 2: RLS overhead
node "$S/rls_query_timing.mjs" wc_bench_x0 5 > "$R/exp2_query_x0.jsonl"
node "$S/rls_query_timing.mjs" wc_bench_x50 5 > "$R/exp2_query_x50.jsonl"
node "$S/rls_query_timing.mjs" wc_bench_x1000 1 > "$R/exp2_query_x1000.jsonl"
echo "exp2 query timing done $(date -u +%T)" | tee -a "$R/run_all.log"
"$S/run_pgbench.sh" wc_bench_x0 5 20 | tee "$R/exp2_pgbench_x0_summary.txt"
"$S/run_pgbench.sh" wc_bench_x50 5 20 | tee "$R/exp2_pgbench_x50_summary.txt"
date -u +"end %Y-%m-%dT%H:%M:%SZ" | tee -a "$R/run_all.log"
