Commit c54c041ae0 for qemu.org
commit c54c041ae09004866ae049594ba9fb3a3c5ac271
Author: Amit Machhiwal <amachhiw@linux.ibm.com>
Date: Fri May 22 13:55:55 2026 +0530
tests/qtest/libqtest: Use GLib functions for proper const correctness
While commit e68da5b7a2cd ("tests/qtest: fix discarded const qualifier
warning") addressed the immediate strstr() warning by making 'found'
const, there's still a room for improvement: getenv() returns char *, but
environment strings are semantically read-only and should be treated as const
throughout their lifetime.
Replace getenv() with g_getenv() and strstr() with g_strstr_len() to
maintain const correctness from source to use. This approach:
- Uses g_getenv() which returns const gchar *, matching the read-only
semantics of environment variables
- Employs g_strstr_len() for consistent use of GLib string functions,
aligning with QEMU conventions
- Eliminates all const-correctness warnings with strict compilers
Tested-by: Anushree Mathur <anushree.mathur@linux.ibm.com>
Reviewed-by: Aditya Gupta <adityag@linux.ibm.com>
Signed-off-by: Amit Machhiwal <amachhiw@linux.ibm.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
index c33c799c92..bec37c71b8 100644
--- a/tests/qtest/libqtest.c
+++ b/tests/qtest/libqtest.c
@@ -2151,8 +2151,7 @@ bool mkimg(const char *file, const char *fmt, unsigned size_mb)
bool qtest_verbose(const char *domain)
{
- const char *log = getenv("QTEST_LOG");
- const char *found;
+ const gchar *found, *log = g_getenv("QTEST_LOG");
assert(domain);
@@ -2178,11 +2177,11 @@ bool qtest_verbose(const char *domain)
* QTEST_LOG=<domain1>,-<domain2> (only false for domain2)
* allows other separators, except - and +
*/
- found = strstr(log, domain);
+ found = g_strstr_len(log, -1, domain);
if (found) {
/* reject options given twice */
- assert(!strstr(found + strlen(domain), domain));
+ assert(!g_strstr_len(found + strlen(domain), -1, domain));
if (found > log) {
ptrdiff_t i = found - log - 1;
@@ -2196,7 +2195,7 @@ bool qtest_verbose(const char *domain)
* If filtering out a specific domain, all others are
* enabled.
*/
- return !!strstr(log, "-");
+ return !!g_strstr_len(log, -1, "-");
}
}