diff --git a/.github/workflows/test-ffi.yml b/.github/workflows/test-ffi.yml new file mode 100644 index 00000000..991a327b --- /dev/null +++ b/.github/workflows/test-ffi.yml @@ -0,0 +1,22 @@ +name: bindings/c-cpp + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Test FFI + run: | + cargo build -r + cargo clippy --all-targets --no-deps -- -Dwarnings + working-directory: ./bindings/ffi diff --git a/.github/workflows/test-java.yml b/.github/workflows/test-java.yml index 182287c0..56ff08fc 100644 --- a/.github/workflows/test-java.yml +++ b/.github/workflows/test-java.yml @@ -22,7 +22,9 @@ jobs: - uses: dtolnay/rust-toolchain@stable - name: Building binding - run: cargo build --release --manifest-path bindings/java/Cargo.toml + run: | + cargo clippy --all-targets --no-deps -- -Dwarnings + cargo build --release --manifest-path bindings/java/Cargo.toml - name: Build jar run: mvn package diff --git a/.github/workflows/test-python.yml b/.github/workflows/test-python.yml index 84a434d8..2581e140 100644 --- a/.github/workflows/test-python.yml +++ b/.github/workflows/test-python.yml @@ -34,4 +34,5 @@ jobs: run: | pip3 install dist/regorus-*.whl cd bindings/python + cargo clippy --all-targets --no-deps -- -Dwarnings python3 test.py diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml index 298e8bc0..2b7e3b76 100644 --- a/.github/workflows/test-ruby.yml +++ b/.github/workflows/test-ruby.yml @@ -27,4 +27,5 @@ jobs: - name: Run ruby tests run: | cd bindings/ruby + cargo clippy --all-targets --no-deps -- -Dwarnings bundle exec rake diff --git a/.github/workflows/test-wasm.yml b/.github/workflows/test-wasm.yml index 6127e905..9c2c4a36 100644 --- a/.github/workflows/test-wasm.yml +++ b/.github/workflows/test-wasm.yml @@ -26,6 +26,7 @@ jobs: - name: Test wasm binding run: | cd bindings/wasm + cargo clippy --all-targets --no-deps -- -Dwarnings wasm-pack build --target nodejs --release wasm-pack test --release --node node test.js diff --git a/bindings/ffi/src/lib.rs b/bindings/ffi/src/lib.rs index 0d42b49f..94b37e31 100644 --- a/bindings/ffi/src/lib.rs +++ b/bindings/ffi/src/lib.rs @@ -130,7 +130,7 @@ pub extern "C" fn regorus_engine_clone(engine: *mut RegorusEngine) -> *mut Regor #[no_mangle] pub extern "C" fn regorus_engine_drop(engine: *mut RegorusEngine) { - if let Ok(ref mut e) = to_ref(&engine) { + if let Ok(e) = to_ref(&engine) { unsafe { let _ = Box::from_raw(e); } diff --git a/bindings/python/src/lib.rs b/bindings/python/src/lib.rs index 4fbd98f9..0766633f 100644 --- a/bindings/python/src/lib.rs +++ b/bindings/python/src/lib.rs @@ -317,7 +317,7 @@ impl Engine { serde_json::to_string_pretty(&report).map_err(|e| anyhow!("{e}")) } - // Get coverage report as pretty printable string. + /// Get coverage report as pretty printable string. /// pub fn get_coverage_report_pretty(&self) -> Result { self.engine.get_coverage_report()?.to_string_pretty() diff --git a/bindings/ruby/ext/regorusrb/src/lib.rs b/bindings/ruby/ext/regorusrb/src/lib.rs index 6888e489..27dfcb36 100644 --- a/bindings/ruby/ext/regorusrb/src/lib.rs +++ b/bindings/ruby/ext/regorusrb/src/lib.rs @@ -72,7 +72,7 @@ impl Engine { } fn add_data_from_json_file(&self, path: String) -> Result<(), Error> { - let json_data = regorus::Value::from_json_file(&path).map_err(|e| { + let json_data = regorus::Value::from_json_file(path).map_err(|e| { Error::new( runtime_error(), format!("Failed to parse JSON data file: {}", e), @@ -112,7 +112,7 @@ impl Engine { } fn add_input_from_json_file(&self, path: String) -> Result<(), Error> { - let json_data = regorus::Value::from_json_file(&path).map_err(|e| { + let json_data = regorus::Value::from_json_file(path).map_err(|e| { Error::new( runtime_error(), format!("Failed to parse JSON input file: {}", e), @@ -193,7 +193,8 @@ impl Engine { } fn set_enable_coverage(&self, enable: bool) -> Result<(), Error> { - Ok(self.engine.borrow_mut().set_enable_coverage(enable)) + self.engine.borrow_mut().set_enable_coverage(enable); + Ok(()) } fn get_coverage_report_as_json(&self) -> Result { @@ -237,12 +238,14 @@ impl Engine { } fn clear_coverage_data(&self) -> Result<(), Error> { - Ok(self.engine.borrow_mut().clear_coverage_data()) + self.engine.borrow_mut().clear_coverage_data(); + Ok(()) } // Print statements can be gathered async instead of printing to stderr fn set_gather_prints(&self, enable: bool) -> Result<(), Error> { - Ok(self.engine.borrow_mut().set_gather_prints(enable)) + self.engine.borrow_mut().set_gather_prints(enable); + Ok(()) } fn take_prints(&self) -> Result, Error> {