From ccd2de94cc7f098d374c3570db2f36ab9cc91942 Mon Sep 17 00:00:00 2001 From: Alexander Bayandin Date: Fri, 12 Jan 2024 10:44:38 +0000 Subject: [PATCH] CI: run tests with both Pageserver VirtualFile IO engines --- .github/workflows/build_and_test.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 880d6044f2be..fc622827a98a 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -341,7 +341,9 @@ jobs: - name: Run rust tests run: | - ${cov_prefix} cargo nextest run $CARGO_FLAGS $CARGO_FEATURES + for io_engine in std-fs tokio-epoll-uring ; do + NEON_PAGESERVER_UNIT_TEST_VIRTUAL_FILE_IOENGINE=$io_engine ${cov_prefix} cargo nextest run $CARGO_FLAGS $CARGO_FEATURES + done # Run separate tests for real S3 export ENABLE_REAL_S3_REMOTE_STORAGE=nonempty @@ -426,6 +428,7 @@ jobs: matrix: build_type: [ debug, release ] pg_version: [ v14, v15, v16 ] + pageserver_virtual_file_io_engine: [ std-fs, tokio-epoll-uring ] steps: - name: Checkout uses: actions/checkout@v3 @@ -448,6 +451,7 @@ jobs: TEST_RESULT_CONNSTR: ${{ secrets.REGRESS_TEST_RESULT_CONNSTR_NEW }} CHECK_ONDISK_DATA_COMPATIBILITY: nonempty BUILD_TAG: ${{ needs.tag.outputs.build-tag }} + PAGESERVER_VIRTUAL_FILE_IO_ENGINE: ${{ matrix.pageserver_virtual_file_io_engine }} - name: Merge and upload coverage data if: matrix.build_type == 'debug' && matrix.pg_version == 'v14' @@ -466,6 +470,7 @@ jobs: matrix: pytest_split_group: [ 1, 2, 3, 4 ] build_type: [ release ] + pageserver_virtual_file_io_engine: [ std-fs, tokio-epoll-uring ] steps: - name: Checkout uses: actions/checkout@v3 @@ -482,6 +487,7 @@ jobs: VIP_VAP_ACCESS_TOKEN: "${{ secrets.VIP_VAP_ACCESS_TOKEN }}" PERF_TEST_RESULT_CONNSTR: "${{ secrets.PERF_TEST_RESULT_CONNSTR }}" TEST_RESULT_CONNSTR: "${{ secrets.REGRESS_TEST_RESULT_CONNSTR_NEW }}" + PAGESERVER_VIRTUAL_FILE_IO_ENGINE: "${{ matrix.pageserver_virtual_file_io_engine }}" # XXX: no coverage data handling here, since benchmarks are run on release builds, # while coverage is currently collected for the debug ones