[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ltp-cvs
Subject:    [Ltp-cvs] ltp/testcases/kernel/syscalls/writev writev01.c, 1.13,
From:       Subrata <subrata_modak () users ! sourceforge ! net>
Date:       2009-03-23 13:36:18
Message-ID: E1LlkKA-0004O4-5s () ddv4jf1 ! ch3 ! sourceforge ! com
[Download RAW message or body]

Update of /cvsroot/ltp/ltp/testcases/kernel/syscalls/writev
In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv14647/ltp/testcases/kernel/syscalls/writev

Modified Files:
	writev01.c writev02.c writev03.c writev04.c writev05.c 
	writev06.c 
Log Message:
Coding Syle Cleanups. Signed-Off-By: <michal.simek@petalogix.com>.


Index: writev03.c
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/writev/writev03.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** writev03.c	26 Feb 2009 12:17:08 -0000	1.9
--- writev03.c	23 Mar 2009 13:36:16 -0000	1.10
***************
*** 59,83 ****
  
  #define	NBUFS		4
! #define	CHUNK		64		/* single chunk */
  #define	MAX_IOVEC	4
  #define	DATA_FILE	"writev_data_file"
  
! char	buf1[K_1], buf2[K_1], buf3[K_1];
! char*	bad_addr = 0;
  
  struct iovec wr_iovec[MAX_IOVEC] = {
  	/* testcase #1 */
! 	{buf1 + (CHUNK * 6),	CHUNK},
! 	{(caddr_t)-1,		CHUNK},
! 	{buf1 + (CHUNK * 8),	CHUNK},
! 	{(caddr_t)NULL,		0}
  };
  
  /* 0 terminated list of expected errnos */
! int exp_enos[] = {0};
  
! char	name[K_1], f_name[K_1];
! int	fd[2], in_sighandler;
! char	*buf_list[NBUFS];
  
  char *TCID = "writev03";
--- 59,83 ----
  
  #define	NBUFS		4
! #define	CHUNK		64	/* single chunk */
  #define	MAX_IOVEC	4
  #define	DATA_FILE	"writev_data_file"
  
! char buf1[K_1], buf2[K_1], buf3[K_1];
! char *bad_addr = 0;
  
  struct iovec wr_iovec[MAX_IOVEC] = {
  	/* testcase #1 */
! 	{buf1 + (CHUNK * 6), CHUNK},
! 	{(caddr_t) - 1, CHUNK},
! 	{buf1 + (CHUNK * 8), CHUNK},
! 	{(caddr_t) NULL, 0}
  };
  
  /* 0 terminated list of expected errnos */
! int exp_enos[] = { 0 };
  
! char name[K_1], f_name[K_1];
! int fd[2], in_sighandler;
! char *buf_list[NBUFS];
  
  char *TCID = "writev03";
***************
*** 95,110 ****
  int main(int argc, char **argv)
  {
! 	int lc;				/* loop counter */
! 	char *msg;			/* message returned from parse_opts */
  
  	int nbytes;
  
  	/* parse standard options */
! 	if ((msg = parse_opts(argc, argv, (option_t *)NULL, NULL)) !=
! 			(char *) NULL) {
  		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
  		tst_exit();
! 		/*NOTREACHED*/
! 	}
  
  	/* set "tstdir", and "testfile" vars */
--- 95,109 ----
  int main(int argc, char **argv)
  {
! 	int lc;			/* loop counter */
! 	char *msg;		/* message returned from parse_opts */
  
  	int nbytes;
  
  	/* parse standard options */
! 	if ((msg = parse_opts(argc, argv, (option_t *) NULL, NULL)) !=
! 	    (char *)NULL) {
  		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
  		tst_exit();
! 	 /*NOTREACHED*/}
  
  	/* set "tstdir", and "testfile" vars */
***************
*** 122,126 ****
  		buf_list[3] = (char *)NULL;
  
! 		fd[1] = -1;		/* Invalid file descriptor */
  
  		if (signal(SIGTERM, sighandler) == SIG_ERR) {
--- 121,125 ----
  		buf_list[3] = (char *)NULL;
  
! 		fd[1] = -1;	/* Invalid file descriptor */
  
  		if (signal(SIGTERM, sighandler) == SIG_ERR) {
***************
*** 128,133 ****
  			tst_resm(TFAIL, "signal() SIGTERM FAILED");
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		if (signal(SIGPIPE, sighandler) == SIG_ERR) {
--- 127,131 ----
  			tst_resm(TFAIL, "signal() SIGTERM FAILED");
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		if (signal(SIGPIPE, sighandler) == SIG_ERR) {
***************
*** 135,140 ****
  			tst_resm(TFAIL, "signal() SIGPIPE FAILED");
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		memset(buf_list[0], 0, K_1);
--- 133,137 ----
  			tst_resm(TFAIL, "signal() SIGPIPE FAILED");
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		memset(buf_list[0], 0, K_1);
***************
*** 145,157 ****
  				 "errno = %d", f_name, errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		} else {
! 			if ((nbytes = write(fd[0], buf_list[1], K_1)) !=
! 					K_1) {
  				tst_resm(TFAIL, "write(2) failed: nbytes "
  					 "= %d, errno = %d", nbytes, errno);
  				cleanup();
! 				/*NOTREACHED*/
! 			}
  		}
  
--- 142,151 ----
  				 "errno = %d", f_name, errno);
  			cleanup();
! 		 /*NOTREACHED*/} else {
! 			if ((nbytes = write(fd[0], buf_list[1], K_1)) != K_1) {
  				tst_resm(TFAIL, "write(2) failed: nbytes "
  					 "= %d, errno = %d", nbytes, errno);
  				cleanup();
! 			 /*NOTREACHED*/}
  		}
  
***************
*** 159,164 ****
  			tst_resm(TFAIL, "close failed: errno = %d", errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		if ((fd[0] = open(f_name, O_RDWR, 0666)) < 0) {
--- 153,157 ----
  			tst_resm(TFAIL, "close failed: errno = %d", errno);
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		if ((fd[0] = open(f_name, O_RDWR, 0666)) < 0) {
***************
*** 166,176 ****
  				 f_name, errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		}
! 
  //block1:
  		tst_resm(TINFO, "Enter block 1");
  		fail = 0;
! 	
  		/*
  		 * In this block we are trying to call writev() with
--- 159,167 ----
  				 f_name, errno);
  			cleanup();
! 		 /*NOTREACHED*/}
  //block1:
  		tst_resm(TINFO, "Enter block 1");
  		fail = 0;
! 
  		/*
  		 * In this block we are trying to call writev() with
***************
*** 292,297 ****
   *	performs all ONE TIME setup for this test
   */
! void
! setup(void)
  {
  	/* capture signals */
--- 283,287 ----
   *	performs all ONE TIME setup for this test
   */
! void setup(void)
  {
  	/* capture signals */
***************
*** 299,303 ****
  
  	/* Set up the expected error numbers for -e option */
!         TEST_EXP_ENOS(exp_enos);
  
  	/* Pause if that option was specified.
--- 289,293 ----
  
  	/* Set up the expected error numbers for -e option */
! 	TEST_EXP_ENOS(exp_enos);
  
  	/* Pause if that option was specified.
***************
*** 306,315 ****
  	 * directory.
  	 */
!         TEST_PAUSE;
  
  	strcpy(name, DATA_FILE);
  	sprintf(f_name, "%s.%d", name, getpid());
  
! 	bad_addr = mmap(0, 1, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0);
  	if (bad_addr == MAP_FAILED) {
  		tst_brkm(TBROK, cleanup, "mmap failed");
--- 296,305 ----
  	 * directory.
  	 */
! 	TEST_PAUSE;
  
  	strcpy(name, DATA_FILE);
  	sprintf(f_name, "%s.%d", name, getpid());
  
! 	bad_addr = mmap(0, 1, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
  	if (bad_addr == MAP_FAILED) {
  		tst_brkm(TBROK, cleanup, "mmap failed");
***************
*** 324,329 ****
   *	completion or premature exit
   */
! void
! cleanup(void)
  {
  	/*
--- 314,318 ----
   *	completion or premature exit
   */
! void cleanup(void)
  {
  	/*
***************
*** 346,360 ****
   *	Signal handler function for SIGTERM and SIGPIPE
   */
! void
! sighandler(int sig)
  {
! 	switch(sig) {
! 	case SIGTERM: break;
! 	case SIGPIPE: ++in_sighandler;
! 		      return;
  	default:
! 		      tst_resm(TFAIL, "sighandler() received invalid signal "
! 			       ": %d", sig);
! 		      break;
  	}
  
--- 335,350 ----
   *	Signal handler function for SIGTERM and SIGPIPE
   */
! void sighandler(int sig)
  {
! 	switch (sig) {
! 	case SIGTERM:
! 		break;
! 	case SIGPIPE:
! 		++in_sighandler;
! 		return;
  	default:
! 		tst_resm(TFAIL, "sighandler() received invalid signal "
! 			 ": %d", sig);
! 		break;
  	}
  
***************
*** 363,368 ****
  			 f_name, errno);
  		cleanup();
! 		/*NOTREACHED*/
! 	}
  	exit(sig);
  }
--- 353,357 ----
  			 f_name, errno);
  		cleanup();
! 	 /*NOTREACHED*/}
  	exit(sig);
  }
***************
*** 372,377 ****
   *	Wrap around for regular lseek function for giving error message
   */
! long
! l_seek(int fdesc, long offset, int whence)
  {
  	if (lseek(fdesc, offset, whence) < 0) {
--- 361,365 ----
   *	Wrap around for regular lseek function for giving error message
   */
! long l_seek(int fdesc, long offset, int whence)
  {
  	if (lseek(fdesc, offset, whence) < 0) {

Index: writev06.c
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/writev/writev06.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** writev06.c	18 Mar 2009 08:51:47 -0000	1.7
--- writev06.c	23 Mar 2009 13:36:16 -0000	1.8
***************
*** 1,19 ****
  /*
   *
!  *   Copyright (C) 2007  Monakhov Dmitriy
!  *
!  *   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
   */
  
--- 1,18 ----
  /*
+  * Copyright (C) 2007  Monakhov Dmitriy
   *
!  * 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
   */
  
***************
*** 57,75 ****
  #define	DATA_FILE	"writev_data_file"
  
! int	page_size;
  
! char * good_addr[2] = {NULL, NULL};
! char * bad_addr[2] = {NULL, NULL};
  
! struct	iovec	wr_iovec[MAX_IOVEC] = {
! 	{(caddr_t)-1,	1},
! 	{(caddr_t)-1,	1}
  };
  
  /* 0 terminated list of expected errnos */
! int exp_enos[] = {0};
  
! char	name[K_1], f_name[K_1];
! int	fd[2], in_sighandler;
  
  char *TCID = "writev06";
--- 56,74 ----
  #define	DATA_FILE	"writev_data_file"
  
! int page_size;
  
! char *good_addr[2] = { NULL, NULL };
! char *bad_addr[2] = { NULL, NULL };
  
! struct iovec wr_iovec[MAX_IOVEC] = {
! 	{(caddr_t) - 1, 1},
! 	{(caddr_t) - 1, 1}
  };
  
  /* 0 terminated list of expected errnos */
! int exp_enos[] = { 0 };
  
! char name[K_1], f_name[K_1];
! int fd[2], in_sighandler;
  
  char *TCID = "writev06";
***************
*** 84,98 ****
  int main(int argc, char **argv)
  {
! 	int lc;				/* loop counter */
! 	char *msg;			/* message returned from parse_opts */
  
  	/* parse standard options */
! 	if ((msg = parse_opts(argc, argv, (option_t *)NULL, NULL)) !=
! 			(char *) NULL) {
  		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
! 		/*NOTREACHED*/
  	}
  
! 	setup();			/* set "tstdir", and "testfile" vars */
  
  	/* The following loop checks looping state if -i option given */
--- 83,96 ----
  int main(int argc, char **argv)
  {
! 	int lc;			/* loop counter */
! 	char *msg;		/* message returned from parse_opts */
  
  	/* parse standard options */
! 	if ((msg = parse_opts(argc, argv, (option_t *) NULL, NULL)) != (char *)NULL) {
  		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
! 		/* NOTREACHED */
  	}
  
! 	setup();		/* set "tstdir", and "testfile" vars */
  
  	/* The following loop checks looping state if -i option given */
***************
*** 102,106 ****
  		Tst_count = 0;
  
! 		fd[1] = -1;		/* Invalid file descriptor */
  
  		if (signal(SIGTERM, sighandler) == SIG_ERR) {
--- 100,104 ----
  		Tst_count = 0;
  
! 		fd[1] = -1;	/* Invalid file descriptor */
  
  		if (signal(SIGTERM, sighandler) == SIG_ERR) {
***************
*** 108,112 ****
  			tst_resm(TFAIL, "signal() SIGTERM FAILED");
  			cleanup();
! 			/*NOTREACHED*/
  		}
  
--- 106,110 ----
  			tst_resm(TFAIL, "signal() SIGTERM FAILED");
  			cleanup();
! 			/* NOTREACHED */
  		}
  
***************
*** 115,119 ****
  			tst_resm(TFAIL, "signal() SIGPIPE FAILED");
  			cleanup();
! 			/*NOTREACHED*/
  		}
  
--- 113,117 ----
  			tst_resm(TFAIL, "signal() SIGPIPE FAILED");
  			cleanup();
! 			/* NOTREACHED */
  		}
  
***************
*** 122,131 ****
  				 "errno = %d", f_name, errno);
  			cleanup();
! 			/*NOTREACHED*/
  		}
! 	
!  		/*
  		 * Iovecs passed to writev points to valid (readable) regions,
!  		 * so all bytes must be successfully written.
  		 */
  //block1:
--- 120,129 ----
  				 "errno = %d", f_name, errno);
  			cleanup();
! 			/* NOTREACHED */
  		}
! 
! 		/*
  		 * Iovecs passed to writev points to valid (readable) regions,
! 		 * so all bytes must be successfully written.
  		 */
  //block1:
***************
*** 133,142 ****
  		tst_resm(TINFO, "Enter block 1");
  		fail = 0;
! 	
  		TEST(writev(fd[0], wr_iovec, 2));
! 		if (TEST_RETURN  >= 0) {
  			if (TEST_RETURN == 2) {
! 				tst_resm(TINFO, "writev returned %d as expected"
! 						, 2);
  			} else {
  				tst_resm(TFAIL, "Expected nbytes = %d, got "
--- 131,139 ----
  		tst_resm(TINFO, "Enter block 1");
  		fail = 0;
! 
  		TEST(writev(fd[0], wr_iovec, 2));
! 		if (TEST_RETURN >= 0) {
  			if (TEST_RETURN == 2) {
! 				tst_resm(TINFO, "writev returned %d as expected", 2);
  			} else {
  				tst_resm(TFAIL, "Expected nbytes = %d, got "
***************
*** 147,152 ****
  			TEST_ERROR_LOG(TEST_ERRNO);
  			tst_resm(TFAIL, "Error writev return value = %d,"
! 					" errno = %d", TEST_RETURN,
! 					TEST_ERRNO);
  			fail = 1;
  		}
--- 144,148 ----
  			TEST_ERROR_LOG(TEST_ERRNO);
  			tst_resm(TFAIL, "Error writev return value = %d,"
! 				 " errno = %d", TEST_RETURN, TEST_ERRNO);
  			fail = 1;
  		}
***************
*** 166,171 ****
   *	performs all ONE TIME setup for this test
   */
! void
! setup(void)
  {
  	/* capture signals */
--- 162,166 ----
   *	performs all ONE TIME setup for this test
   */
! void setup(void)
  {
  	/* capture signals */
***************
*** 193,223 ****
  	 * mapping around */
  	bad_addr[0] = mmap(NULL, page_size * 3, PROT_NONE,
! 			MAP_PRIVATE_EXCEPT_UCLINUX|MAP_ANONYMOUS, 0, 0);
  	if (bad_addr[0] == MAP_FAILED)
! 		tst_brkm(TBROK, cleanup, "mmap failed for bad_addr[0]");	
  
! 	good_addr[0] = mmap(NULL, page_size, PROT_READ|PROT_WRITE,
! 			MAP_PRIVATE_EXCEPT_UCLINUX|MAP_ANONYMOUS, 0, 0);
  	if (good_addr[0] == MAP_FAILED)
  		tst_brkm(TBROK, cleanup, "mmap failed for good_addr[0]");
  
  	bad_addr[1] = mmap(NULL, page_size * 3, PROT_NONE,
! 			MAP_PRIVATE_EXCEPT_UCLINUX|MAP_ANONYMOUS, 0, 0);
  	if (bad_addr[1] == MAP_FAILED)
  		tst_brkm(TBROK, cleanup, "mmap failed for bad_addr[1]");
  
! 	good_addr[1] = mmap(NULL, page_size, PROT_READ|PROT_WRITE,
! 			MAP_PRIVATE_EXCEPT_UCLINUX|MAP_ANONYMOUS, 0, 0);
  	if (good_addr[1] == MAP_FAILED)
  		tst_brkm(TBROK, cleanup, "mmap failed for good_addr[1]");
  
! 	/* force page fault for writable mappings*/
! 	memset(good_addr[0],'a', page_size);
! 	memset(good_addr[1],'b', page_size);
  
!         wr_iovec[0].iov_base = good_addr[0] + page_size - 1;
  	wr_iovec[1].iov_base = good_addr[1] + page_size - 1;
  
- 
  }
  
--- 188,217 ----
  	 * mapping around */
  	bad_addr[0] = mmap(NULL, page_size * 3, PROT_NONE,
! 			   MAP_PRIVATE_EXCEPT_UCLINUX | MAP_ANONYMOUS, 0, 0);
  	if (bad_addr[0] == MAP_FAILED)
! 		tst_brkm(TBROK, cleanup, "mmap failed for bad_addr[0]");
  
! 	good_addr[0] = mmap(NULL, page_size, PROT_READ | PROT_WRITE,
! 			    MAP_PRIVATE_EXCEPT_UCLINUX | MAP_ANONYMOUS, 0, 0);
  	if (good_addr[0] == MAP_FAILED)
  		tst_brkm(TBROK, cleanup, "mmap failed for good_addr[0]");
  
  	bad_addr[1] = mmap(NULL, page_size * 3, PROT_NONE,
! 			   MAP_PRIVATE_EXCEPT_UCLINUX | MAP_ANONYMOUS, 0, 0);
  	if (bad_addr[1] == MAP_FAILED)
  		tst_brkm(TBROK, cleanup, "mmap failed for bad_addr[1]");
  
! 	good_addr[1] = mmap(NULL, page_size, PROT_READ | PROT_WRITE,
! 			    MAP_PRIVATE_EXCEPT_UCLINUX | MAP_ANONYMOUS, 0, 0);
  	if (good_addr[1] == MAP_FAILED)
  		tst_brkm(TBROK, cleanup, "mmap failed for good_addr[1]");
  
! 	/* force page fault for writable mappings */
! 	memset(good_addr[0], 'a', page_size);
! 	memset(good_addr[1], 'b', page_size);
  
! 	wr_iovec[0].iov_base = good_addr[0] + page_size - 1;
  	wr_iovec[1].iov_base = good_addr[1] + page_size - 1;
  
  }
  
***************
*** 227,232 ****
   *	completion or premature exit
   */
! void
! cleanup(void)
  {
  	/*
--- 221,225 ----
   *	completion or premature exit
   */
! void cleanup(void)
  {
  	/*
***************
*** 251,265 ****
   *	Signal handler for SIGTERM and SIGPIPE
   */
! void
! sighandler(int sig)
  {
! 	switch(sig) {
! 	case SIGTERM: break;
! 	case SIGPIPE: ++in_sighandler;
! 			return;
  	default:
! 			tst_resm(TFAIL, "sighandler() received invalid signal "
! 					": %d", sig);
! 			break;
  	}
  
--- 244,259 ----
   *	Signal handler for SIGTERM and SIGPIPE
   */
! void sighandler(int sig)
  {
! 	switch (sig) {
! 	case SIGTERM:
! 		break;
! 	case SIGPIPE:
! 		++in_sighandler;
! 		return;
  	default:
! 		tst_resm(TFAIL, "sighandler() received invalid signal "
! 			 ": %d", sig);
! 		break;
  	}
  
***************
*** 268,272 ****
  			 f_name, errno);
  		cleanup();
! 		/*NOTREACHED*/
  	}
  	exit(sig);
--- 262,266 ----
  			 f_name, errno);
  		cleanup();
! 		/* NOTREACHED */
  	}
  	exit(sig);

Index: writev02.c
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/writev/writev02.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** writev02.c	26 Feb 2009 12:06:35 -0000	1.13
--- writev02.c	23 Mar 2009 13:36:16 -0000	1.14
***************
*** 63,87 ****
  
  #define	NBUFS		2
! #define	CHUNK		K_1		/* single chunk */
  #define	MAX_IOVEC	2
  #define	DATA_FILE	"writev_data_file"
  
! char	buf1[K_1];
! char	buf2[K_1];
  
! char * bad_addr = 0;
  
! struct	iovec	wr_iovec[MAX_IOVEC] = {
! 	{(caddr_t)-1,	CHUNK},
! 	{(caddr_t)NULL,	0},
  };
  
! char	name[K_1], f_name[K_1];
  
  /* 0 terminated list of expected errnos */
! int exp_enos[] = {14, 0};
  
! int	fd[2], in_sighandler;
! char	*buf_list[NBUFS];
  
  char *TCID = "writev02";
--- 63,87 ----
  
  #define	NBUFS		2
! #define	CHUNK		K_1	/* single chunk */
  #define	MAX_IOVEC	2
  #define	DATA_FILE	"writev_data_file"
  
! char buf1[K_1];
! char buf2[K_1];
  
! char *bad_addr = 0;
  
! struct iovec wr_iovec[MAX_IOVEC] = {
! 	{(caddr_t) - 1, CHUNK},
! 	{(caddr_t) NULL, 0},
  };
  
! char name[K_1], f_name[K_1];
  
  /* 0 terminated list of expected errnos */
! int exp_enos[] = { 14, 0 };
  
! int fd[2], in_sighandler;
! char *buf_list[NBUFS];
  
  char *TCID = "writev02";
***************
*** 99,116 ****
  int main(int argc, char **argv)
  {
! 	int lc;				/* loop counter */
! 	char *msg;			/* message returned from parse_opts */
  
  	int nbytes;
  
  	/* parse standard options */
! 	if ((msg = parse_opts(argc, argv, (option_t *)NULL, NULL)) !=
! 		(char *) NULL) {
  		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
  		tst_exit();
! 		/*NOTREACHED*/
! 	}
  
! 	setup();			/* set "tstdir", and "testfile" vars */
  
  	/* The following loop checks looping state if -i option given */
--- 99,115 ----
  int main(int argc, char **argv)
  {
! 	int lc;			/* loop counter */
! 	char *msg;		/* message returned from parse_opts */
  
  	int nbytes;
  
  	/* parse standard options */
! 	if ((msg = parse_opts(argc, argv, (option_t *) NULL, NULL)) !=
! 	    (char *)NULL) {
  		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
  		tst_exit();
! 	 /*NOTREACHED*/}
  
! 	setup();		/* set "tstdir", and "testfile" vars */
  
  	/* The following loop checks looping state if -i option given */
***************
*** 127,131 ****
  		memset(buf_list[1], 0, K_1);
  
! 		fd[1] = -1;		/* Invalid file descriptor */
  
  		if (signal(SIGTERM, sighandler) == SIG_ERR) {
--- 126,130 ----
  		memset(buf_list[1], 0, K_1);
  
! 		fd[1] = -1;	/* Invalid file descriptor */
  
  		if (signal(SIGTERM, sighandler) == SIG_ERR) {
***************
*** 133,138 ****
  			tst_resm(TFAIL, "signal() SIGTERM FAILED");
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		if (signal(SIGPIPE, sighandler) == SIG_ERR) {
--- 132,136 ----
  			tst_resm(TFAIL, "signal() SIGTERM FAILED");
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		if (signal(SIGPIPE, sighandler) == SIG_ERR) {
***************
*** 140,145 ****
  			tst_resm(TFAIL, "signal() SIGPIPE FAILED");
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		if ((fd[0] = open(f_name, O_WRONLY | O_CREAT, 0666)) < 0) {
--- 138,142 ----
  			tst_resm(TFAIL, "signal() SIGPIPE FAILED");
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		if ((fd[0] = open(f_name, O_WRONLY | O_CREAT, 0666)) < 0) {
***************
*** 147,160 ****
  				 "errno = %d", f_name, errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		} else {
  			l_seek(fd[0], K_1, 0);
! 			if ((nbytes = write(fd[0], buf_list[1], K_1)) !=
! 					K_1) {
  				tst_resm(TFAIL, "write(2) failed: nbytes "
! 					"= %d, errno = %d", nbytes, errno);
  				cleanup();
! 				/*NOTREACHED*/
! 			}
  		}
  
--- 144,154 ----
  				 "errno = %d", f_name, errno);
  			cleanup();
! 		 /*NOTREACHED*/} else {
  			l_seek(fd[0], K_1, 0);
! 			if ((nbytes = write(fd[0], buf_list[1], K_1)) != K_1) {
  				tst_resm(TFAIL, "write(2) failed: nbytes "
! 					 "= %d, errno = %d", nbytes, errno);
  				cleanup();
! 			 /*NOTREACHED*/}
  		}
  
***************
*** 162,167 ****
  			tst_resm(TFAIL, "close failed: errno = %d", errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		if ((fd[0] = open(f_name, O_RDWR, 0666)) < 0) {
--- 156,160 ----
  			tst_resm(TFAIL, "close failed: errno = %d", errno);
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		if ((fd[0] = open(f_name, O_RDWR, 0666)) < 0) {
***************
*** 169,175 ****
  				 f_name, errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		}
! 
  //block1:
  		/*
--- 162,166 ----
  				 f_name, errno);
  			cleanup();
! 		 /*NOTREACHED*/}
  //block1:
  		/*
***************
*** 195,200 ****
  			}
  			l_seek(fd[0], K_1, 0);
! 			if ((nbytes = read(fd[0], buf_list[0], CHUNK)) !=
! 					CHUNK) {
  				tst_resm(TFAIL, "Expected nbytes = 64, got "
  					 "%d", nbytes);
--- 186,190 ----
  			}
  			l_seek(fd[0], K_1, 0);
! 			if ((nbytes = read(fd[0], buf_list[0], CHUNK)) != CHUNK) {
  				tst_resm(TFAIL, "Expected nbytes = 64, got "
  					 "%d", nbytes);
***************
*** 202,206 ****
  			} else {
  				if (memcmp(buf_list[0], buf_list[1], CHUNK)
! 						!= 0) {
  					tst_resm(TFAIL, "Error: writev() "
  						 "over wrote %s", f_name);
--- 192,196 ----
  			} else {
  				if (memcmp(buf_list[0], buf_list[1], CHUNK)
! 				    != 0) {
  					tst_resm(TFAIL, "Error: writev() "
  						 "over wrote %s", f_name);
***************
*** 240,245 ****
   *	performs all ONE TIME setup for this test
   */
! void
! setup(void)
  {
  	/* Capture signals */
--- 230,234 ----
   *	performs all ONE TIME setup for this test
   */
! void setup(void)
  {
  	/* Capture signals */
***************
*** 262,272 ****
  	sprintf(f_name, "%s.%d", name, getpid());
  
!         bad_addr = mmap(0, 1, PROT_NONE,
! 			MAP_PRIVATE_EXCEPT_UCLINUX|MAP_ANONYMOUS, 0, 0);
!         if (bad_addr == MAP_FAILED) {
!             printf("mmap failed\n");
!         }
!         wr_iovec[0].iov_base = bad_addr;
! 
  
  }
--- 251,260 ----
  	sprintf(f_name, "%s.%d", name, getpid());
  
! 	bad_addr = mmap(0, 1, PROT_NONE,
! 			MAP_PRIVATE_EXCEPT_UCLINUX | MAP_ANONYMOUS, 0, 0);
! 	if (bad_addr == MAP_FAILED) {
! 		printf("mmap failed\n");
! 	}
! 	wr_iovec[0].iov_base = bad_addr;
  
  }
***************
*** 277,282 ****
   *	completion or premature exit
   */
! void
! cleanup(void)
  {
  	/*
--- 265,269 ----
   *	completion or premature exit
   */
! void cleanup(void)
  {
  	/*
***************
*** 299,313 ****
   *	Signal handler function for SIGTERM and SIGPIPE
   */
! void
! sighandler(int sig)
  {
! 	switch(sig) {
! 	case SIGTERM: break;
! 	case SIGPIPE: ++in_sighandler;
! 		      return;
  	default:
! 			tst_resm(TFAIL, "sighandler() received invalid signal "
! 					": %d", sig);
! 			break;
  	}
  
--- 286,301 ----
   *	Signal handler function for SIGTERM and SIGPIPE
   */
! void sighandler(int sig)
  {
! 	switch (sig) {
! 	case SIGTERM:
! 		break;
! 	case SIGPIPE:
! 		++in_sighandler;
! 		return;
  	default:
! 		tst_resm(TFAIL, "sighandler() received invalid signal "
! 			 ": %d", sig);
! 		break;
  	}
  
***************
*** 316,321 ****
  			 f_name, errno);
  		cleanup();
! 		/*NOTREACHED*/
! 	}
  	exit(sig);
  }
--- 304,308 ----
  			 f_name, errno);
  		cleanup();
! 	 /*NOTREACHED*/}
  	exit(sig);
  }
***************
*** 325,330 ****
   *	Wrap around for regular lseek function for giving error message
   */
! long
! l_seek(int fdesc, long offset, int whence)
  {
  	if (lseek(fdesc, offset, whence) < 0) {
--- 312,316 ----
   *	Wrap around for regular lseek function for giving error message
   */
! long l_seek(int fdesc, long offset, int whence)
  {
  	if (lseek(fdesc, offset, whence) < 0) {

Index: writev01.c
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/writev/writev01.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** writev01.c	26 Feb 2009 12:17:08 -0000	1.13
--- writev01.c	23 Mar 2009 13:36:16 -0000	1.14
***************
*** 64,68 ****
  
  #define	NBUFS		4
! #define	CHUNK		64		/* single chunk */
  #define	MAX_IOVEC	16
  #define	DATA_FILE	"writev_data_file"
--- 64,68 ----
  
  #define	NBUFS		4
! #define	CHUNK		64	/* single chunk */
  #define	MAX_IOVEC	16
  #define	DATA_FILE	"writev_data_file"
***************
*** 71,120 ****
  
  struct iovec wr_iovec[MAX_IOVEC] = {
! 	/* iov_base */		/* iov_len */
  
  	/* testcase# 1 */
! 	{buf1,			-1},
! 	{(buf1 + CHUNK),	CHUNK},
! 	{(buf1 + CHUNK * 2),	CHUNK},
  
  	/* testcase# 2 */
! 	{(buf1 + CHUNK * 3),	G_1},
! 	{(buf1 + CHUNK * 4),	G_1},
! 	{(buf1 + CHUNK * 5),	G_1},
  
  	/* testcase# 3 */
! 	{(buf1 + CHUNK * 6),	CHUNK},
! 	{(caddr_t)-1,		CHUNK},
! 	{(buf1 + CHUNK * 8),	CHUNK},
  
  	/* testcase# 4 */
! 	{(buf1 + CHUNK * 9),	CHUNK},
  
  	/* testcase# 5 */
! 	{(buf1 + CHUNK * 10),	CHUNK},
  
  	/* testcase# 6 */
! 	{(buf1 + CHUNK * 11),	CHUNK},
  
  	/* testcase# 7 */
! 	{(buf1 + CHUNK * 12),	CHUNK},
  
  	/* testcase# 8 */
! 	{(buf1 + CHUNK * 13),	0},
  
  	/* testcase# 7 */
! 	{(caddr_t)NULL,		0},
! 	{(caddr_t)NULL,		0}
  };
  
  char name[K_1], f_name[K_1];
  
! char * bad_addr = 0;
  
  /* 0 terminated list of expected errnos */
! int exp_enos[] = {14, 22, 32, 77, 0};
  
  int fd[4], in_sighandler;
! int pfd[2];				/* pipe fd's */
  char *buf_list[NBUFS];
  int fail;
--- 71,120 ----
  
  struct iovec wr_iovec[MAX_IOVEC] = {
! 	/* iov_base *//* iov_len */
  
  	/* testcase# 1 */
! 	{buf1, -1},
! 	{(buf1 + CHUNK), CHUNK},
! 	{(buf1 + CHUNK * 2), CHUNK},
  
  	/* testcase# 2 */
! 	{(buf1 + CHUNK * 3), G_1},
! 	{(buf1 + CHUNK * 4), G_1},
! 	{(buf1 + CHUNK * 5), G_1},
  
  	/* testcase# 3 */
! 	{(buf1 + CHUNK * 6), CHUNK},
! 	{(caddr_t) - 1, CHUNK},
! 	{(buf1 + CHUNK * 8), CHUNK},
  
  	/* testcase# 4 */
! 	{(buf1 + CHUNK * 9), CHUNK},
  
  	/* testcase# 5 */
! 	{(buf1 + CHUNK * 10), CHUNK},
  
  	/* testcase# 6 */
! 	{(buf1 + CHUNK * 11), CHUNK},
  
  	/* testcase# 7 */
! 	{(buf1 + CHUNK * 12), CHUNK},
  
  	/* testcase# 8 */
! 	{(buf1 + CHUNK * 13), 0},
  
  	/* testcase# 7 */
! 	{(caddr_t) NULL, 0},
! 	{(caddr_t) NULL, 0}
  };
  
  char name[K_1], f_name[K_1];
  
! char *bad_addr = 0;
  
  /* 0 terminated list of expected errnos */
! int exp_enos[] = { 14, 22, 32, 77, 0 };
  
  int fd[4], in_sighandler;
! int pfd[2];			/* pipe fd's */
  char *buf_list[NBUFS];
  int fail;
***************
*** 135,147 ****
  	int nbytes, ret;
  
! 	int lc;				/* loop counter */
! 	char *msg;			/* message returned from parse_opts */
  
  	/* parse standard options */
! 	if ((msg = parse_opts(argc, argv, (option_t *)NULL, NULL)) !=
! 	    (char *) NULL) {
  		tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
! 		/*NOTREACHED*/
! 	}
  
  	/* set "tstdir", and "testfile" vars */
--- 135,146 ----
  	int nbytes, ret;
  
! 	int lc;			/* loop counter */
! 	char *msg;		/* message returned from parse_opts */
  
  	/* parse standard options */
! 	if ((msg = parse_opts(argc, argv, (option_t *) NULL, NULL)) !=
! 	    (char *)NULL) {
  		tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
! 	 /*NOTREACHED*/}
  
  	/* set "tstdir", and "testfile" vars */
***************
*** 151,155 ****
  	for (lc = 0; TEST_LOOPING(lc); lc++) {
  
- 	
  		/* reset Tst_count in case we are looping */
  		Tst_count = 0;
--- 150,153 ----
***************
*** 160,176 ****
  		buf_list[3] = (char *)NULL;
  
! 		fd[1] = -1;		/* Invalid file descriptor  */
  
  		if (signal(SIGTERM, sighandler) == SIG_ERR) {
  			perror("signal: SIGTERM");
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		if (signal(SIGPIPE, sighandler) == SIG_ERR) {
  			perror("signal: SIGPIPE");
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		init_buffs(buf_list);
--- 158,172 ----
  		buf_list[3] = (char *)NULL;
  
! 		fd[1] = -1;	/* Invalid file descriptor  */
  
  		if (signal(SIGTERM, sighandler) == SIG_ERR) {
  			perror("signal: SIGTERM");
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		if (signal(SIGPIPE, sighandler) == SIG_ERR) {
  			perror("signal: SIGPIPE");
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		init_buffs(buf_list);
***************
*** 180,196 ****
  				 f_name, errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		} else if ((nbytes = write(fd[0], buf_list[2], K_1)) != K_1) {
! 			tst_resm(TFAIL, "write failed: nbytes = %d, "
! 				 "errno = %d", nbytes, errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		if (close(fd[0]) < 0) {
  			tst_resm(TFAIL, "close failed: errno: %d", errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		if ((fd[0] = open(f_name, O_RDWR, 0666)) < 0) {
--- 176,191 ----
  				 f_name, errno);
  			cleanup();
! 		 /*NOTREACHED*/} else
! 		    if ((nbytes = write(fd[0], buf_list[2], K_1)) != K_1) {
! 			tst_resm(TFAIL,
! 				 "write failed: nbytes = %d, " "errno = %d",
! 				 nbytes, errno);
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		if (close(fd[0]) < 0) {
  			tst_resm(TFAIL, "close failed: errno: %d", errno);
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		if ((fd[0] = open(f_name, O_RDWR, 0666)) < 0) {
***************
*** 198,204 ****
  				 f_name, errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		}
! 
  //block1: /* given vector length -1, writev() return EINVAL. */
  		tst_resm(TINFO, "Enter Block 1");
--- 193,197 ----
  				 f_name, errno);
  			cleanup();
! 		 /*NOTREACHED*/}
  //block1: /* given vector length -1, writev() return EINVAL. */
  		tst_resm(TINFO, "Enter Block 1");
***************
*** 227,234 ****
  
  //block2:
! 	/* This testcases doesn't look like what it intent to do
!         * 1. it is not using the wr_iovec initialized
!         * 2. read() and following message is not consistent
!         */
  		tst_resm(TINFO, "Enter block 2");
  		fail = 0;
--- 220,227 ----
  
  //block2:
! 		/* This testcases doesn't look like what it intent to do
! 		 * 1. it is not using the wr_iovec initialized
! 		 * 2. read() and following message is not consistent
! 		 */
  		tst_resm(TINFO, "Enter block 2");
  		fail = 0;
***************
*** 246,251 ****
  				fail = 1;
  			}
! 			if ((nbytes = read(fd[0], buf_list[0], CHUNK)) !=
! 			    CHUNK) {
  				perror("read error");
  				tst_resm(TFAIL, "expected nbytes = 1024, "
--- 239,243 ----
  				fail = 1;
  			}
! 			if ((nbytes = read(fd[0], buf_list[0], CHUNK)) != CHUNK) {
  				perror("read error");
  				tst_resm(TFAIL, "expected nbytes = 1024, "
***************
*** 296,302 ****
  				 nbytes);
  			fail = 1;
! 		} else if (memcmp((buf_list[0]+ CHUNK * 6),
! 				  (buf_list[2] + CHUNK * 6),
! 				  CHUNK * 3) != 0) {
  			tst_resm(TFAIL, "Error: writev() over wrote %s",
  				 f_name);
--- 288,293 ----
  				 nbytes);
  			fail = 1;
! 		} else if (memcmp((buf_list[0] + CHUNK * 6),
! 				  (buf_list[2] + CHUNK * 6), CHUNK * 3) != 0) {
  			tst_resm(TFAIL, "Error: writev() over wrote %s",
  				 f_name);
***************
*** 387,398 ****
  
  //block7:
! 	 /* given 4 vectors, 2 are NULL, 1 with 0 length and 1 with fixed length,
!          * writev() success writing fixed length.
!          */
  		tst_resm(TINFO, "Enter block 7");
  		fail = 0;
  
  		l_seek(fd[0], CHUNK * 12, 0);
!    		if ((ret = writev(fd[0], (wr_iovec + 12), 4)) != CHUNK) {
  			tst_resm(TFAIL, "writev() failed writing %d bytes, "
  				 "followed by two NULL vectors", CHUNK);
--- 378,389 ----
  
  //block7:
! 		/* given 4 vectors, 2 are NULL, 1 with 0 length and 1 with fixed length,
! 		 * writev() success writing fixed length.
! 		 */
  		tst_resm(TINFO, "Enter block 7");
  		fail = 0;
  
  		l_seek(fd[0], CHUNK * 12, 0);
! 		if ((ret = writev(fd[0], (wr_iovec + 12), 4)) != CHUNK) {
  			tst_resm(TFAIL, "writev() failed writing %d bytes, "
  				 "followed by two NULL vectors", CHUNK);
***************
*** 427,435 ****
  				fail = 1;
  			} else if ((writev(pfd[1], (wr_iovec + 12), 1)
! 					< 0) && in_sighandler) {
  				TEST_ERROR_LOG(errno);
  				if (errno == EPIPE) {
  					tst_resm(TINFO, "Received EPIPE as "
! 						"expected");
  				} else {
  					tst_resm(TFAIL, "expected errno = "
--- 418,426 ----
  				fail = 1;
  			} else if ((writev(pfd[1], (wr_iovec + 12), 1)
! 				    < 0) && in_sighandler) {
  				TEST_ERROR_LOG(errno);
  				if (errno == EPIPE) {
  					tst_resm(TINFO, "Received EPIPE as "
! 						 "expected");
  				} else {
  					tst_resm(TFAIL, "expected errno = "
***************
*** 453,458 ****
  	close(fd[1]);
  	cleanup();
! 	/*NOTREACHED*/
! 	return 0;
  }
  
--- 444,448 ----
  	close(fd[1]);
  	cleanup();
! 	 /*NOTREACHED*/ return 0;
  }
  
***************
*** 461,466 ****
   *	performs all ONE TIME setup for this test
   */
! void
! setup(void)
  {
  	/* capture signals */
--- 451,455 ----
   *	performs all ONE TIME setup for this test
   */
! void setup(void)
  {
  	/* capture signals */
***************
*** 483,492 ****
  	sprintf(f_name, "%s.%d", name, getpid());
  
!         bad_addr = mmap(0, 1, PROT_NONE,
! 			MAP_PRIVATE_EXCEPT_UCLINUX|MAP_ANONYMOUS, 0, 0);
!         if (bad_addr == MAP_FAILED) {
!             printf("mmap failed\n");
!         }
!         wr_iovec[7].iov_base = bad_addr;
  
  }
--- 472,481 ----
  	sprintf(f_name, "%s.%d", name, getpid());
  
! 	bad_addr = mmap(0, 1, PROT_NONE,
! 			MAP_PRIVATE_EXCEPT_UCLINUX | MAP_ANONYMOUS, 0, 0);
! 	if (bad_addr == MAP_FAILED) {
! 		printf("mmap failed\n");
! 	}
! 	wr_iovec[7].iov_base = bad_addr;
  
  }
***************
*** 497,502 ****
   *	completion or premature exit
   */
! void
! cleanup(void)
  {
  	/*
--- 486,490 ----
   *	completion or premature exit
   */
! void cleanup(void)
  {
  	/*
***************
*** 515,520 ****
  }
  
! int
! init_buffs(char *pbufs[])
  {
  	int i;
--- 503,507 ----
  }
  
! int init_buffs(char *pbufs[])
  {
  	int i;
***************
*** 523,550 ****
  		switch (i) {
  		case 0:
! 		
! 		case 1:	fill_mem(pbufs[i], 0, 1);
  			break;
! 		
! 		case 2:	fill_mem(pbufs[i], 1, 0);
  			break;
  
! 		default: tst_resm(TFAIL, "Error detected: init_buffs()");
! 			 cleanup();
! 			 /*NOTREACHED*/
! 		}
  	}
  	return 0;
  }
  
! int
! fill_mem(char *c_ptr, int c1, int c2)
  {
  	int count;
  
  	for (count = 1; count <= K_1 / CHUNK; count++) {
! 		if (count & 0x01) {		/* if odd */
  			memset(c_ptr, c1, CHUNK);
! 		} else {			/* if even */
  			memset(c_ptr, c2, CHUNK);
  		}
--- 510,538 ----
  		switch (i) {
  		case 0:
! 
! 		case 1:
! 			fill_mem(pbufs[i], 0, 1);
  			break;
! 
! 		case 2:
! 			fill_mem(pbufs[i], 1, 0);
  			break;
  
! 		default:
! 			tst_resm(TFAIL, "Error detected: init_buffs()");
! 			cleanup();
! 		 /*NOTREACHED*/}
  	}
  	return 0;
  }
  
! int fill_mem(char *c_ptr, int c1, int c2)
  {
  	int count;
  
  	for (count = 1; count <= K_1 / CHUNK; count++) {
! 		if (count & 0x01) {	/* if odd */
  			memset(c_ptr, c1, CHUNK);
! 		} else {	/* if even */
  			memset(c_ptr, c2, CHUNK);
  		}
***************
*** 553,568 ****
  }
  
! void
! sighandler(int sig)
  {
  	switch (sig) {
! 	case SIGTERM:	break;
  
! 	case SIGPIPE:	++in_sighandler;
! 			return;
  
! 	default:	tst_resm(TFAIL, "sighandler() received invalid "
! 				 "signal:%d", sig);
! 			break;
  	}
  
--- 541,558 ----
  }
  
! void sighandler(int sig)
  {
  	switch (sig) {
! 	case SIGTERM:
! 		break;
  
! 	case SIGPIPE:
! 		++in_sighandler;
! 		return;
  
! 	default:
! 		tst_resm(TFAIL, "sighandler() received invalid "
! 			 "signal:%d", sig);
! 		break;
  	}
  
***************
*** 571,581 ****
  			 f_name, errno);
  		tst_exit();
! 		/*NOTREACHED*/
! 	}
  	exit(sig);
  }
  
! long
! l_seek(int fdesc, long offset, int whence)
  {
  	if (lseek(fdesc, offset, whence) < 0) {
--- 561,569 ----
  			 f_name, errno);
  		tst_exit();
! 	 /*NOTREACHED*/}
  	exit(sig);
  }
  
! long l_seek(int fdesc, long offset, int whence)
  {
  	if (lseek(fdesc, offset, whence) < 0) {

Index: writev04.c
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/writev/writev04.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** writev04.c	26 Feb 2009 12:17:08 -0000	1.11
--- writev04.c	23 Mar 2009 13:36:16 -0000	1.12
***************
*** 59,83 ****
  
  #define	NBUFS		4
! #define	CHUNK		64		/* single chunk */
  #define	MAX_IOVEC	4
  #define	DATA_FILE	"writev_data_file"
  
! char	buf1[K_1], buf2[K_1], buf3[K_1];
! char*	bad_addr = 0;
  
  struct iovec wr_iovec[MAX_IOVEC] = {
  	/* testcase #1 */
! 	{buf1 + (CHUNK * 6),	CHUNK},
! 	{(caddr_t)-1,		CHUNK},
! 	{buf1 + (CHUNK * 8),	CHUNK},
! 	{(caddr_t)NULL,		0}
  };
  
  /* 0 terminated list of expected errnos */
! int exp_enos[] = {0};
  
! char	name[K_1], f_name[K_1];
! int	fd[2], in_sighandler;
! char	*buf_list[NBUFS];
  
  char *TCID = "writev04";
--- 59,83 ----
  
  #define	NBUFS		4
! #define	CHUNK		64	/* single chunk */
  #define	MAX_IOVEC	4
  #define	DATA_FILE	"writev_data_file"
  
! char buf1[K_1], buf2[K_1], buf3[K_1];
! char *bad_addr = 0;
  
  struct iovec wr_iovec[MAX_IOVEC] = {
  	/* testcase #1 */
! 	{buf1 + (CHUNK * 6), CHUNK},
! 	{(caddr_t) - 1, CHUNK},
! 	{buf1 + (CHUNK * 8), CHUNK},
! 	{(caddr_t) NULL, 0}
  };
  
  /* 0 terminated list of expected errnos */
! int exp_enos[] = { 0 };
  
! char name[K_1], f_name[K_1];
! int fd[2], in_sighandler;
! char *buf_list[NBUFS];
  
  char *TCID = "writev04";
***************
*** 95,112 ****
  int main(int argc, char **argv)
  {
! 	int lc;				/* loop counter */
! 	char *msg;			/* message returned from parse_opts */
  
  	int nbytes;
  
  	/* parse standard options */
! 	if ((msg = parse_opts(argc, argv, (option_t *)NULL, NULL)) !=
! 	    (char *) NULL) {
  		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
  		tst_exit();
! 		/*NOTREACHED*/
! 	}
  
! 	setup();			/* set "tstdir", and "testfile" vars */
  
  	/* The following loop checks looping state if -i option given */
--- 95,111 ----
  int main(int argc, char **argv)
  {
! 	int lc;			/* loop counter */
! 	char *msg;		/* message returned from parse_opts */
  
  	int nbytes;
  
  	/* parse standard options */
! 	if ((msg = parse_opts(argc, argv, (option_t *) NULL, NULL)) !=
! 	    (char *)NULL) {
  		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
  		tst_exit();
! 	 /*NOTREACHED*/}
  
! 	setup();		/* set "tstdir", and "testfile" vars */
  
  	/* The following loop checks looping state if -i option given */
***************
*** 121,125 ****
  		buf_list[3] = (char *)NULL;
  
! 		fd[1] = -1;		/* Invalid file descriptor */
  
  		if (signal(SIGTERM, sighandler) == SIG_ERR) {
--- 120,124 ----
  		buf_list[3] = (char *)NULL;
  
! 		fd[1] = -1;	/* Invalid file descriptor */
  
  		if (signal(SIGTERM, sighandler) == SIG_ERR) {
***************
*** 127,132 ****
  			tst_resm(TFAIL, "signal() SIGTERM FAILED");
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		if (signal(SIGPIPE, sighandler) == SIG_ERR) {
--- 126,130 ----
  			tst_resm(TFAIL, "signal() SIGTERM FAILED");
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		if (signal(SIGPIPE, sighandler) == SIG_ERR) {
***************
*** 134,139 ****
  			tst_resm(TFAIL, "signal() SIGPIPE FAILED");
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		memset(buf_list[0], 0, K_1);
--- 132,136 ----
  			tst_resm(TFAIL, "signal() SIGPIPE FAILED");
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		memset(buf_list[0], 0, K_1);
***************
*** 144,156 ****
  				 "errno = %d", f_name, errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		} else {
! 			if ((nbytes = write(fd[0], buf_list[1], K_1)) !=
! 			    K_1) {
  				tst_resm(TFAIL, "write(2) failed: nbytes "
  					 "= %d, errno = %d", nbytes, errno);
  				cleanup();
! 				/*NOTREACHED*/
! 			}
  		}
  
--- 141,150 ----
  				 "errno = %d", f_name, errno);
  			cleanup();
! 		 /*NOTREACHED*/} else {
! 			if ((nbytes = write(fd[0], buf_list[1], K_1)) != K_1) {
  				tst_resm(TFAIL, "write(2) failed: nbytes "
  					 "= %d, errno = %d", nbytes, errno);
  				cleanup();
! 			 /*NOTREACHED*/}
  		}
  
***************
*** 158,163 ****
  			tst_resm(TFAIL, "close failed: errno = %d", errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		if ((fd[0] = open(f_name, O_RDWR, 0666)) < 0) {
--- 152,156 ----
  			tst_resm(TFAIL, "close failed: errno = %d", errno);
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		if ((fd[0] = open(f_name, O_RDWR, 0666)) < 0) {
***************
*** 165,176 ****
  				 f_name, errno);
  			cleanup();
! 			/*NOTREACHED*/
! 			return 0;
  		}
- 
  //block1:
  		tst_resm(TINFO, "Enter block 1");
  		fail = 0;
! 	
  		/*
  		 * In this block we are trying to call writev() with
--- 158,167 ----
  				 f_name, errno);
  			cleanup();
! 			 /*NOTREACHED*/ return 0;
  		}
  //block1:
  		tst_resm(TINFO, "Enter block 1");
  		fail = 0;
! 
  		/*
  		 * In this block we are trying to call writev() with
***************
*** 188,192 ****
  			} else {
  				tst_resm(TFAIL, "Received unexpected error: %d",
! 					errno);
  			}
  		} else {
--- 179,183 ----
  			} else {
  				tst_resm(TFAIL, "Received unexpected error: %d",
! 					 errno);
  			}
  		} else {
***************
*** 224,228 ****
  				tst_resm(TFAIL, "Got error EFAULT");
  			} else {
! 				tst_resm(TFAIL, "Received unexpected error: %d",					errno);
  			}
  		} else {
--- 215,220 ----
  				tst_resm(TFAIL, "Got error EFAULT");
  			} else {
! 				tst_resm(TFAIL, "Received unexpected error: %d",
! 					 errno);
  			}
  		} else {
***************
*** 263,267 ****
  			} else {
  				tst_resm(TFAIL, "Received unexpected error: %d",
! 					errno);
  			}
  		} else {
--- 255,259 ----
  			} else {
  				tst_resm(TFAIL, "Received unexpected error: %d",
! 					 errno);
  			}
  		} else {
***************
*** 301,306 ****
   *	performs all ONE TIME setup for this test
   */
! void
! setup(void)
  {
  	/* capture signals */
--- 293,297 ----
   *	performs all ONE TIME setup for this test
   */
! void setup(void)
  {
  	/* capture signals */
***************
*** 319,327 ****
  	sprintf(f_name, "%s.%d", name, getpid());
  
!         bad_addr = mmap(0, 1, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0);
!         if (bad_addr == MAP_FAILED) {
!                 tst_brkm(TBROK, cleanup, "mmap failed");
!         }
!         wr_iovec[1].iov_base = bad_addr;
  
  }
--- 310,318 ----
  	sprintf(f_name, "%s.%d", name, getpid());
  
! 	bad_addr = mmap(0, 1, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
! 	if (bad_addr == MAP_FAILED) {
! 		tst_brkm(TBROK, cleanup, "mmap failed");
! 	}
! 	wr_iovec[1].iov_base = bad_addr;
  
  }
***************
*** 332,337 ****
   *	completion or premature exit
   */
! void
! cleanup(void)
  {
  	/*
--- 323,327 ----
   *	completion or premature exit
   */
! void cleanup(void)
  {
  	/*
***************
*** 354,368 ****
   *	Signal handler function for SIGTERM and SIGPIPE
   */
! void
! sighandler(int sig)
  {
! 	switch(sig) {
! 	case SIGTERM: break;
! 	case SIGPIPE: ++in_sighandler;
! 			return;
  	default:
! 			tst_resm(TFAIL, "sighandler() received invalid signal "
! 				": %d", sig);
! 			break;
  	}
  
--- 344,359 ----
   *	Signal handler function for SIGTERM and SIGPIPE
   */
! void sighandler(int sig)
  {
! 	switch (sig) {
! 	case SIGTERM:
! 		break;
! 	case SIGPIPE:
! 		++in_sighandler;
! 		return;
  	default:
! 		tst_resm(TFAIL, "sighandler() received invalid signal "
! 			 ": %d", sig);
! 		break;
  	}
  
***************
*** 371,376 ****
  			 f_name, errno);
  		cleanup();
! 		/*NOTREACHED*/
! 	}
  	exit(sig);
  }
--- 362,366 ----
  			 f_name, errno);
  		cleanup();
! 	 /*NOTREACHED*/}
  	exit(sig);
  }
***************
*** 380,385 ****
   *	Wrap around for regular lseek function for giving error message
   */
! long
! l_seek(int fdesc, long offset, int whence)
  {
  	if (lseek(fdesc, offset, whence) < 0) {
--- 370,374 ----
   *	Wrap around for regular lseek function for giving error message
   */
! long l_seek(int fdesc, long offset, int whence)
  {
  	if (lseek(fdesc, offset, whence) < 0) {

Index: writev05.c
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/writev/writev05.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** writev05.c	26 Feb 2009 12:17:08 -0000	1.11
--- writev05.c	23 Mar 2009 13:36:16 -0000	1.12
***************
*** 58,82 ****
  
  #define	NBUFS		2
! #define	CHUNK		K_1		/* single chunk */
  #define	MAX_IOVEC	2
  #define	DATA_FILE	"writev_data_file"
  
! char	buf1[K_1];
! char	buf2[K_1];
! char	buf3[K_1];
  
! char * bad_addr = 0;
  
! struct	iovec	wr_iovec[MAX_IOVEC] = {
! 	{(caddr_t)-1,	CHUNK},
! 	{(caddr_t)NULL,	0}
  };
  
  /* 0 terminated list of expected errnos */
! int exp_enos[] = {14,0};
  
! char	name[K_1], f_name[K_1];
! int	fd[2], in_sighandler;
! char	*buf_list[NBUFS];
  
  char *TCID = "writev05";
--- 58,82 ----
  
  #define	NBUFS		2
! #define	CHUNK		K_1	/* single chunk */
  #define	MAX_IOVEC	2
  #define	DATA_FILE	"writev_data_file"
  
! char buf1[K_1];
! char buf2[K_1];
! char buf3[K_1];
  
! char *bad_addr = 0;
  
! struct iovec wr_iovec[MAX_IOVEC] = {
! 	{(caddr_t) - 1, CHUNK},
! 	{(caddr_t) NULL, 0}
  };
  
  /* 0 terminated list of expected errnos */
! int exp_enos[] = { 14, 0 };
  
! char name[K_1], f_name[K_1];
! int fd[2], in_sighandler;
! char *buf_list[NBUFS];
  
  char *TCID = "writev05";
***************
*** 94,110 ****
  int main(int argc, char **argv)
  {
! 	int lc;				/* loop counter */
! 	char *msg;			/* message returned from parse_opts */
  
  	int nbytes;
  
  	/* parse standard options */
! 	if ((msg = parse_opts(argc, argv, (option_t *)NULL, NULL)) !=
! 			(char *) NULL) {
  		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
! 		/*NOTREACHED*/
! 	}
  
! 	setup();			/* set "tstdir", and "testfile" vars */
  
  	/* The following loop checks looping state if -i option given */
--- 94,109 ----
  int main(int argc, char **argv)
  {
! 	int lc;			/* loop counter */
! 	char *msg;		/* message returned from parse_opts */
  
  	int nbytes;
  
  	/* parse standard options */
! 	if ((msg = parse_opts(argc, argv, (option_t *) NULL, NULL)) !=
! 	    (char *)NULL) {
  		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
! 	 /*NOTREACHED*/}
  
! 	setup();		/* set "tstdir", and "testfile" vars */
  
  	/* The following loop checks looping state if -i option given */
***************
*** 117,121 ****
  		buf_list[1] = buf2;
  
! 		fd[1] = -1;		/* Invalid file descriptor */
  
  		if (signal(SIGTERM, sighandler) == SIG_ERR) {
--- 116,120 ----
  		buf_list[1] = buf2;
  
! 		fd[1] = -1;	/* Invalid file descriptor */
  
  		if (signal(SIGTERM, sighandler) == SIG_ERR) {
***************
*** 123,128 ****
  			tst_resm(TFAIL, "signal() SIGTERM FAILED");
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		if (signal(SIGPIPE, sighandler) == SIG_ERR) {
--- 122,126 ----
  			tst_resm(TFAIL, "signal() SIGTERM FAILED");
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		if (signal(SIGPIPE, sighandler) == SIG_ERR) {
***************
*** 130,135 ****
  			tst_resm(TFAIL, "signal() SIGPIPE FAILED");
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		/* Fill the buf_list[0] and buf_list[1] with 0 zeros */
--- 128,132 ----
  			tst_resm(TFAIL, "signal() SIGPIPE FAILED");
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		/* Fill the buf_list[0] and buf_list[1] with 0 zeros */
***************
*** 141,153 ****
  				 "errno = %d", f_name, errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		} else {
! 			if ((nbytes = write(fd[0], buf_list[1], K_1)) !=
! 				K_1) {
  				tst_resm(TFAIL, "write(2) failed: nbytes "
! 					"= %d, errno = %d", nbytes, errno);
  				cleanup();
! 				/*NOTREACHED*/
! 			}
  		}
  
--- 138,147 ----
  				 "errno = %d", f_name, errno);
  			cleanup();
! 		 /*NOTREACHED*/} else {
! 			if ((nbytes = write(fd[0], buf_list[1], K_1)) != K_1) {
  				tst_resm(TFAIL, "write(2) failed: nbytes "
! 					 "= %d, errno = %d", nbytes, errno);
  				cleanup();
! 			 /*NOTREACHED*/}
  		}
  
***************
*** 155,160 ****
  			tst_resm(TFAIL, "close failed: errno = %d", errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		if ((fd[0] = open(f_name, O_RDWR, 0666)) < 0) {
--- 149,153 ----
  			tst_resm(TFAIL, "close failed: errno = %d", errno);
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		if ((fd[0] = open(f_name, O_RDWR, 0666)) < 0) {
***************
*** 162,167 ****
  				 f_name, errno);
  			cleanup();
! 			/*NOTREACHED*/
! 		}
  
  		/*
--- 155,159 ----
  				 f_name, errno);
  			cleanup();
! 		 /*NOTREACHED*/}
  
  		/*
***************
*** 225,230 ****
   *	performs all ONE TIME setup for this test
   */
! void
! setup(void)
  {
  	/* capture signals */
--- 217,221 ----
   *	performs all ONE TIME setup for this test
   */
! void setup(void)
  {
  	/* capture signals */
***************
*** 247,257 ****
  	sprintf(f_name, "%s.%d", name, getpid());
  
!         bad_addr = mmap(0, 1, PROT_NONE,
! 			MAP_PRIVATE_EXCEPT_UCLINUX|MAP_ANONYMOUS, 0, 0);
!         if (bad_addr == MAP_FAILED) {
!             printf("mmap failed\n");
!         }
!         wr_iovec[0].iov_base = bad_addr;
! 
  
  }
--- 238,247 ----
  	sprintf(f_name, "%s.%d", name, getpid());
  
! 	bad_addr = mmap(0, 1, PROT_NONE,
! 			MAP_PRIVATE_EXCEPT_UCLINUX | MAP_ANONYMOUS, 0, 0);
! 	if (bad_addr == MAP_FAILED) {
! 		printf("mmap failed\n");
! 	}
! 	wr_iovec[0].iov_base = bad_addr;
  
  }
***************
*** 262,267 ****
   *	completion or premature exit
   */
! void
! cleanup(void)
  {
  	/*
--- 252,256 ----
   *	completion or premature exit
   */
! void cleanup(void)
  {
  	/*
***************
*** 284,298 ****
   *	Signal handler for SIGTERM and SIGPIPE
   */
! void
! sighandler(int sig)
  {
! 	switch(sig) {
! 	case SIGTERM: break;
! 	case SIGPIPE: ++in_sighandler;
! 			return;
  	default:
! 			tst_resm(TFAIL, "sighandler() received invalid signal "
! 					": %d", sig);
! 			break;
  	}
  
--- 273,288 ----
   *	Signal handler for SIGTERM and SIGPIPE
   */
! void sighandler(int sig)
  {
! 	switch (sig) {
! 	case SIGTERM:
! 		break;
! 	case SIGPIPE:
! 		++in_sighandler;
! 		return;
  	default:
! 		tst_resm(TFAIL, "sighandler() received invalid signal "
! 			 ": %d", sig);
! 		break;
  	}
  
***************
*** 301,306 ****
  			 f_name, errno);
  		cleanup();
! 		/*NOTREACHED*/
! 	}
  	exit(sig);
  }
--- 291,295 ----
  			 f_name, errno);
  		cleanup();
! 	 /*NOTREACHED*/}
  	exit(sig);
  }
***************
*** 310,315 ****
   *	Wrap around for regular lseek() to give error message on failure
   */
! long
! l_seek(int fdesc, long offset, int whence)
  {
  	if (lseek(fdesc, offset, whence) < 0) {
--- 299,303 ----
   *	Wrap around for regular lseek() to give error message on failure
   */
! long l_seek(int fdesc, long offset, int whence)
  {
  	if (lseek(fdesc, offset, whence) < 0) {


------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Ltp-cvs mailing list
Ltp-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic