[Devel] [PATCH vz10] selftests: connector: make proc_filter terminate on its own
Eva Kurchatova
eva.kurchatova at virtuozzo.com
Tue Sep 1 03:40:02 MSK 2026
proc_filter listens for process events until a signal interrupts it,
so a caller that waits for it to finish waits forever. Generate one
event, stop after five seconds, and fail if nothing was received.
https://virtuozzo.atlassian.net/browse/VSTOR-142450
Feature: fix selftests
Signed-off-by: Eva Kurchatova <eva.kurchatova at virtuozzo.com>
---
tools/testing/selftests/connector/proc_filter.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/connector/proc_filter.c b/tools/testing/selftests/connector/proc_filter.c
index 4a825b997666..f269b0b67db6 100644
--- a/tools/testing/selftests/connector/proc_filter.c
+++ b/tools/testing/selftests/connector/proc_filter.c
@@ -14,6 +14,7 @@
#include <strings.h>
#include <errno.h>
#include <signal.h>
+#include <sys/wait.h>
#include <string.h>
#include "../kselftest.h"
@@ -279,6 +280,16 @@ int main(int argc, char *argv[])
exit(1);
}
+ /*
+ * Generate one event to observe and stop listening shortly after,
+ * so that the test terminates on its own.
+ */
+ signal(SIGALRM, sigint);
+ alarm(5);
+ if (fork() == 0)
+ _exit(0);
+ wait(NULL);
+
while (!interrupted) {
err = handle_events(epoll_fd, &proc_ev);
if (err < 0) {
@@ -306,5 +317,5 @@ int main(int argc, char *argv[])
close(nl_sock);
printf("Done total count: %d\n", tcount);
- exit(0);
+ exit(tcount > 0 ? KSFT_PASS : KSFT_FAIL);
}
--
2.55.0
More information about the Devel
mailing list