diff --git a/.github/actions/cross-tests/action.yml b/.github/actions/cross-tests/action.yml deleted file mode 100644 index dc89526..0000000 --- a/.github/actions/cross-tests/action.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: "cross-tests" - -inputs: - rust: - required: true - package: - required: true - target: - required: true - features: - required: true - -runs: - using: "composite" - steps: - - uses: actions/checkout@v3 - - uses: RustCrypto/actions/cargo-cache@master - - uses: dtolnay/rust-toolchain@master - with: - toolchain: ${{ inputs.rust }} - targets: ${{ inputs.target }} - - uses: RustCrypto/actions/cross-install@master - - if: ${{ inputs.features != 'NO_FEATURE' }} - run: | - cd ${{ inputs.package }} - cross test --target ${{ inputs.target }} --no-default-features \ - --features ${{ inputs.features }} - shell: bash - - if: ${{ inputs.features == 'NO_FEATURE' }} - run: | - cd ${{ inputs.package }} - cross test --target ${{ inputs.target }} --no-default-features - shell: bash diff --git a/.github/workflows/ascon.yml b/.github/workflows/ascon.yml index d840f90..9950ff9 100644 --- a/.github/workflows/ascon.yml +++ b/.github/workflows/ascon.yml @@ -65,3 +65,28 @@ jobs: - run: cargo test --no-default-features - run: cargo test - run: cargo test --all-features + + miri: + runs-on: ubuntu-latest + env: + MIRIFLAGS: "-Zmiri-symbolic-alignment-check -Zmiri-strict-provenance" + strategy: + matrix: + target: + - x86_64-unknown-linux-gnu + - s390x-unknown-linux-gnu + steps: + - uses: actions/checkout@v4 + - uses: RustCrypto/actions/cargo-cache@master + - uses: dtolnay/rust-toolchain@master + with: + toolchain: nightly + - name: Install Miri + run: | + rustup component add miri + cargo miri setup + - name: Test with Miri + run: | + cargo miri test --target ${{ matrix.target }} --no-default-features + cargo miri test --target ${{ matrix.target }} + cargo miri test --target ${{ matrix.target }} --all-features diff --git a/.github/workflows/keccak.yml b/.github/workflows/keccak.yml index 9f9dc7f..80081db 100644 --- a/.github/workflows/keccak.yml +++ b/.github/workflows/keccak.yml @@ -80,36 +80,30 @@ jobs: - run: cargo check --features simd - run: cargo test --features simd - # Cross-compiled tests - cross: - needs: set-msrv + miri: + runs-on: ubuntu-latest + env: + MIRIFLAGS: "-Zmiri-symbolic-alignment-check -Zmiri-strict-provenance" strategy: matrix: - rust: - - ${{needs.set-msrv.outputs.msrv}} - - stable target: - - i686-unknown-linux-gnu - x86_64-unknown-linux-gnu - - aarch64-unknown-linux-gnu - - powerpc-unknown-linux-gnu - features: - - no_unroll - - 'NO_FEATURE' - - runs-on: ubuntu-latest - defaults: - run: - # Cross mounts only current package, i.e. by default it ignores workspace's Cargo.toml - working-directory: . + - s390x-unknown-linux-gnu steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/cross-tests + - uses: dtolnay/rust-toolchain@master with: - rust: ${{ matrix.rust }} - package: ${{ github.workflow }} - target: ${{ matrix.target }} - features: ${{ matrix.features }} + toolchain: nightly + - name: Install Miri + run: | + rustup component add miri + cargo miri setup + - name: Test with Miri + run: | + cargo miri test --target ${{ matrix.target }} --no-default-features + cargo miri test --target ${{ matrix.target }} + cargo miri test --target ${{ matrix.target }} --features no_unroll + cargo miri test --target ${{ matrix.target }} --features simd aarch64-sha3: needs: set-msrv