Add ASN.1-to-Java codegen and RLP codec for spend/signed tx subset.
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.
This commit is contained in:
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#! /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
|
||||
Reference in New Issue
Block a user