[EMAIL PROTECTED] wrote: > Veerendra [EMAIL PROTECTED] wrote: > >> Hi >> Submitting the testcase, which would try to kill the parent namespace >> pid from the container init. Also this tests a scenario of killing non >> existent pid from the container. >> >> >> Regards >> Veerendra C >> >> >> > > | [EMAIL PROTECTED] pidns]# ./pidns06 > | pidns06 0 INFO : Parent: Passing the pid of the process 21939 > | pidns06 1 PASS : Container: tried kill() on the parent pid 21939: > errno set to 3 (No such process), as expected > | > | pidns06 2 PASS : Container: While killing non existent pid errno set > to 3 : No such process, as expected > | > | > | > | Signed-off-by: Veerendra C <[EMAIL PROTECTED]> > | > | > | Index: > root/root/new/ltp-full-20080930/testcases/kernel/containers/pidns/pidns06.c > | =================================================================== > | --- /dev/null > | +++ > root/root/new/ltp-full-20080930/testcases/kernel/containers/pidns/pidns06.c > | @@ -0,0 +1,162 @@ > | +/* > | +* Copyright (c) International Business Machines Corp., 2008 > | +* This program is free software; you can redistribute it and/or modify > | +* it under the terms of the GNU General Public License as published by > | +* the Free Software Foundation; either version 2 of the License, or > | +* (at your option) any later version. > | +* This program is distributed in the hope that it will be useful > | +* but WITHOUT ANY WARRANTY; without even the implied warranty of > | +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See > | +* the GNU General Public License for more details. > | +* You should have received a copy of the GNU General Public License > | +* along with this program; if not, write to the Free Software > | +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > | + > | +************************************************************************* > | +* Description: > | +* Testcase tries killing of the parent namespace pid by the > container-init. > | +* It also tries killing of non-existent PID, by the container-init. > | +* Returns Success if Unable to kill, and proper error number is set. > | +* else Returns Failure > | +* > | +* Steps: > | +* 1. Parent process clone a process with flag CLONE_NEWPID > | +* 2. The pid of the parent namespace is passed to the container. > | +* 3. Container receieves the PID and passes SIGKILL to this PID. > | +* 4. If kill() is unsuccessful and the errno is set to 'No Such process' > | +* then sets PASS > | +* else, > | +* sets FAIL > | +* 5. It also verifies by passing SIGKILL to FAKE_PID > | +* 6. If kill() is unsuccessful and the errno is set to 'No Such process' > | +* then sets PASS > | +* else, > | +* sets FAIL > | +* > | +* History: > | +* > | +* FLAG DATE NAME Description. > | +* 21/10/08 Veerendra C <[EMAIL PROTECTED]> Verifies killing of > processes > | +* in container. > | > +*******************************************************************************/ > | +#define _GNU_SOURCE 1 > | +#include <stdio.h> > | +#include <stdlib.h> > | +#include <sys/wait.h> > | +#include <assert.h> > | +#include <unistd.h> > | +#include <errno.h> > | +#include <usctest.h> > | +#include <test.h> > | +#include <libclone.h> > | +#include <signal.h> > | + > | +#define CINIT_PID 1 > | +#define PARENT_PID 0 > | +#define FAKE_PID 1230 > > How do we ensure that FAKE_PID pid is not in use ? There is a small > chance ( 1/pid_max :-) that a process exists. To ensure, maybe create > a process, wait for it to exit() and then kill it. Odds of a wrap-around > so quickly are much lower :-) > Initially, I had written the testcase on similar lines. Then I got a suggestion that, since when we create a new container, passing a SIGKILL to any PID other than 0 or 1 should be fine. Isn't it ?
Regards Veerendra C ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
