mirror of
https://github.com/neondatabase/neon.git
synced 2026-05-25 09:00:37 +00:00
* Add test for restore from WAL * Fix python formatting * Choose unused port in wal restore test * Move recovery tests to zenith_utils/scripts * Set LD_LIBRARY_PATH in wal recovery scripts * Fix python test formatting * Fix mypy warning * Bump postgres version * Bump postgres version
39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
import os
|
|
import subprocess
|
|
|
|
from fixtures.utils import mkdir_if_needed
|
|
from fixtures.zenith_fixtures import (ZenithEnvBuilder,
|
|
VanillaPostgres,
|
|
PortDistributor,
|
|
PgBin,
|
|
base_dir,
|
|
vanilla_pg,
|
|
pg_distrib_dir)
|
|
from fixtures.log_helper import log
|
|
|
|
|
|
def test_wal_restore(zenith_env_builder: ZenithEnvBuilder,
|
|
test_output_dir,
|
|
port_distributor: PortDistributor):
|
|
zenith_env_builder.num_safekeepers = 1
|
|
env = zenith_env_builder.init_start()
|
|
env.zenith_cli.create_branch("test_wal_restore")
|
|
pg = env.postgres.create_start('test_wal_restore')
|
|
pg.safe_psql("create table t as select generate_series(1,1000000)")
|
|
tenant_id = pg.safe_psql("show zenith.zenith_tenant")[0][0]
|
|
env.zenith_cli.pageserver_stop()
|
|
port = port_distributor.get_port()
|
|
data_dir = os.path.join(test_output_dir, 'pgsql.restored')
|
|
restored = VanillaPostgres(data_dir, PgBin(test_output_dir), port)
|
|
subprocess.call([
|
|
'bash',
|
|
os.path.join(base_dir, 'zenith_utils/scripts/restore_from_wal.sh'),
|
|
os.path.join(pg_distrib_dir, 'bin'),
|
|
os.path.join(test_output_dir, 'repo/safekeepers/sk1/{}/*'.format(tenant_id)),
|
|
data_dir,
|
|
str(port)
|
|
])
|
|
restored.start()
|
|
assert restored.safe_psql('select count(*) from t') == [(1000000, )]
|
|
restored.stop()
|