diff --git a/.github/workflows/unit-test-rust.yaml b/.github/workflows/unit-test-rust.yaml new file mode 100644 index 0000000000..b8f24a5aed --- /dev/null +++ b/.github/workflows/unit-test-rust.yaml @@ -0,0 +1,51 @@ +# +# Copyright (C) 2019-2024 vdaas.org vald team +# +# Licensed 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 +# +# https://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: "Run unit tests (Rust)" +on: + push: + branches: + - main + - "release/v*.*" + - "!release/v*.*.*" + paths: + - ".github/workflows/test.yaml" + - "rust/**" + pull_request: + paths: + - ".github/workflows/test.yaml" + - "rust/**" +jobs: + dump-contexts-to-log: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/dump-context + detect-ci-container: + uses: ./.github/workflows/_detect-ci-container.yaml + test-rust-qbg: + name: Run tests for Rust + runs-on: ubuntu-latest + needs: [detect-ci-container] + container: + image: ghcr.io/vdaas/vald/vald-ci-container:${{ needs.detect-ci-container.outputs.TAG }} + steps: + - uses: actions/checkout@v4 + - name: Set Git config + run: | + git config --global --add safe.directory ${GITHUB_WORKSPACE} + - name: Run tests for Rust / gotestfmt + run: | + TEST_RESULT_DIR=${GITHUB_WORKSPACE} make test/rust/qbg \ No newline at end of file diff --git a/Makefile.d/test.mk b/Makefile.d/test.mk index 511c7e0fa5..888bf3ba36 100644 --- a/Makefile.d/test.mk +++ b/Makefile.d/test.mk @@ -284,6 +284,16 @@ test/cmd: CGO_LDFLAGS="$(CGO_LDFLAGS)" \ go test -short -shuffle=on -race -mod=readonly -cover $(ROOTDIR)/cmd/... +.PHONY: test/rust/qbg +## run tests for qbg +test/rust/qbg: + cargo test --manifest-path rust/Cargo.toml --package qbg --lib -- tests::test_ffi_qbg --exact --show-output + cargo test --manifest-path rust/Cargo.toml --package qbg --lib -- tests::test_ffi_qbg_prebuilt --exact --show-output + rm -rf rust/libs/algorithms/qbg/index/ + cargo test --manifest-path rust/Cargo.toml --package qbg --lib -- tests::test_property --exact --show-output + cargo test --manifest-path rust/Cargo.toml --package qbg --lib -- tests::test_index --exact --show-output + rm -rf rust/libs/algorithms/qbg/index/ + .PHONY: test/hack ## run tests for hack test/hack: