-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
✨0.8.0
- Loading branch information
Showing
289 changed files
with
30,529 additions
and
40,561 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
name: "Setup AFL" | ||
|
||
runs: | ||
using: "composite" | ||
steps: | ||
# Install AFL using Cargo | ||
- name: Install AFL | ||
run: cargo install cargo-afl --version ${{ env.AFL_VERSION }} # Install the specified version of AFL via Cargo | ||
shell: bash |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,16 @@ | ||
name: "Setup Honggfuzz" | ||
description: "Setup Honggfuzz" | ||
|
||
runs: | ||
using: "composite" | ||
steps: | ||
- uses: actions/cache@v3 | ||
name: Cache Honggfuzz | ||
id: cache-honggfuzz | ||
with: | ||
path: | | ||
~/.cache/honggfuzz/ | ||
~/.local/share/honggfuzz/ | ||
key: honggfuzz-${{ runner.os }}-v0000-${{ env.HONGGFUZZ_VERSION }} | ||
- name: Install honggfuzz | ||
run: cargo install honggfuzz --version ${{ env.HONGGFUZZ_VERSION }} | ||
# Install system dependencies required by Honggfuzz | ||
- name: Install Dependencies (binutils-dev & libunwind-dev) | ||
run: | | ||
sudo apt-get update # Update the system package lists | ||
sudo apt-get install -y binutils-dev libunwind-dev # Install binutils-dev and libunwind-dev, which are required for fuzzing | ||
shell: bash | ||
- name: Install binutils-dev | ||
run: sudo apt-get install binutils-dev | ||
shell: bash | ||
- name: Install libunwind-dev | ||
run: sudo apt-get install libunwind-dev | ||
|
||
# Install Honggfuzz using Cargo | ||
- name: Install Honggfuzz | ||
run: cargo install honggfuzz --version ${{ env.HONGGFUZZ_VERSION }} # Install the specified version of Honggfuzz via Cargo | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,23 @@ | ||
name: "Setup Rust" | ||
description: "Setup Rust" | ||
|
||
outputs: | ||
rustc-hash: | ||
description: "Hash of the rustc version" | ||
value: ${{ steps.rust-version.outputs.RUSTC_HASH }} | ||
|
||
runs: | ||
using: "composite" | ||
steps: | ||
# Install essential system packages required for building Rust projects | ||
- name: Install system packages | ||
run: sudo apt-fast update && sudo apt-fast install -y build-essential libudev-dev | ||
run: sudo apt-get update && sudo apt-get install -y build-essential libudev-dev # Installs essential packages like GCC and libudev development headers | ||
shell: bash | ||
- name: Install Rust nightly | ||
|
||
# Install Rust nightly toolchain and additional components | ||
# Ensure rustfmt and clippy are installed for the nightly toolchain as well | ||
- name: Install Rust Toolchain Components | ||
run: | | ||
rustup default nightly | ||
rustup install nightly | ||
rustup component add rustfmt clippy | ||
rustup component add rustfmt clippy --toolchain nightly | ||
shell: bash | ||
|
||
# Install Cargo Expand for expanding macros in Rust, useful for debugging macro-generated code | ||
- name: Install Cargo Expand | ||
run: cargo install --locked cargo-expand | ||
shell: bash | ||
- name: Get rustc version | ||
id: rust-version | ||
run: echo "::set-output name=RUSTC_HASH::$(rustc -V | cut -d " " -f 3 | tail -c +2)" | ||
run: cargo install --locked cargo-expand # Installs the cargo-expand tool, using --locked to ensure exact versions from Cargo.lock are used | ||
shell: bash |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,10 @@ | ||
name: "Setup Trident" | ||
description: "Setup Trident" | ||
|
||
runs: | ||
# This setup does not use caching, so it always installs Trident fresh | ||
using: "composite" | ||
steps: | ||
- uses: actions/cache@v3 | ||
name: Cache Trident | ||
id: cache-trident | ||
with: | ||
path: | | ||
~/.cache/trident/ | ||
~/.local/share/trident/ | ||
key: trident-${{ runner.os }}-v0000 | ||
# Install Trident from the local crates/cli directory | ||
- name: Install Trident | ||
run: cargo install --path crates/cli | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,6 @@ on: | |
push: | ||
branches: | ||
- develop | ||
- master | ||
|
||
jobs: | ||
build: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,159 @@ | ||
name: Test Fuzz Tests | ||
|
||
on: | ||
workflow_dispatch: | ||
pull_request: # Workflow can be triggered by either a manual dispatch or a pull request | ||
|
||
env: | ||
HONGGFUZZ_VERSION: 0.5.56 # Honggfuzz version to install in the environment | ||
AFL_VERSION: 0.15.10 # AFL version to install in the environment | ||
|
||
|
||
jobs: | ||
Fuzz-Tests: | ||
name: Fuzz Tests | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- run: echo "Starting Fuzz Tests" | ||
|
||
simple-cpi-6: | ||
name: Fuzz Tests (simple-cpi-6) | ||
needs: Fuzz-Tests | ||
# Runs on an Ubuntu 20.04 runner | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- uses: actions/checkout@v3 | ||
name: Checkout Repository # Checkout the repository to get access to the project files | ||
|
||
# https://github.com/Swatinem/rust-cache | ||
- name: Cache Rust and its Packages | ||
# Caches Rust dependencies to avoid redundant downloads and speed up builds | ||
uses: Swatinem/rust-cache@v2 | ||
with: | ||
prefix-key: "fuzz" | ||
shared-key: "trident-rust-cache" # Using a shared cache key for multiple jobs | ||
|
||
- name: Setup Rust Environment | ||
# Sets up the Rust environment (e.g., installing Rust and required components) | ||
uses: ./.github/actions/setup-rust/ | ||
|
||
- name: Install Trident | ||
# Sets up the Trident | ||
uses: ./.github/actions/setup-trident/ | ||
|
||
- name: Setup AFL | ||
# Sets up AFL, a fuzzing tool that will be used by Trident | ||
uses: ./.github/actions/setup-afl/ | ||
|
||
- name: Setup Honggfuzz | ||
# Sets up Honggfuzz, a fuzzing tool that will be used by Trident | ||
uses: ./.github/actions/setup-honggfuzz/ | ||
|
||
# Cache the target folder, which stores the build artifacts generated by the fuzzing process | ||
- name: Cache Target Folder | ||
uses: actions/cache@v3 | ||
with: | ||
path: examples/fuzz-tests/simple-cpi-6/trident-tests/fuzz_tests/fuzzing/honggfuzz/hfuzz_target # Cache the folder where build artifacts are stored | ||
key: target-${{ runner.os }}-simple-cpi-6 # Unique key for caching based on OS and test | ||
|
||
# Run the fuzzing test using Trident in the simple-cpi-6 directory | ||
- name: Test Fuzz | ||
working-directory: examples/fuzz-tests/simple-cpi-6 # Set the working directory for the fuzzing test | ||
run: trident fuzz run-hfuzz fuzz_0 # Run the fuzz test with trident | ||
|
||
arbitrary-limit-inputs-5: | ||
name: Fuzz Tests (arbitrary-limit-inputs-5) | ||
needs: Fuzz-Tests | ||
# Runs on an Ubuntu 20.04 runner for a different fuzz test | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- uses: actions/checkout@v3 | ||
name: Checkout Repository # Checkout the repository | ||
|
||
# https://github.com/Swatinem/rust-cache | ||
- name: Cache Rust and its Packages | ||
# Caches Rust dependencies to avoid redundant downloads and speed up builds | ||
uses: Swatinem/rust-cache@v2 | ||
with: | ||
prefix-key: "fuzz" # Using a locally shared cache key | ||
shared-key: "trident-rust-cache" # Using a shared cache key for multiple jobs | ||
|
||
- name: Setup Rust Environment | ||
# Sets up the Rust environment (e.g., installing Rust and required components) | ||
uses: ./.github/actions/setup-rust/ | ||
|
||
- name: Install Trident | ||
# Sets up the Trident | ||
uses: ./.github/actions/setup-trident/ | ||
|
||
- name: Setup AFL | ||
# Sets up AFL, a fuzzing tool that will be used by Trident | ||
uses: ./.github/actions/setup-afl/ | ||
|
||
- name: Setup Honggfuzz | ||
# Sets up Honggfuzz, a fuzzing tool that will be used by Trident | ||
uses: ./.github/actions/setup-honggfuzz/ | ||
|
||
# Cache the target folder, which stores the build artifacts generated by the fuzzing process | ||
- name: Cache Target Folder | ||
uses: actions/cache@v3 | ||
with: | ||
path: examples/fuzz-tests/arbitrary-limit-inputs-5/trident-tests/fuzz_tests/fuzzing/honggfuzz/hfuzz_target # Cache the folder where build artifacts are stored | ||
key: target-${{ runner.os }}-arbitrary-limit-inputs-5 # Unique key for caching based on OS and test | ||
|
||
# Run the fuzzing test using Trident in the arbitrary-limit-inputs-5 directory | ||
- name: Test Fuzz | ||
working-directory: examples/fuzz-tests/arbitrary-limit-inputs-5 # Set the working directory for the fuzzing test | ||
run: trident fuzz run-hfuzz fuzz_0 # Run the fuzz test with trident | ||
|
||
cpi-metaplex-7: | ||
name: Fuzz Tests (cpi-metaplex-7) | ||
needs: Fuzz-Tests | ||
# Runs on an Ubuntu 20.04 runner for a different fuzz test | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- uses: actions/checkout@v3 | ||
name: Checkout Repository # Checkout the repository | ||
|
||
# https://github.com/Swatinem/rust-cache | ||
- name: Cache Rust and its Packages | ||
# Caches Rust dependencies to avoid redundant downloads and speed up builds | ||
uses: Swatinem/rust-cache@v2 | ||
with: | ||
prefix-key: "fuzz" # Using a locally shared cache key | ||
shared-key: "trident-rust-cache" # Using a shared cache key for multiple jobs | ||
|
||
- name: Setup Rust Environment | ||
# Sets up the Rust environment (e.g., installing Rust and required components) | ||
uses: ./.github/actions/setup-rust/ | ||
|
||
- name: Install Trident | ||
# Sets up the Trident | ||
uses: ./.github/actions/setup-trident/ | ||
|
||
- name: Setup AFL | ||
# Sets up AFL, a fuzzing tool that will be used by Trident | ||
uses: ./.github/actions/setup-afl/ | ||
|
||
- name: Setup Honggfuzz | ||
# Sets up Honggfuzz, a fuzzing tool that will be used by Trident | ||
uses: ./.github/actions/setup-honggfuzz/ | ||
|
||
# Cache the target folder, which stores the build artifacts generated by the fuzzing process | ||
- name: Cache Target Folder | ||
uses: actions/cache@v3 | ||
with: | ||
path: examples/fuzz-tests/cpi-metaplex-7/trident-tests/fuzz_tests/fuzzing/honggfuzz/hfuzz_target # Cache the folder where build artifacts are stored | ||
key: target-${{ runner.os }}-cpi-metaplex-7 # Unique key for caching based on OS and test | ||
|
||
# Run the fuzzing test using Trident in the cpi-metaplex-7 directory | ||
- name: Test Fuzz | ||
working-directory: examples/fuzz-tests/cpi-metaplex-7 # Set the working directory for the fuzzing test | ||
run: trident fuzz run-hfuzz fuzz_0 # Run the fuzz test with trident | ||
|
||
checks: | ||
name: Fuzz Tests (Checks) | ||
needs: [simple-cpi-6, arbitrary-limit-inputs-5,cpi-metaplex-7] | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- run: echo "All fuzz tests completed successfully" |
Oops, something went wrong.