test-runner: refactor/fix valgrind logging issue

After the logging changes verbose IWD with valgrind did not show any IWD
output. This commit fixes this by checking the verbosity against log_name
rather than argv[0] since log_name has a special case for valgrind/iwd.

The valgrind logic in start_iwd was refactored to only use the --log-fd
option rather than using --log-file in addition to --log-fd.
This commit is contained in:
James Prestwood 2019-11-05 15:22:26 -08:00 committed by Denis Kenzior
parent c6f9e89748
commit 8ec4a53adb
1 changed files with 11 additions and 9 deletions

View File

@ -564,7 +564,7 @@ static pid_t execute_program(char *argv[], char *envp[], bool wait,
int fd = -1;
L_AUTO_FREE_VAR(char *, log_file) = NULL;
verbose = check_verbosity(argv[0]);
verbose = check_verbosity(log_name);
/* No stdout and no logging */
if (!verbose && !log)
@ -1493,6 +1493,7 @@ static pid_t start_iwd(const char *config_dir, struct l_queue *wiphy_list,
L_AUTO_FREE_VAR(char *, fd_option) = NULL;
if (valgrind) {
L_AUTO_FREE_VAR(char *, valgrind_log);
int fd;
argv[idx++] = "valgrind";
@ -1501,21 +1502,22 @@ static pid_t start_iwd(const char *config_dir, struct l_queue *wiphy_list,
/*
* Valgrind needs --log-fd if we want both stderr and stdout
*/
if (log) {
L_AUTO_FREE_VAR(char *, valgrind_log);
if (log)
valgrind_log = l_strdup_printf("%s/%s/valgrind.log",
log_dir, test_name);
fd = open(valgrind_log, O_WRONLY | O_CREAT | O_APPEND,
else
valgrind_log = l_strdup("/tmp/valgrind.log");
fd = open(valgrind_log, O_WRONLY | O_CREAT | O_APPEND,
S_IRUSR | S_IWUSR);
if (log) {
if (fchown(fd, log_uid, log_gid) < 0)
l_error("chown failed");
}
fd_option = l_strdup_printf("--log-fd=%d", fd);
argv[idx++] = fd_option;
} else
argv[idx++] = "--log-file=/tmp/valgrind.log";
fd_option = l_strdup_printf("--log-fd=%d", fd);
argv[idx++] = fd_option;
}
if (strcmp(gdb_opt, "iwd") == 0) {