#!/bin/bash
# Reproduction wrapper for ANGLE PLS glRenderbufferStorage OOB-imageStore POC.
#
# Usage: ./run.sh /path/to/chromium/src/out/asan
set -e
OUTDIR="${1:-/chromium/chromium/src/out/asan}"
HERE="$(cd "$(dirname "$0")" && pwd)"

# Serve poc.html on a free port (file:// also works for content_shell).
python3 "${HERE}/server.py" 18080 &
SERVER=$!
trap "kill ${SERVER} 2>/dev/null" EXIT
sleep 1

ASAN_OPTIONS=detect_leaks=0:handle_segv=1:allow_user_segv_handler=0 \
"${OUTDIR}/content_shell" \
  --no-sandbox --headless --ozone-platform=headless \
  --use-gl=angle --use-angle=swiftshader --enable-unsafe-swiftshader \
  --enable-webgl-draft-extensions \
  --disable-angle-features=supportsShaderFramebufferFetch \
  --allow-file-access-from-files \
  --enable-logging=stderr --run-web-tests \
  http://127.0.0.1:18080/poc.html 2>&1 \
  | grep -vE "dbus|object_proxy|dbind|inotify|DevTools listening|bluez_dbus|vaapi_wrapper"
