svn commit: r259124 - user/pho/stress2/misc
Peter Holm
pho at FreeBSD.org
Mon Dec 9 08:39:34 UTC 2013
Author: pho
Date: Mon Dec 9 08:39:33 2013
New Revision: 259124
URL: http://svnweb.freebsd.org/changeset/base/259124
Log:
Stop test at first error, make error message more informative, cleanup code
and print FAIL on error.
Sponsored by: EMC / Isilon storage division
Modified:
user/pho/stress2/misc/rename7.sh
Modified: user/pho/stress2/misc/rename7.sh
==============================================================================
--- user/pho/stress2/misc/rename7.sh Mon Dec 9 07:26:55 2013 (r259123)
+++ user/pho/stress2/misc/rename7.sh Mon Dec 9 08:39:33 2013 (r259124)
@@ -41,7 +41,7 @@
here=`pwd`
cd /tmp
sed '1,/^EOF/d' < $here/$0 > rename7.c
-cc -o rename7 -Wall -Wextra -O2 rename7.c
+cc -o rename7 -Wall -Wextra -O2 rename7.c || exit
rm -f rename7.c
cd $here
@@ -53,7 +53,7 @@ newfs $newfs_flags md${mdstart}$part > /
mount /dev/md${mdstart}$part $mntpoint
chmod 777 $mntpoint
-su ${testuser} -c "cd $mntpoint; /tmp/rename7"
+su ${testuser} -c "cd $mntpoint; /tmp/rename7 || echo FAIL"
for i in `jot 10`; do
mount | grep -q md${mdstart}$part && \
@@ -82,23 +82,9 @@ EOF
#include <unistd.h>
const char *logfile = "test.log";
-int need_reopen = 1;
pid_t wpid, spid;
void
-handler(int s __unused)
-{
- need_reopen = 1;
-}
-
-void
-cleanup()
-{
- kill(wpid, SIGINT);
- kill(spid, SIGINT);
-}
-
-void
r1(void)
{
int i;
@@ -108,10 +94,12 @@ r1(void)
rename(logfile, "r1");
if (stat("r1", &sb1) == 0 && stat("r2", &sb2) == 0 &&
bcmp(&sb1, &sb2, sizeof(sb1)) == 0) {
- fprintf(stderr, "Bummer\n");
+ fprintf(stderr, "r1 and r2 are identical after rename(%s, \"r1\")\n", logfile);
system("ls -ail");
+ _exit(1);
}
}
+ _exit(0);
}
void
@@ -125,16 +113,19 @@ r2(void)
rename(logfile, "r2");
if (stat("r1", &sb1) == 0 && stat("r2", &sb2) == 0 &&
bcmp(&sb1, &sb2, sizeof(sb1)) == 0) {
- fprintf(stderr, "Bummer\n");
+ usleep(10000);
+ fprintf(stderr, "r1 and r2 are identical after rename(%s, \"r2\")\n", logfile);
system("ls -ail");
+ _exit(1);
}
}
+ _exit(0);
}
int
main(void)
{
pid_t wpid, spid;
- int fd, i;
+ int e, fd, i, status;
if ((wpid = fork()) == 0)
r1();
@@ -142,7 +133,7 @@ main(void)
r2();
setproctitle("main");
- atexit(cleanup);
+ e = 0;
for (i = 0; i < 800000; i++) {
if ((fd = open(logfile, O_RDWR | O_CREAT | O_TRUNC, 0644)) == -1)
@@ -150,11 +141,12 @@ main(void)
close(fd);
}
-
kill(wpid, SIGINT);
kill(spid, SIGINT);
- wait(NULL);
- wait(NULL);
+ wait(&status);
+ e += WEXITSTATUS(status);
+ wait(&status);
+ e += WEXITSTATUS(status);
- return (0);
+ return (e);
}
More information about the svn-src-user
mailing list