From dfdf445fe515032afe573302ccdf0aa9f9b51899 Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Mon, 13 Dec 2021 11:40:56 -0800 Subject: [PATCH] backpatch "Set application_name per-test in isolation and ecpg tests." We started to backpatch test infrastructure improvements more aggressively to make it easier to backpatch test. A proposed isolationtester improvement has a dependency on b1907d688, backpatch b1907d688 to make it easier to subsequently backpatch the new proposed isolationtester change. Discussion: https://postgr.es/m/861977.1639421872@sss.pgh.pa.us Backpatch: 10-12, the commit already is in 13-HEAD --- src/interfaces/ecpg/test/pg_regress_ecpg.c | 8 ++++++++ src/test/isolation/isolation_main.c | 7 +++++++ src/test/regress/pg_regress.c | 4 ++++ 3 files changed, 19 insertions(+) diff --git a/src/interfaces/ecpg/test/pg_regress_ecpg.c b/src/interfaces/ecpg/test/pg_regress_ecpg.c index a975a7e4e4e..adab643ce87 100644 --- a/src/interfaces/ecpg/test/pg_regress_ecpg.c +++ b/src/interfaces/ecpg/test/pg_regress_ecpg.c @@ -95,6 +95,7 @@ ecpg_start_test(const char *testname, expectfile_source[MAXPGPATH]; char cmd[MAXPGPATH * 3]; char *testname_dash; + char *appnameenv; snprintf(inprg, sizeof(inprg), "%s/%s", inputdir, testname); @@ -144,6 +145,9 @@ ecpg_start_test(const char *testname, outfile_stdout, outfile_stderr); + appnameenv = psprintf("PGAPPNAME=ecpg/%s", testname_dash); + putenv(appnameenv); + pid = spawn_process(cmd); if (pid == INVALID_PID) @@ -153,6 +157,10 @@ ecpg_start_test(const char *testname, exit(2); } + unsetenv("PGAPPNAME"); + free(appnameenv); + + free(testname_dash); free(outfile_stdout); free(outfile_stderr); free(outfile_source); diff --git a/src/test/isolation/isolation_main.c b/src/test/isolation/isolation_main.c index d3ada6d2bcf..df38a8d4f82 100644 --- a/src/test/isolation/isolation_main.c +++ b/src/test/isolation/isolation_main.c @@ -36,6 +36,7 @@ isolation_start_test(const char *testname, char expectfile[MAXPGPATH]; char psql_cmd[MAXPGPATH * 3]; size_t offset = 0; + char *appnameenv; /* need to do the path lookup here, check isolation_init() for details */ if (!looked_up_isolation_exec) @@ -97,6 +98,9 @@ isolation_start_test(const char *testname, exit(2); } + appnameenv = psprintf("PGAPPNAME=isolation/%s", testname); + putenv(appnameenv); + pid = spawn_process(psql_cmd); if (pid == INVALID_PID) @@ -106,6 +110,9 @@ isolation_start_test(const char *testname, exit(2); } + unsetenv("PGAPPNAME"); + free(appnameenv); + return pid; } diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c index 1e4015b072c..8b9a4aa4dec 100644 --- a/src/test/regress/pg_regress.c +++ b/src/test/regress/pg_regress.c @@ -724,6 +724,10 @@ doputenv(const char *var, const char *val) static void initialize_environment(void) { + /* + * Set default application_name. (The test_function may choose to + * override this, but if it doesn't, we have something useful in place.) + */ putenv("PGAPPNAME=pg_regress"); if (nolocale)