Date: Sun, 24 Nov 2013 09:29:40 +0000 (UTC) From: Peter Holm <pho@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r258515 - user/pho/stress2/misc Message-ID: <201311240929.rAO9TeDj094418@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pho Date: Sun Nov 24 09:29:40 2013 New Revision: 258515 URL: http://svnweb.freebsd.org/changeset/base/258515 Log: Make sure the test runs for the specified $sleeptime. Added magic values in order to check for overwrite of syscall number to test. Sponsored by: EMC / Isilon storage division Modified: user/pho/stress2/misc/syscall4.sh Modified: user/pho/stress2/misc/syscall4.sh ============================================================================== --- user/pho/stress2/misc/syscall4.sh Sun Nov 24 09:27:33 2013 (r258514) +++ user/pho/stress2/misc/syscall4.sh Sun Nov 24 09:29:40 2013 (r258515) @@ -35,6 +35,7 @@ . ../default.cfg +killall 2>&1 | grep -q q && q="-q" odir=`pwd` cd /tmp sed '1,/^EOF/d' < $odir/$0 > syscall4.c @@ -58,14 +59,25 @@ mount /dev/md${mdstart}$part $mntpoint chmod 777 $mntpoint sleeptime=${sleeptime:-12} -for i in `jot 10`; do - (cd $mntpoint; /tmp/syscall4 $* < /dev/null) & - [ $# -eq 1 ] && sleep $sleeptime || sleep 120 - killall -9 syscall4 > /dev/null 2>&1 +st=`date '+%s'` +while [ $((`date '+%s'` - st)) -lt $((10 * sleeptime)) ]; do + (cd $mntpoint; /tmp/syscall4 $* ) & + start=`date '+%s'` + while [ $((`date '+%s'` - start)) -lt $sleeptime ]; do + ps aux | grep -v grep | egrep -q "syscall4$" || break + sleep .5 + done + if ps aux | grep -v grep | egrep -q "syscall4$"; then + killall $q syscall4 + ps aux | grep -v grep | egrep -q "syscall4 " && + killall $q -9 syscall4 + fi wait ipcs | awk '/^(q|m|s)/ {print " -" $1, $2}' | xargs -L 1 ipcrm done - +killall $q -9 syscall4 +ps aux | grep -v grep | egrep "syscall4" | egrep -v "\.sh" && + killall $q -9 syscall4 for i in `jot 10`; do mount | grep -q md${mdstart}$part && \ @@ -117,13 +129,20 @@ static int ignore[] = { SYS_mac_syscall, SYS_sigtimedwait, SYS_sigwaitinfo, +#if __FreeBSD_version >= 900041 SYS_pdfork, +#endif + SYS_posix_openpt }; int fd[900], fds[2], socketpr[2]; +#ifndef nitems +#define nitems(x) (sizeof((x)) / sizeof((x)[0])) +#endif #define N (128 * 1024 / (int)sizeof(u_int32_t)) +#define MAGIC 1664 u_int32_t r[N]; -int syscallno; +int magic1, syscallno, magic2; static int random_int(int mi, int ma) @@ -245,6 +264,8 @@ calls(void *arg __unused) alarm(1); syscall(num, arg1, arg2, arg3, arg4, arg5, arg6, arg7); num = 0; + if (magic1 != MAGIC || magic2 != MAGIC) + _exit(1); } return (0); @@ -258,6 +279,7 @@ main(int argc, char **argv) time_t start; int j; + magic1 = magic2 = MAGIC; if ((pw = getpwnam("nobody")) == NULL) err(1, "no such user: nobody");
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201311240929.rAO9TeDj094418>