#!/bin/sh
set -eu

runs_per_order=${RUNS_PER_ORDER:-1000}
result_prefix=${RESULT_PREFIX:-xml-linter-java-parsers}

hyperfine --warmup 10 --runs "$runs_per_order" --shell=none --export-json "/results/${result_prefix}-forward.json" \
  --command-name 'JDK SAX GraalVM Native' '/opt/java-parsers/native/jdk-sax-lint /bench/input.xml' \
  --command-name 'JDK StAX GraalVM Native' '/opt/java-parsers/native/jdk-stax-lint /bench/input.xml' \
  --command-name 'Aalto GraalVM Native' '/opt/java-parsers/native/aalto-lint /bench/input.xml' \
  --command-name 'Woodstox GraalVM Native' '/opt/java-parsers/native/woodstox-lint /bench/input.xml' \
  --command-name 'JDK SAX JIT' 'java -cp /opt/java-parsers/classes JdkSaxLint /bench/input.xml' \
  --command-name 'JDK StAX JIT' 'java -cp /opt/java-parsers/classes JdkStaxLint /bench/input.xml' \
  --command-name 'Aalto JIT' 'java -cp /opt/java-parsers/classes:/opt/java-parsers/lib/aalto-xml-1.4.0.jar:/opt/java-parsers/lib/stax2-api-4.3.0.jar AaltoLint /bench/input.xml' \
  --command-name 'Woodstox JIT' 'java -cp /opt/java-parsers/classes:/opt/java-parsers/lib/woodstox-core-7.2.1.jar:/opt/java-parsers/lib/stax2-api-4.3.0.jar WoodstoxLint /bench/input.xml'

hyperfine --warmup 10 --runs "$runs_per_order" --shell=none --export-json "/results/${result_prefix}-reverse.json" \
  --command-name 'Woodstox JIT' 'java -cp /opt/java-parsers/classes:/opt/java-parsers/lib/woodstox-core-7.2.1.jar:/opt/java-parsers/lib/stax2-api-4.3.0.jar WoodstoxLint /bench/input.xml' \
  --command-name 'Aalto JIT' 'java -cp /opt/java-parsers/classes:/opt/java-parsers/lib/aalto-xml-1.4.0.jar:/opt/java-parsers/lib/stax2-api-4.3.0.jar AaltoLint /bench/input.xml' \
  --command-name 'JDK StAX JIT' 'java -cp /opt/java-parsers/classes JdkStaxLint /bench/input.xml' \
  --command-name 'JDK SAX JIT' 'java -cp /opt/java-parsers/classes JdkSaxLint /bench/input.xml' \
  --command-name 'Woodstox GraalVM Native' '/opt/java-parsers/native/woodstox-lint /bench/input.xml' \
  --command-name 'Aalto GraalVM Native' '/opt/java-parsers/native/aalto-lint /bench/input.xml' \
  --command-name 'JDK StAX GraalVM Native' '/opt/java-parsers/native/jdk-stax-lint /bench/input.xml' \
  --command-name 'JDK SAX GraalVM Native' '/opt/java-parsers/native/jdk-sax-lint /bench/input.xml'
