From 6a57d5bbf96e7577b28a5b5c5ef0d458c0abcd5c Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Tue, 6 Dec 2022 20:51:46 +0200 Subject: [PATCH] Make the request tracing test more useful --- .../{performance => regress}/test_read_trace.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) rename test_runner/{performance => regress}/test_read_trace.py (60%) diff --git a/test_runner/performance/test_read_trace.py b/test_runner/regress/test_read_trace.py similarity index 60% rename from test_runner/performance/test_read_trace.py rename to test_runner/regress/test_read_trace.py index a5bd0b8de6..1b00b272c2 100644 --- a/test_runner/performance/test_read_trace.py +++ b/test_runner/regress/test_read_trace.py @@ -1,10 +1,14 @@ from contextlib import closing -from fixtures.neon_fixtures import NeonEnvBuilder +from fixtures.neon_fixtures import NeonEnvBuilder, wait_for_last_record_lsn +from fixtures.types import Lsn, TenantId, TimelineId +from fixtures.utils import query_scalar # This test demonstrates how to collect a read trace. It's useful until # it gets replaced by a test that actually does stuff with the trace. +# +# Additionally, tests that pageserver is able to create tenants with custom configs. def test_read_request_tracing(neon_env_builder: NeonEnvBuilder): neon_env_builder.num_safekeepers = 1 env = neon_env_builder.init_start() @@ -23,6 +27,12 @@ def test_read_request_tracing(neon_env_builder: NeonEnvBuilder): cur.execute("create table t (i integer);") cur.execute(f"insert into t values (generate_series(1,{10000}));") cur.execute("select count(*) from t;") + tenant_id = TenantId(pg.safe_psql("show neon.tenant_id")[0][0]) + timeline_id = TimelineId(pg.safe_psql("show neon.timeline_id")[0][0]) + current_lsn = Lsn(query_scalar(cur, "SELECT pg_current_wal_flush_lsn()")) + # wait until pageserver receives that data + pageserver_http = env.pageserver.http_client() + wait_for_last_record_lsn(pageserver_http, tenant_id, timeline_id, current_lsn) # Stop pg so we drop the connection and flush the traces pg.stop()