diff --git a/src/gallium/auxiliary/os/os_process.h b/src/gallium/auxiliary/os/os_process.h index 35a80c31129..99052cd820e 100644 --- a/src/gallium/auxiliary/os/os_process.h +++ b/src/gallium/auxiliary/os/os_process.h @@ -30,14 +30,27 @@ #define OS_PROCESS_H #include +#include +#include "util/u_debug.h" #include "util/u_process.h" static inline bool os_get_process_name(char *str, size_t size) { - return util_get_process_name_may_override("GALLIUM_PROCESS_NAME", str, size); + const char *process_name = debug_get_option("GALLIUM_PROCESS_NAME", + util_get_process_name()); + if (!process_name) + return false; + + assert(str); + assert(size); + + size_t len = strnlen(process_name, size - 1); + memcpy(str, process_name, len); + str[len] = '\0'; + return true; } diff --git a/src/util/meson.build b/src/util/meson.build index 5b5cd67bb01..01d489b3813 100644 --- a/src/util/meson.build +++ b/src/util/meson.build @@ -410,6 +410,16 @@ if with_tests env: ['BUILD_FULL_PATH='+process_test_exe_full_path] ) + test( + 'process_with_overrides', + process_test_exe, + suite : ['util'], + env: [ + 'BUILD_FULL_PATH='+process_test_exe_full_path, + 'MESA_PROCESS_NAME=hello', + ] + ) + subdir('tests/hash_table') subdir('tests/vma') subdir('tests/format') diff --git a/src/util/tests/process_test.c b/src/util/tests/process_test.c index b4f42d570e8..4a7c7cbd4e3 100644 --- a/src/util/tests/process_test.c +++ b/src/util/tests/process_test.c @@ -58,19 +58,12 @@ test_util_get_process_name (void) const char *expected = "process_test"; #endif + const char *name_override = getenv("MESA_PROCESS_NAME"); + if (name_override) + expected = name_override; + const char *name = util_get_process_name(); expect_equal_str(expected, name, "util_get_process_name"); - - /* Test util_get_process_name_may_override */ - char name_buf[PATH_MAX] = { 0 }; - util_get_process_name_may_override("TEST_MESA_OVERRIDE_PROCESS_NAME", name_buf, sizeof(name_buf)); - expect_equal_str(expected, name_buf, "util_get_process_name_may_override"); - putenv("TEST_MESA_OVERRIDE_PROCESS_NAME=hello"); - util_get_process_name_may_override("TEST_MESA_OVERRIDE_PROCESS_NAME", name_buf, sizeof(name_buf)); - expect_equal_str("hello", name_buf, "util_get_process_name_may_override"); - putenv("TEST_MESA_OVERRIDE_PROCESS_NAME=hello2"); - util_get_process_name_may_override("TEST_MESA_OVERRIDE_PROCESS_NAME", name_buf, sizeof(name_buf)); - expect_equal_str("hello2", name_buf, "util_get_process_name_may_override"); } static void posixify_path(char *path) { diff --git a/src/util/u_process.c b/src/util/u_process.c index 1b2dccde7e4..5a2512335b7 100644 --- a/src/util/u_process.c +++ b/src/util/u_process.c @@ -260,34 +260,6 @@ success: return 0; } -bool -util_get_process_name_may_override(const char *env_name, char *procname, size_t size) -{ - const char *name; - - /* First, check if the env var with env_name is set to - * override the normal process name query. - */ - name = os_get_option(env_name); - - if (!name) { - /* do normal query */ - name = util_get_process_name(); - } - - assert(size > 0); - assert(procname); - - if (name && procname && size > 0) { - strncpy(procname, name, size); - procname[size - 1] = '\0'; - return true; - } - else { - return false; - } -} - bool util_get_command_line(char *cmdline, size_t size) { diff --git a/src/util/u_process.h b/src/util/u_process.h index 1a2bf1f855c..cc52e0385ec 100644 --- a/src/util/u_process.h +++ b/src/util/u_process.h @@ -41,16 +41,6 @@ util_get_process_name(void); size_t util_get_process_exec_path(char* process_path, size_t len); -/** - * Return the name of the current process. - * \param env_name the environment variable name used to override - * \param procname returns the process name - * \param size size of the procname buffer - * \return true or false for success, failure - */ -bool -util_get_process_name_may_override(const char *env_name, char *procname, size_t size); - /** * Return the command line for the calling process. This is basically * the argv[] array with the arguments separated by spaces.