mirror of
https://github.com/neondatabase/neon.git
synced 2025-12-26 07:39:58 +00:00
Miscellaneous fixes for tests-related things (#5259)
## Problem A bunch of fixes for different test-related things ## Summary of changes - Fix test_runner/pg_clients (`subprocess_capture` return value has changed) - Do not run create-test-report if check-permissions failed for not cancelled jobs - Fix Code Coverage comment layout after flaky tests. Add another healing "\n" - test_compatibility: add an instruction for local run Co-authored-by: Joonas Koivunen <joonas@neon.tech>
This commit is contained in:
committed by
GitHub
parent
7b6337db58
commit
028fbae161
2
.github/workflows/build_and_test.yml
vendored
2
.github/workflows/build_and_test.yml
vendored
@@ -444,7 +444,7 @@ jobs:
|
|||||||
|
|
||||||
create-test-report:
|
create-test-report:
|
||||||
needs: [ check-permissions, regress-tests, coverage-report, benchmarks ]
|
needs: [ check-permissions, regress-tests, coverage-report, benchmarks ]
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() && contains(fromJSON('["skipped", "success"]'), needs.check-permissions.result) }}
|
||||||
|
|
||||||
runs-on: [ self-hosted, gen3, small ]
|
runs-on: [ self-hosted, gen3, small ]
|
||||||
container:
|
container:
|
||||||
|
|||||||
@@ -268,7 +268,7 @@ module.exports = async ({ github, context, fetch, report, coverage }) => {
|
|||||||
commentBody += "```\n"
|
commentBody += "```\n"
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
commentBody += `#### Test coverage report is not avaibale\n`
|
commentBody += `\n#### Test coverage report is not available\n`
|
||||||
}
|
}
|
||||||
|
|
||||||
commentBody += autoupdateNotice
|
commentBody += autoupdateNotice
|
||||||
|
|||||||
@@ -48,6 +48,6 @@ def test_pg_clients(test_output_dir: Path, remote_pg: RemotePostgres, client: st
|
|||||||
subprocess_capture(test_output_dir, build_cmd, check=True)
|
subprocess_capture(test_output_dir, build_cmd, check=True)
|
||||||
|
|
||||||
run_cmd = [docker_bin, "run", "--rm", "--env-file", env_file, image_tag]
|
run_cmd = [docker_bin, "run", "--rm", "--env-file", env_file, image_tag]
|
||||||
basepath = subprocess_capture(test_output_dir, run_cmd, check=True)
|
basepath, _, _ = subprocess_capture(test_output_dir, run_cmd, check=True)
|
||||||
|
|
||||||
assert Path(f"{basepath}.stdout").read_text().strip() == "1"
|
assert Path(f"{basepath}.stdout").read_text().strip() == "1"
|
||||||
|
|||||||
@@ -40,6 +40,54 @@ from pytest import FixtureRequest
|
|||||||
# - prepare_snapshot copies the snapshot, cleans it up and makes it ready for the current version of Neon (replaces paths and ports in config files).
|
# - prepare_snapshot copies the snapshot, cleans it up and makes it ready for the current version of Neon (replaces paths and ports in config files).
|
||||||
# - check_neon_works performs the test itself, feel free to add more checks there.
|
# - check_neon_works performs the test itself, feel free to add more checks there.
|
||||||
#
|
#
|
||||||
|
#
|
||||||
|
# How to run `test_backward_compatibility` locally:
|
||||||
|
#
|
||||||
|
# export DEFAULT_PG_VERSION=15
|
||||||
|
# export BUILD_TYPE=release
|
||||||
|
# export CHECK_ONDISK_DATA_COMPATIBILITY=true
|
||||||
|
#
|
||||||
|
# # Build previous version of binaries and create a data snapshot:
|
||||||
|
# rm -rf pg_install target
|
||||||
|
# git checkout <previous version>
|
||||||
|
# CARGO_BUILD_FLAGS="--features=testing" make -s -j`nproc`
|
||||||
|
# ./scripts/pytest -k test_create_snapshot
|
||||||
|
#
|
||||||
|
# # Build current version of binaries
|
||||||
|
# rm -rf pg_install target
|
||||||
|
# git checkout <current version>
|
||||||
|
# CARGO_BUILD_FLAGS="--features=testing" make -s -j`nproc`
|
||||||
|
#
|
||||||
|
# # Run backward compatibility test
|
||||||
|
# COMPATIBILITY_SNAPSHOT_DIR=test_output/compatibility_snapshot_pgv${DEFAULT_PG_VERSION} \
|
||||||
|
# ./scripts/pytest -k test_backward_compatibility
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# How to run `test_forward_compatibility` locally:
|
||||||
|
#
|
||||||
|
# export DEFAULT_PG_VERSION=15
|
||||||
|
# export BUILD_TYPE=release
|
||||||
|
# export CHECK_ONDISK_DATA_COMPATIBILITY=true
|
||||||
|
#
|
||||||
|
# # Build previous version of binaries and store them somewhere:
|
||||||
|
# rm -rf pg_install target
|
||||||
|
# git checkout <previous version>
|
||||||
|
# CARGO_BUILD_FLAGS="--features=testing" make -s -j`nproc`
|
||||||
|
# mkdir -p neon_previous/target
|
||||||
|
# cp -a target/${BUILD_TYPE} ./neon_previous/target/${BUILD_TYPE}
|
||||||
|
# cp -a pg_install ./neon_previous/pg_install
|
||||||
|
#
|
||||||
|
# # Build current version of binaries and create a data snapshot:
|
||||||
|
# rm -rf pg_install target
|
||||||
|
# git checkout <current version>
|
||||||
|
# CARGO_BUILD_FLAGS="--features=testing" make -s -j`nproc`
|
||||||
|
# ./scripts/pytest -k test_create_snapshot
|
||||||
|
#
|
||||||
|
# # Run forward compatibility test
|
||||||
|
# COMPATIBILITY_NEON_BIN=neon_previous/target/${BUILD_TYPE} \
|
||||||
|
# COMPATIBILITY_POSTGRES_DISTRIB_DIR=neon_previous/pg_install \
|
||||||
|
# ./scripts/pytest -k test_forward_compatibility
|
||||||
|
#
|
||||||
|
|
||||||
check_ondisk_data_compatibility_if_enabled = pytest.mark.skipif(
|
check_ondisk_data_compatibility_if_enabled = pytest.mark.skipif(
|
||||||
os.environ.get("CHECK_ONDISK_DATA_COMPATIBILITY") is None,
|
os.environ.get("CHECK_ONDISK_DATA_COMPATIBILITY") is None,
|
||||||
|
|||||||
Reference in New Issue
Block a user