diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index f867c67f..fc64de99 100644 --- a/.github/workflows/fuzz.yml +++ b/.github/workflows/fuzz.yml @@ -11,29 +11,29 @@ on: jobs: fuzz: if: ${{ !github.event.act }} - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest strategy: fail-fast: false matrix: fuzz_target: [ -bitcoin_outpoint_string, -bitcoin_deserialize_amount, -bitcoin_deserialize_transaction, -bitcoin_deser_net_msg, -bitcoin_deserialize_address, -bitcoin_script_bytes_to_asm_fmt, -bitcoin_deserialize_prefilled_transaction, -bitcoin_deserialize_witness, -bitcoin_deserialize_psbt, -bitcoin_deserialize_block, -bitcoin_deserialize_script, -hashes_json, -hashes_cbor, -hashes_sha256, -hashes_ripemd160, -hashes_sha512_256, -hashes_sha512, -hashes_sha1, + bitcoin_deser_net_msg, + bitcoin_deserialize_address, + bitcoin_deserialize_amount, + bitcoin_deserialize_block, + bitcoin_deserialize_prefilled_transaction, + bitcoin_deserialize_psbt, + bitcoin_deserialize_script, + bitcoin_deserialize_transaction, + bitcoin_deserialize_witness, + bitcoin_outpoint_string, + bitcoin_script_bytes_to_asm_fmt, + hashes_cbor, + hashes_json, + hashes_ripemd160, + hashes_sha1, + hashes_sha256, + hashes_sha512, + hashes_sha512_256, ] steps: - name: Install test dependencies @@ -47,11 +47,9 @@ hashes_sha1, fuzz/target target key: cache-${{ matrix.target }}-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }} - - uses: actions-rs/toolchain@v1 + - uses: dtolnay/rust-toolchain@stable with: - toolchain: "1.65.0" - override: true - profile: minimal + toolchain: '1.65.0' - name: fuzz run: | if [[ "${{ matrix.fuzz_target }}" =~ ^bitcoin ]]; then diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index 8728202c..1f82db05 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -16,74 +16,74 @@ serde = { version = "1.0.103", features = [ "derive" ] } serde_json = "1.0" serde_cbor = "0.9" -[[bin]] -name = "bitcoin_outpoint_string" -path = "fuzz_targets/bitcoin/outpoint_string.rs" - -[[bin]] -name = "bitcoin_deserialize_amount" -path = "fuzz_targets/bitcoin/deserialize_amount.rs" - -[[bin]] -name = "bitcoin_deserialize_transaction" -path = "fuzz_targets/bitcoin/deserialize_transaction.rs" - [[bin]] name = "bitcoin_deser_net_msg" -path = "fuzz_targets/bitcoin/deser_net_msg.rs" +path = "fuzz_targets//bitcoin/deser_net_msg.rs" [[bin]] name = "bitcoin_deserialize_address" -path = "fuzz_targets/bitcoin/deserialize_address.rs" +path = "fuzz_targets//bitcoin/deserialize_address.rs" [[bin]] -name = "bitcoin_script_bytes_to_asm_fmt" -path = "fuzz_targets/bitcoin/script_bytes_to_asm_fmt.rs" - -[[bin]] -name = "bitcoin_deserialize_prefilled_transaction" -path = "fuzz_targets/bitcoin/deserialize_prefilled_transaction.rs" - -[[bin]] -name = "bitcoin_deserialize_witness" -path = "fuzz_targets/bitcoin/deserialize_witness.rs" - -[[bin]] -name = "bitcoin_deserialize_psbt" -path = "fuzz_targets/bitcoin/deserialize_psbt.rs" +name = "bitcoin_deserialize_amount" +path = "fuzz_targets//bitcoin/deserialize_amount.rs" [[bin]] name = "bitcoin_deserialize_block" -path = "fuzz_targets/bitcoin/deserialize_block.rs" +path = "fuzz_targets//bitcoin/deserialize_block.rs" + +[[bin]] +name = "bitcoin_deserialize_prefilled_transaction" +path = "fuzz_targets//bitcoin/deserialize_prefilled_transaction.rs" + +[[bin]] +name = "bitcoin_deserialize_psbt" +path = "fuzz_targets//bitcoin/deserialize_psbt.rs" [[bin]] name = "bitcoin_deserialize_script" -path = "fuzz_targets/bitcoin/deserialize_script.rs" +path = "fuzz_targets//bitcoin/deserialize_script.rs" [[bin]] -name = "hashes_json" -path = "fuzz_targets/hashes/json.rs" +name = "bitcoin_deserialize_transaction" +path = "fuzz_targets//bitcoin/deserialize_transaction.rs" + +[[bin]] +name = "bitcoin_deserialize_witness" +path = "fuzz_targets//bitcoin/deserialize_witness.rs" + +[[bin]] +name = "bitcoin_outpoint_string" +path = "fuzz_targets//bitcoin/outpoint_string.rs" + +[[bin]] +name = "bitcoin_script_bytes_to_asm_fmt" +path = "fuzz_targets//bitcoin/script_bytes_to_asm_fmt.rs" [[bin]] name = "hashes_cbor" -path = "fuzz_targets/hashes/cbor.rs" +path = "fuzz_targets//hashes/cbor.rs" [[bin]] -name = "hashes_sha256" -path = "fuzz_targets/hashes/sha256.rs" +name = "hashes_json" +path = "fuzz_targets//hashes/json.rs" [[bin]] name = "hashes_ripemd160" -path = "fuzz_targets/hashes/ripemd160.rs" - -[[bin]] -name = "hashes_sha512_256" -path = "fuzz_targets/hashes/sha512_256.rs" - -[[bin]] -name = "hashes_sha512" -path = "fuzz_targets/hashes/sha512.rs" +path = "fuzz_targets//hashes/ripemd160.rs" [[bin]] name = "hashes_sha1" -path = "fuzz_targets/hashes/sha1.rs" +path = "fuzz_targets//hashes/sha1.rs" + +[[bin]] +name = "hashes_sha256" +path = "fuzz_targets//hashes/sha256.rs" + +[[bin]] +name = "hashes_sha512" +path = "fuzz_targets//hashes/sha512.rs" + +[[bin]] +name = "hashes_sha512_256" +path = "fuzz_targets//hashes/sha512_256.rs" diff --git a/fuzz/fuzz-util.sh b/fuzz/fuzz-util.sh index 804e0da9..759d41c4 100755 --- a/fuzz/fuzz-util.sh +++ b/fuzz/fuzz-util.sh @@ -4,7 +4,7 @@ REPO_DIR=$(git rev-parse --show-toplevel) listTargetFiles() { pushd "$REPO_DIR/fuzz" > /dev/null || exit 1 - find fuzz_targets/ -type f -name "*.rs" + find fuzz_targets/ -type f -name "*.rs" | sort popd > /dev/null || exit 1 } @@ -12,7 +12,8 @@ targetFileToName() { echo "$1" \ | sed 's/^fuzz_targets\///' \ | sed 's/\.rs$//' \ - | sed 's/\//_/g' + | sed 's/\//_/g' \ + | sed 's/^_//g' } targetFileToHFuzzInputArg() { diff --git a/fuzz/generate-files.sh b/fuzz/generate-files.sh index 9d36e3e8..df774bbc 100755 --- a/fuzz/generate-files.sh +++ b/fuzz/generate-files.sh @@ -53,18 +53,18 @@ on: jobs: fuzz: if: \${{ !github.event.act }} - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest strategy: fail-fast: false matrix: fuzz_target: [ -$(for name in $(listTargetNames); do echo "$name,"; done) +$(for name in $(listTargetNames); do echo " $name,"; done) ] steps: - name: Install test dependencies run: sudo apt-get update -y && sudo apt-get install -y binutils-dev libunwind8-dev libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc libiberty-dev - - uses: actions/checkout@v2 - - uses: actions/cache@v2 + - uses: actions/checkout@v4 + - uses: actions/cache@v3 id: cache-fuzz with: path: | @@ -72,11 +72,9 @@ $(for name in $(listTargetNames); do echo "$name,"; done) fuzz/target target key: cache-\${{ matrix.target }}-\${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }} - - uses: actions-rs/toolchain@v1 + - uses: dtolnay/rust-toolchain@stable with: - toolchain: 1.58 - override: true - profile: minimal + toolchain: '1.65.0' - name: fuzz run: | if [[ "\${{ matrix.fuzz_target }}" =~ ^bitcoin ]]; then @@ -85,7 +83,7 @@ $(for name in $(listTargetNames); do echo "$name,"; done) echo "Using RUSTFLAGS \$RUSTFLAGS" cd fuzz && ./fuzz.sh "\${{ matrix.fuzz_target }}" - run: echo "\${{ matrix.fuzz_target }}" >executed_\${{ matrix.fuzz_target }} - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v3 with: name: executed_\${{ matrix.fuzz_target }} path: executed_\${{ matrix.fuzz_target }} @@ -95,8 +93,8 @@ $(for name in $(listTargetNames); do echo "$name,"; done) needs: fuzz runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v2 + - uses: actions/checkout@v4 + - uses: actions/download-artifact@v3 - name: Display structure of downloaded files run: ls -R - run: find executed_* -type f -exec cat {} + | sort > executed