Reenable MIRI check (#421)
diff --git a/.github/workflows/miri.yaml b/.github/workflows/miri.yaml
new file mode 100644
index 0000000..b74170f
--- /dev/null
+++ b/.github/workflows/miri.yaml
@@ -0,0 +1,60 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: Rust
+
+on:
+ # always trigger
+ push:
+ pull_request:
+
+jobs:
+
+ miri-checks:
+ name: MIRI
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ arch: [amd64]
+ rust: [nightly-2021-03-24]
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ submodules: true
+ - uses: actions/cache@v2
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${{ runner.os }}-cargo-miri-${{ hashFiles('**/Cargo.lock') }}
+ - name: Setup Rust toolchain
+ run: |
+ rustup toolchain install ${{ matrix.rust }}
+ rustup default ${{ matrix.rust }}
+ rustup component add rustfmt clippy miri
+ - name: Run Miri Checks
+ env:
+ RUST_BACKTRACE: full
+ RUST_LOG: 'trace'
+ run: |
+ export MIRIFLAGS="-Zmiri-disable-isolation"
+ cargo miri setup
+ cargo clean
+ # Currently only the arrow crate is tested with miri
+ # IO related tests and some unsupported tests are skipped
+ cargo miri test -p arrow -- --skip csv --skip ipc --skip json || true
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 77c1f0f..34e0449 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -230,44 +230,6 @@
export CARGO_TARGET_DIR="/github/home/target"
cargo clippy --all-targets --workspace -- -D warnings -A clippy::redundant_field_names
- # MIRI checks are disabled until they runs cleanly:
- # https://github.com/apache/arrow-rs/issues/345
- #
- # miri-checks:
- # name: MIRI
- # runs-on: ubuntu-latest
- # strategy:
- # matrix:
- # arch: [amd64]
- # rust: [nightly-2021-03-24]
- # steps:
- # - uses: actions/checkout@v2
- # with:
- # submodules: true
- # - uses: actions/cache@v2
- # with:
- # path: |
- # ~/.cargo/registry
- # ~/.cargo/git
- # target
- # key: ${{ runner.os }}-cargo-miri-${{ hashFiles('**/Cargo.lock') }}
- # - name: Setup Rust toolchain
- # run: |
- # rustup toolchain install ${{ matrix.rust }}
- # rustup default ${{ matrix.rust }}
- # rustup component add rustfmt clippy miri
- # - name: Run Miri Checks
- # env:
- # RUST_BACKTRACE: full
- # RUST_LOG: 'trace'
- # run: |
- # export MIRIFLAGS="-Zmiri-disable-isolation"
- # cargo miri setup
- # cargo clean
- # # Currently only the arrow crate is tested with miri
- # # IO related tests and some unsupported tests are skipped
- # cargo miri test -p arrow -- --skip csv --skip ipc --skip json || true
-
lint:
name: Lint
runs-on: ubuntu-latest
diff --git a/arrow/src/compute/kernels/length.rs b/arrow/src/compute/kernels/length.rs
index 9f392e6..1f9b6e5 100644
--- a/arrow/src/compute/kernels/length.rs
+++ b/arrow/src/compute/kernels/length.rs
@@ -281,6 +281,7 @@
}
#[test]
+ #[cfg_attr(miri, ignore)] // error: this test uses too much memory to run on CI
fn bit_length_test_string() -> Result<()> {
bit_length_cases()
.into_iter()
@@ -297,6 +298,7 @@
}
#[test]
+ #[cfg_attr(miri, ignore)] // error: this test uses too much memory to run on CI
fn bit_length_test_large_string() -> Result<()> {
bit_length_cases()
.into_iter()