53eaa3056a
Generate typed records from GajumaruChainObjects.asn, implement Asn1Rlp and BasicEncoders matching Erlang static serialization, and add golden-vector equivalence tests against gmser_chain_objects output.
40 lines
1.4 KiB
Bash
Executable File
40 lines
1.4 KiB
Bash
Executable File
#! /usr/bin/env bash
|
|
# Compile main + Asn1Rlp equivalence tests and run them.
|
|
# Prefers Homebrew OpenJDK when /usr/bin/java is a macOS stub.
|
|
|
|
set -euo pipefail
|
|
|
|
abs_dir="$(cd -P "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
project_dir="$(dirname "$abs_dir")"
|
|
|
|
if [[ -x /opt/homebrew/opt/openjdk/bin/javac ]]; then
|
|
export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"
|
|
elif [[ -x /opt/homebrew/opt/openjdk@25/bin/javac ]]; then
|
|
export PATH="/opt/homebrew/opt/openjdk@25/bin:$PATH"
|
|
elif [[ -x /opt/homebrew/opt/openjdk@21/bin/javac ]]; then
|
|
export PATH="/opt/homebrew/opt/openjdk@21/bin:$PATH"
|
|
fi
|
|
|
|
if ! command -v javac >/dev/null || ! javac -version >/dev/null 2>&1; then
|
|
echo "No working JDK found (javac)." >&2
|
|
exit 1
|
|
fi
|
|
|
|
classes="$project_dir/build/classes"
|
|
test_classes="$project_dir/build/test-classes"
|
|
mkdir -p "$classes" "$test_classes"
|
|
|
|
echo "Using $(javac -version 2>&1)"
|
|
|
|
# Portable source collection (bash 3.2 has no mapfile)
|
|
main_sources=$(find "$project_dir/src/main/java" -name '*.java' | sort)
|
|
# shellcheck disable=SC2086
|
|
javac --release 21 -d "$classes" $main_sources
|
|
|
|
test_sources=$(find "$project_dir/src/test/java" -name '*Asn1Rlp*.java' | sort)
|
|
# shellcheck disable=SC2086
|
|
javac --release 21 -cp "$classes" -d "$test_classes" $test_sources
|
|
|
|
echo "Running Asn1RlpEquivalenceTest..."
|
|
java -cp "$classes:$test_classes" swiss.qpq.gajumaru.core.serialization.Asn1RlpEquivalenceTest
|