#!/usr/bin/env bash # Runs one named scenario and prints it to stdout (does not touch docs/output - use # run-all.sh to regenerate the committed transcripts). Examples: # # ./scripts/run.sh add-opens-fail # reflection WITHOUT --add-opens (crashes on purpose) # ./scripts/run.sh add-opens-ok # reflection WITH --add-opens # ./scripts/run.sh treeify # run just the treeification test, verbose # ./scripts/run.sh cme # run just the ConcurrentModificationException tests set -eu cd "$(dirname "$0")/.." scenario="${1:?usage: run.sh }" mvn -q -B compile case "$scenario" in add-opens-fail) java -cp target/classes com.ankurm.interviewlab.collections.ReflectionAddOpensDemo ;; add-opens-ok) java --add-opens java.base/java.util=ALL-UNNAMED -cp target/classes \ com.ankurm.interviewlab.collections.ReflectionAddOpensDemo ;; treeify) mvn -B test -Dtest=TreeifyTriggerTest ;; cme) mvn -B test -Dtest=ConcurrentModificationTest ;; eqhash) mvn -B test -Dtest=EqualsHashCodeContractTest ;; bucket) mvn -B test -Dtest=BucketLayoutTest ;; *) echo "unknown scenario: $scenario" >&2; exit 1 ;; esac