Modify the `regenerate` script to be more user-friendly.

This now takes the generation type or 'all' as the first argument,
and then the generator or 'all' as the second argument. File extensions
are detemined automatically from the generation type.
This commit is contained in:
Kris Nuttycombe 2024-10-01 14:31:32 -06:00 committed by Jack Grigg
parent 580dc95437
commit 346740a680
2 changed files with 76 additions and 36 deletions

View File

@ -11,13 +11,10 @@ jobs:
kind: ['rust', 'json', 'zcash']
include:
- kind: 'rust'
extension: 'rs'
name: 'Rust'
- kind: 'json'
extension: 'json'
name: 'JSON'
- kind: 'zcash'
extension: 'json'
name: 'Bitcoin-flavoured JSON'
fail-fast: false
@ -34,7 +31,7 @@ jobs:
run: poetry install --no-root
- name: Regenerate test vectors
run: ./regenerate.sh ${{ matrix.kind }} ${{ matrix.extension }}
run: ./regenerate.sh ${{ matrix.kind }} all
- name: Verify there are no changes
run: git diff; git ls-files --others --exclude-standard; test -z "$(git status --porcelain)"

View File

@ -1,37 +1,80 @@
#!/usr/bin/env bash
tv_scripts=(
bip_0032
f4jumble
f4jumble_long
orchard_empty_roots
orchard_generators
orchard_group_hash
orchard_key_components
orchard_map_to_curve
orchard_merkle_tree
orchard_note_encryption
orchard_poseidon
orchard_poseidon_hash
orchard_sinsemilla
orchard_zip32
sapling_generators
sapling_key_components
sapling_note_encryption
sapling_signatures
sapling_zip32
sapling_zip32_hard
unified_address
unified_full_viewing_keys
unified_incoming_viewing_keys
zip_0143
zip_0243
zip_0244
zip_0316
zip_0320)
case "$1" in
"rust" )
gen_types=(rust)
;;
"zcash" )
gen_types=(zcash)
;;
"json")
gen_types=(json)
;;
"all")
gen_types=(rust zcash json)
;;
*)
echo "Unexpected generation type: $1"
exit 1
;;
esac
for generator in "${tv_scripts[@]}"
case "$2" in
"all" )
tv_scripts=(
bip_0032
f4jumble
f4jumble_long
orchard_empty_roots
orchard_generators
orchard_group_hash
orchard_key_components
orchard_map_to_curve
orchard_merkle_tree
orchard_note_encryption
orchard_poseidon
orchard_poseidon_hash
orchard_sinsemilla
orchard_zip32
sapling_generators
sapling_key_components
sapling_note_encryption
sapling_signatures
sapling_zip32
sapling_zip32_hard
unified_address
unified_full_viewing_keys
unified_incoming_viewing_keys
zip_0143
zip_0243
zip_0244
zip_0316
zip_0320)
;;
*)
tv_scripts=($2)
;;
esac
for gen_type in "${gen_types[@]}"
do
echo "# $generator"
poetry run $generator -t $1 >test-vectors/$1/$generator.$2
echo "Generating $gen_type test vectors..."
case "$gen_type" in
"rust" )
extension="rs"
;;
"zcash" )
extension="json"
;;
"json")
extension="json"
;;
esac
for generator in "${tv_scripts[@]}"
do
echo "# $generator"
poetry run $generator -t $gen_type >test-vectors/$gen_type/$generator.$extension
done
echo "Finished $gen_type."
done