From 346740a68035d1c2784d669e9667b337c2b26087 Mon Sep 17 00:00:00 2001 From: Kris Nuttycombe Date: Tue, 1 Oct 2024 14:31:32 -0600 Subject: [PATCH] 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. --- .github/workflows/test_vectors.yml | 5 +- regenerate.sh | 107 ++++++++++++++++++++--------- 2 files changed, 76 insertions(+), 36 deletions(-) diff --git a/.github/workflows/test_vectors.yml b/.github/workflows/test_vectors.yml index 9352782..b1c93c1 100644 --- a/.github/workflows/test_vectors.yml +++ b/.github/workflows/test_vectors.yml @@ -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)" diff --git a/regenerate.sh b/regenerate.sh index bcf8c91..0695b70 100755 --- a/regenerate.sh +++ b/regenerate.sh @@ -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