svn commit: r315663 - user/pho/stress2/lib
Peter Holm
pho at FreeBSD.org
Tue Mar 21 08:23:46 UTC 2017
Author: pho
Date: Tue Mar 21 08:23:44 2017
New Revision: 315663
URL: https://svnweb.freebsd.org/changeset/base/315663
Log:
Change exit status to indicate test program failures.
Sponsored by: Dell EMC Isilon
Modified:
user/pho/stress2/lib/main.c
Modified: user/pho/stress2/lib/main.c
==============================================================================
--- user/pho/stress2/lib/main.c Tue Mar 21 06:39:49 2017 (r315662)
+++ user/pho/stress2/lib/main.c Tue Mar 21 08:23:44 2017 (r315663)
@@ -30,6 +30,9 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include <sys/wait.h>
+#include <sys/stat.h>
+
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
@@ -38,8 +41,6 @@ __FBSDID("$FreeBSD$");
#include <time.h>
#include <err.h>
#include <errno.h>
-#include <sys/wait.h>
-#include <sys/stat.h>
#include "stress.h"
@@ -50,9 +51,9 @@ volatile int done_testing;
static int cleanupcalled = 0;
char *home;
-static pid_t *r;
+static pid_t *r;
-void
+static void
handler(int i __unused)
{
int j;
@@ -77,21 +78,21 @@ handler(int i __unused)
}
}
-void
+static void
run_test_handler(int i __unused)
{
done_testing = 1;
}
-void
+static void
exit_handler(int i __unused)
{
- exit(1);
+ _exit(1);
}
-void
+static void
callcleanup(void)
{
if (cleanupcalled == 0)
@@ -103,6 +104,7 @@ static void
run_tests(int i)
{
time_t start;
+ int e;
signal(SIGHUP, run_test_handler);
signal(SIGINT, exit_handler);
@@ -111,21 +113,22 @@ run_tests(int i)
setup(i);
if ((strcmp(getprogname(), "run") != 0) && (op->nodelay == 0))
sleep(random_int(1,10));
+ e = 0;
start = time(NULL);
- while (done_testing == 0 &&
+ while (done_testing == 0 && e == 0 &&
(time(NULL) - start) < op->run_time) {
- test();
+ e = test();
}
callcleanup();
- exit(EXIT_SUCCESS);
+ exit(e);
}
static void
run_incarnations(void)
{
- int i;
- int s;
+ int e, i, s;
+ e = 0;
signal(SIGHUP, handler);
for (i = 0; i < op->incarnations && done_testing == 0; i++) {
if ((r[i] = fork()) == 0) {
@@ -137,11 +140,14 @@ run_incarnations(void)
break;
}
}
- for (i = 0; i < op->incarnations; i++)
+ for (i = 0; i < op->incarnations; i++) {
if (r[i] != 0 && waitpid(r[i], &s, 0) == -1)
warn("waitpid(%d), %s:%d", r[i], __FILE__, __LINE__);
+ if (s != 0)
+ e = 1;
+ }
- exit(EXIT_SUCCESS);
+ exit(e);
}
static int
@@ -169,7 +175,7 @@ run_test(void)
(time(NULL) - start) < op->run_time) {
sleep(1);
if (waitpid(p, &status, WNOHANG) == p)
- return (status);
+ return (status != 0);
}
if (kill(p, SIGHUP) == -1)
warn("kill(%d, SIGHUP), %s:%d", p, __FILE__, __LINE__);
@@ -177,7 +183,7 @@ run_test(void)
if (waitpid(p, &status, 0) == -1)
err(1, "waitpid(%d), %s:%d", p, __FILE__, __LINE__);
- return (status);
+ return (status != 0);
}
int
More information about the svn-src-user
mailing list