run some tests in validation mode

Signed-off-by: Alex Chi Z <chi@neon.tech>
This commit is contained in:
Alex Chi Z
2025-07-29 12:09:48 -04:00
parent f6b1891564
commit 7442d47c3e
2 changed files with 13 additions and 7 deletions

View File

@@ -518,6 +518,7 @@ impl Timeline {
}
// Pre-deserialize the rel directory to avoid duplicated work in `get_relsize_cached`.
// TODO: refactor this read path to use reldir v2.
let reldir_key = rel_dir_to_key(spcnode, dbnode);
let buf = version.get(self, reldir_key, ctx).await?;
let reldir = RelDirectory::des(&buf)?;
@@ -2425,9 +2426,9 @@ impl DatadirModification<'_> {
}
// It's possible that this is the first rel for this db in this
// tablespace. Create the reldir entry for it if so.
let mut dbdir = DbDirectory::des(&self.get(DBDIR_KEY, ctx).await?)?;
let mut dbdir: DbDirectory = DbDirectory::des(&self.get(DBDIR_KEY, ctx).await?)?;
let mut is_dbdir_dirty = false;
let dbdir_exists =
if let hash_map::Entry::Vacant(e) = dbdir.dbdirs.entry((rel.spcnode, rel.dbnode)) {
// Didn't exist. Update dbdir

View File

@@ -125,8 +125,13 @@ def patch_tenant_conf(tenant_conf: dict[str, Any], reldir_type: str) -> dict[str
if reldir_type == "v2":
tenant_conf["rel_size_v2_enabled"] = True
tenant_conf["rel_size_v1_access_disabled"] = True
else:
elif reldir_type == "v1v2":
tenant_conf["rel_size_v2_enabled"] = True
tenant_conf["rel_size_v1_access_disabled"] = False
elif reldir_type == "v1":
tenant_conf["rel_size_v2_enabled"] = False
else:
raise ValueError(f"Invalid reldir_type: {reldir_type}")
return tenant_conf
@@ -134,7 +139,7 @@ def patch_tenant_conf(tenant_conf: dict[str, Any], reldir_type: str) -> dict[str
#
@pytest.mark.timeout(3000) # Contains many sub-tests, is slow in debug builds
@pytest.mark.parametrize("shard_count", [None, 4])
@pytest.mark.parametrize("reldir_type", ["v1", "v2"])
@pytest.mark.parametrize("reldir_type", ["v1", "v1v2", "v2"])
def test_pg_regress(
neon_env_builder: NeonEnvBuilder,
test_output_dir: Path,
@@ -214,7 +219,7 @@ def test_pg_regress(
#
@pytest.mark.timeout(1500) # Contains many sub-tests, is slow in debug builds
@pytest.mark.parametrize("shard_count", [None, 4])
@pytest.mark.parametrize("reldir_type", ["v1", "v2"])
@pytest.mark.parametrize("reldir_type", ["v1", "v1v2", "v2"])
def test_isolation(
neon_env_builder: NeonEnvBuilder,
test_output_dir: Path,
@@ -294,7 +299,7 @@ def test_isolation(
# Run extra Neon-specific pg_regress-based tests. The tests and their
# schedule file are in the sql_regress/ directory.
@pytest.mark.parametrize("shard_count", [None, 4])
@pytest.mark.parametrize("reldir_type", ["v1", "v2"])
@pytest.mark.parametrize("reldir_type", ["v1", "v1v2", "v2"])
def test_sql_regress(
neon_env_builder: NeonEnvBuilder,
test_output_dir: Path,
@@ -417,7 +422,7 @@ def test_max_wal_rate(neon_simple_env: NeonEnv):
@skip_in_debug_build("only run with release build")
@pytest.mark.parametrize("reldir_type", ["v1", "v2"])
@pytest.mark.parametrize("reldir_type", ["v1", "v1v2", "v2"])
def test_tx_abort_with_many_relations(
neon_env_builder: NeonEnvBuilder,
reldir_type: str,