OSDN Git Service

Fix remaining pkill tests.
authorElliott Hughes <enh@google.com>
Mon, 23 May 2016 17:46:47 +0000 (10:46 -0700)
committerRob Landley <rob@landley.net>
Mon, 23 May 2016 23:27:13 +0000 (18:27 -0500)
I don't know that anyone cares, but these failures made me think I'd
broken something while testing the -SIGNAL patch.

The -s parsing wasn't taking into account that -s 0 is a special case,
and the -o test was assuming that pkill can tell the difference between
two processes started at roughly the same time. Hopefully there's
higher-resolution data available that can avoid the need for yet another
sleep in the tests.

tests/pkill.test
toys/posix/ps.c

index 7a20ae5..0bea32a 100755 (executable)
@@ -63,6 +63,7 @@ killall yes >/dev/null 2>&1
 
 yes >/dev/null &
 proc1=$!
+sleep 1
 yes >/dev/null &
 proc2=$!
 sleep 1
index e5adc19..4f8d75a 100644 (file)
@@ -980,6 +980,8 @@ static char *parse_rest(void *data, char *str, int len)
   if (isdigit(*str)) {
     ll[pl->len] = xstrtol(str, &end, 10);
     if (end==(len+str)) num++;
+    // For pkill, -s 0 represents pkill's session id.
+    if (pl==&TT.ss && ll[pl->len]==0) ll[pl->len] = getsid(0);
   }
 
   if (pl==&TT.pp || pl==&TT.ss) {