From b1907d6882205319822c7452ce6b5e71ee2867be Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 27 Aug 2019 19:49:09 -0400 Subject: [PATCH] Set application_name per-test in isolation and ecpg tests. Commit a4327296d taught pg_regress proper to do this, but missed the opportunity to do likewise in the isolationtester and ecpg variants of pg_regress. Seems like this might be helpful for tracking down issues exposed by those tests. --- 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 066dbcc897..75345f1f3b 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 294bf30470..b9e2533772 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 117a9544ea..b4045abf21 100644 --- a/src/test/regress/pg_regress.c +++ b/src/test/regress/pg_regress.c @@ -726,6 +726,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) -- 2.40.0