#!/usr/bin/env bash set -euo pipefail cd "$(dirname "$0")/.." mvn -q -B compile java -cp target/classes com.ankurm.cow.IteratorSnapshotDemo 2>&1 \ | grep -vE 'JAVA_TOOL_OPTIONS|^WARNING' > output/01-iterator-snapshot-demo.txt java -cp target/classes com.ankurm.cow.SynchronizedListCmeDemo 2>&1 \ | grep -vE 'JAVA_TOOL_OPTIONS|^WARNING' > output/02-synchronizedlist-cme-demo.txt mvn -q -B test cp target/surefire-reports/com.ankurm.cow.CowClaimsTest.txt output/03-tests.txt mvn -q -B package -DskipTests java -jar target/benchmarks.jar ReadThroughputBenchmark -rf text -rff output/04-read-throughput-jmh.txt java -jar target/benchmarks.jar WriteThroughputBenchmark -rf text -rff output/05-write-throughput-jmh.txt { echo '$ javap -p java.util.concurrent.CopyOnWriteArrayList | grep -i lock'; \ javap -p java.util.concurrent.CopyOnWriteArrayList 2>&1 | grep -vE 'JAVA_TOOL_OPTIONS|^WARNING' | grep -i lock; } \ > output/06-javap-lock-field.txt echo "Regenerated output/01-06. output/07-write-throughput-race.txt is a one-off captured failure" echo "from an earlier, deliberately buggy version of the write benchmark - see the README - and" echo "is NOT regenerated by this script."