backpatch "Set application_name per-test in isolation and ecpg tests."
authorAndres Freund <[email protected]>
Mon, 13 Dec 2021 19:41:55 +0000 (11:41 -0800)
committerAndres Freund <[email protected]>
Mon, 13 Dec 2021 19:41:55 +0000 (11:41 -0800)
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
src/test/isolation/isolation_main.c
src/test/regress/pg_regress.c

index b6ecb618e6987cc2961d31ba883140de8e35007f..f4fc9915efe3ed6c92f206cd6d2e773b4364c8ac 100644 (file)
@@ -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);
index dcddfd8f6356c3c0a4779e79e01a456a3f8f842b..ec90387cc0388f5902c7504b1b2d08ccf59edf37 100644 (file)
@@ -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;
 }
 
index 682cea88e0906c386e5e0366afd8c43df041c21a..ef6c5a8ac66fbc354f9885e1308eb473ce33cdd0 100644 (file)
@@ -723,6 +723,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)