[PATCH i-g-t 04/26] Actually handle socketfd, and correctly sprintf the env
Petri Latvala
petri.latvala at intel.com
Fri Mar 12 11:03:19 UTC 2021
---
runner/executor.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/runner/executor.c b/runner/executor.c
index a2f29d32..2f6eaf1d 100644
--- a/runner/executor.c
+++ b/runner/executor.c
@@ -478,8 +478,8 @@ bool open_output_files(int dirfd, int *fds, bool write)
for (i = 0; i < _F_LAST; i++) {
if ((fds[i] = openfunc(dirfd, filenames[i])) < 0) {
- /* Ignore failure to open socket comms */
- if (i == _F_SOCKET) continue;
+ /* Ignore failure to open socket comms for reading */
+ if (i == _F_SOCKET && !write) continue;
while (--i >= 0)
close(fds[i]);
@@ -842,6 +842,8 @@ static int monitor_output(pid_t child,
FD_SET(outfd, &set);
if (errfd >= 0)
FD_SET(errfd, &set);
+ if (socketfd >= 0)
+ FD_SET(socketfd, &set);
if (kmsgfd >= 0)
FD_SET(kmsgfd, &set);
if (sigfd >= 0)
@@ -1496,7 +1498,7 @@ static int execute_next_entry(struct execute_state *state,
result = -1;
goto out_kmsgfd;
} else if (child == 0) {
- char *envstring = NULL;
+ char envstring[16];
outfd = outpipe[1];
errfd = errpipe[1];
@@ -1507,8 +1509,10 @@ static int execute_next_entry(struct execute_state *state,
sigprocmask(SIG_UNBLOCK, sigmask, NULL);
- if (socketfd >= 0 && asprintf(&envstring, "%d", socketfd) == 1)
+ if (socketfd >= 0) {
+ snprintf(envstring, sizeof(envstring), "%d", socketfd);
setenv("IGT_RUNNER_SOCKET_FD", envstring, 1);
+ }
setenv("IGT_SENTINEL_ON_STDERR", "1", 1);
execute_test_process(outfd, errfd, socketfd, settings, entry);
--
2.29.2
More information about the Intel-gfx-trybot
mailing list