[Ocfstest-commits] colinzhu commits r13 - trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Mon Feb 21 21:24:22 CST 2005


Author: colinzhu
Date: 2005-02-21 21:24:20 -0600 (Mon, 21 Feb 2005)
New Revision: 13

Added:
   trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/Makefile
   trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/basicrw.c
   trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss1.sh
   trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss2.sh
   trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss3.sh
   trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss4.sh
   trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss5.sh
   trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss6.sh
   trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss7.sh
Log:
Added tpstress cases



Added: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/Makefile
===================================================================
--- trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/Makefile	2005-02-02 01:20:42 UTC (rev 12)
+++ trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/Makefile	2005-02-22 03:24:20 UTC (rev 13)
@@ -0,0 +1,74 @@
+# Copyright (c) <2002>, Intel Corporation
+# All rights reserved.
+# 
+# Redistribution and use in source and binary forms, with or 
+# without modification, are permitted provided that the following 
+# conditions are met:
+# 
+# Redistributions of source code must retain the above copyright 
+# notice, this list of conditions and the following disclaimer.
+# Redistributions in binary form must reproduce the above copyright 
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the distribution.
+# 
+# Neither the name of Intel Corporation, nor the names 
+# of its contributors may be used to endorse or promote products 
+# derived from this software without specific prior written permission.
+# 
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
+# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Makefile for tpmultibinode cases.        Colin Zhu <colin.zhu at oracle.com>
+
+# Check that the definitions below are correct for your system
+DEPTH = ../../../../..
+LIBDIR	= $(TET_ROOT)/lib/tet3
+TVSLIBDIR = $(DEPTH)/src/Framework
+TVSINCDIR = $(DEPTH)/src/Framework
+INCDIR	= $(TET_ROOT)/inc/tet3
+#CC	= cc
+# GNU CC
+CC	= gcc
+
+CFLAGS	= -I$(INCDIR) -I$(TVSINCDIR)
+# for SunOS4.1
+#CFLAGS =  -I$(INCDIR) -D_POSIX_SOURCE -DNSIG=32 -DEXIT_SUCCESS=0 -DEXIT_FAILURE=1 -DNULL=0
+
+# when using Distributed TETware on systems such as SVR4 and Solaris
+# SYSLIBS = -lsocket -lnsl
+SYSLIBS =
+
+CTESTCASES=basicrw 
+
+CFLAGS += -g
+
+
+all:	install 
+build:	$(CTESTCASES)
+	chmod a+x $(CTESTCASES)
+
+install: build 
+	mkdir -p  ${DEPTH}/tsets/ocfs2test/tpstress
+	cp $(CTESTCASES) ${DEPTH}/tsets/ocfs2test/tpstress
+	# install tpstresss*.sh *proc.sh and misc .sh
+	cp *.sh ${DEPTH}/tsets/ocfs2test/tpstress
+	cp ../*.sh ${DEPTH}/tsets/ocfs2test/
+	cp ../test.config ${DEPTH}/tsets/ocfs2test/
+
+tc1:	tc1.c $(INCDIR)/tet_api.h $(TVSINCDIR)/TVSFunctions.h $(TVSLIBDIR)/TVSFunctions.o
+	$(CC) $(CFLAGS) -o tc1 tc1.c $(TVSLIBDIR)/TVSFunctions.o $(LIBDIR)/tcm.o $(LIBDIR)/libapi.a $(SYSLIBS)
+
+clean:
+	rm -f *.o
+	rm -f $(CTESTCASES)
+	rm -f ${DEPTH}/tsets/ocfs2test/tpstress/*
+


Property changes on: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/Makefile
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/basicrw.c
===================================================================
--- trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/basicrw.c	2005-02-02 01:20:42 UTC (rev 12)
+++ trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/basicrw.c	2005-02-22 03:24:20 UTC (rev 13)
@@ -0,0 +1,665 @@
+/******************************************************************************
+*******************************************************************************
+**
+**    Copyright 2004 Intel, Inc.
+**
+**    This is free software released under the GNU General Public License.
+**    There is no warranty for this software.  See the file COPYING for
+**    details.
+**
+**
+**    This file is maintained by:
+**      Aaron,Chen <yukun.chen at intel.com>
+**
+*******************************************************************************
+******************************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+
+#define OP_FILE_WRITE    1
+#define OP_FILE_READ     2
+#define OP_INVALID       0
+#define OP_FILE_ATTRIB   3
+#define OP_FILE_GROWTH   4
+#define OP_FILE_SHRINK   5
+#define OP_FILE_DOHOLE   6
+
+#define FALSE 0
+#define TRUE  1
+#define MAX_PARAM_SIZE  256
+
+char filename[256];
+char logfile[256];
+char results_str[256];
+
+#define SIZE 1024 * 4
+int bufsize = SIZE;
+char buf1[SIZE+1];
+char buf2[SIZE+1];
+int loop_times = 0;
+
+int attrib_log = 0;
+
+errmsg(char * str){
+        fprintf(stderr, " error msg:  %s, system error: %s, line %d\n", 
+	    str, strerror(errno),__LINE__);
+}
+help()
+{
+ 	printf("usage: <-t> <-o> <-n> <-s> <-l>\n"
+        "-t w-write, r-read , a-file attrib, g-file growth, s-file shrink\n"
+        "-o offset \n"
+        "-n times to do the operation\n"
+        "-s the value to be written\n"
+	"-l log file to write the test results"
+	"-h help"
+	);
+ 
+}
+
+/*generate the result string in a pre-defined format*/
+void  gen_results(int ret){
+  sprintf(results_str,"TEST_RESULT %d\n",ret);
+}
+
+int log_fileattr(){
+    struct stat fstats;
+    int fd, err;
+    char *str;
+
+    if (stat(filename, &fstats) == -1){
+        fprintf(stderr, "fail to get the file attribute of file %s\n",filename);
+	close(fd);
+	return EXIT_FAILURE;
+    }
+
+    fd = open(logfile, O_CREAT | O_RDWR );
+    if (fd < 0) {
+	fprintf(stderr, " can't open logfile file %s: %s\n",
+		logfile, strerror(errno));
+	return EXIT_FAILURE;
+    }
+
+    err = lseek(fd, 0, SEEK_END);	
+    if(err == -1) {
+	fprintf(stderr, "lseek fail\n");
+	close(fd);
+	return EXIT_FAILURE;
+    }
+   
+    str = malloc(sizeof(char)*256);
+    snprintf(str, 256, "FILE_SIZE %d \n", fstats.st_size);
+    write(fd, str, strlen(str));
+	
+    snprintf(str, 256, "UID %d \n", fstats.st_uid);
+    write(fd, str, strlen(str));
+
+    snprintf(str, 256, "GID %d \n", fstats.st_gid);
+    write(fd, str, strlen(str));
+
+    free(str);	
+    close(fd);
+
+
+    return EXIT_SUCCESS;
+}
+
+int log2file(int ret){
+        int fd, i, c;
+	int err;	
+
+	fd = open(logfile, O_CREAT | O_RDWR );
+	if (fd < 0) {
+		fprintf(stderr, " can't open logfile file %s: %s\n",
+			logfile, strerror(errno));
+		return EXIT_FAILURE;
+	}
+
+	err = lseek(fd, 0, SEEK_END);	
+	if(err == -1) {
+		fprintf(stderr, "lseek fail\n");
+		close(fd);
+		return EXIT_FAILURE;
+	}
+
+        gen_results(ret);
+	write(fd, results_str, strlen(results_str));
+	
+	close(fd);
+	return EXIT_SUCCESS;      
+}
+
+void getfilename()
+{
+	char *ocfsroot;
+
+	ocfsroot = getenv("OCFSROOT");
+	if(ocfsroot == NULL)
+		ocfsroot = "/ocfs";
+
+	snprintf(filename, 255, "%s/ocfs_locktest", ocfsroot);
+        //fprintf(stderr, "the file name is %s\n",filename);
+	filename[255] = 0;
+}
+/*__do_hole_ext1__*/
+int __do_hole_ext1(char *filename, unsigned offset, unsigned int pace, char *str){
+
+  int i=0, fd;
+  unsigned long long out;
+  char *buf1=NULL;
+
+while(i<loop_times){
+
+  fd = open (filename, O_CREAT | O_RDWR);
+  if (fd < 0){
+    fprintf(stderr, "do_hole:  error opening %s:  %s\n", 
+	    filename, strerror(errno));
+    return EXIT_FAILURE;
+  }
+
+  if (i*pace+offset >(0xfffffffe)) break;
+
+    out = lseek(fd, i*pace+offset, SEEK_SET);
+    
+    if ((offset+i*pace) != out) {
+        fprintf(stderr, "do_hole:  error doing lseek():  %s Line: %d\n", 
+	    strerror(errno),__LINE__);
+	fprintf(stderr, "do_hole:  file pos is :  %x\n", 
+	    offset+i*pace);
+	fprintf(stderr, "do_hole:  out is :  %x\n", 
+	    out);
+	if (buf1) free(buf1);
+	return EXIT_FAILURE;
+    }
+    
+    if (write(fd, str, strlen(str)) < 0){
+        fprintf(stderr, "do_hole:  error doing write():  %s\n", 
+	    strerror(errno));
+	if (buf1) free(buf1);
+	return EXIT_FAILURE;
+    }
+
+    out = lseek(fd, i*pace+offset, SEEK_SET);
+    if ((offset+i*pace) != out) {
+        fprintf(stderr, "do_hole:  error doing lseek():  %s\n", 
+	    strerror(errno));
+	if (buf1) free(buf1);
+	return EXIT_FAILURE;
+    }
+  
+    if (!buf1) buf1 = malloc(1024*sizeof(char));
+
+    if (read(fd, buf1, strlen(str)) < 0) {
+        fprintf(stderr, "do_hole:  error doing read):  %s\n", 
+	    strerror(errno));
+	free(buf1);
+	return EXIT_FAILURE;
+    }
+  
+    if ( strcmp(str, buf1) ){
+        fprintf(stderr, "do_hole: the  value we read is not the same as what we wrote");
+	close(fd);
+	free(buf1);
+	return EXIT_FAILURE;
+    }
+
+  if (close(fd) < 0) {
+    fprintf(stderr, "do_hole:  error doing close():  %s\n", 
+	    strerror(errno));
+    return EXIT_FAILURE;
+  }
+
+    i++;
+ } /*while*/
+
+  if (buf1) free(buf1);
+  return EXIT_SUCCESS;
+}
+
+/*__do_hole_ext1__*/
+
+
+/*__do_hole_ext
+The function will be called to do the actual work for hole-making
+ at fd--file to be tested
+ at offset--where we write to
+ at pace--the distance we write in continuous times
+ at str--the value to be written
+
+return EXIT_FAILURE if failure otherwise EXIT_SUCCESS
+
+note: fd will not be close in this function
+*/
+int __do_hole_ext(int fd, unsigned offset, unsigned int pace, char *str){
+  int i=0;
+  unsigned long long out;
+  char *buf1=NULL;
+
+  out = lseek(fd, offset, SEEK_SET);
+  if (offset != out) {
+        fprintf(stderr, "do_hole:  error doing lseek():  %s line %d\n", 
+	    strerror(errno),__LINE__);
+	fprintf(stderr, "do_hole:  file pos is :  %x\n", 
+	    offset+i*pace);
+	if (buf1) free(buf1);
+	return EXIT_FAILURE;
+  }
+
+  while(i<loop_times){
+
+    if (i*pace+offset >(0xfffffffe)) break;
+
+    out = lseek(fd, i*pace+offset, SEEK_SET);
+    
+    if ((offset+i*pace) != out) {
+        fprintf(stderr, "do_hole:  error doing lseek():  %s Line: %d\n", 
+	    strerror(errno),__LINE__);
+	fprintf(stderr, "do_hole:  file pos is :  %x\n", 
+	    offset+i*pace);
+	fprintf(stderr, "do_hole:  out is :  %x\n", 
+	    out);
+	if (buf1) free(buf1);
+	return EXIT_FAILURE;
+    }
+    
+    if (write(fd, str, strlen(str)) < 0){
+        fprintf(stderr, "do_hole:  error doing write():  %s\n", 
+	    strerror(errno));
+	if (buf1) free(buf1);
+	return EXIT_FAILURE;
+    }
+
+    out = lseek(fd, i*pace+offset, SEEK_SET);
+    if ((offset+i*pace) != out) {
+        fprintf(stderr, "do_hole:  error doing lseek():  %s\n", 
+	    strerror(errno));
+	if (buf1) free(buf1);
+	return EXIT_FAILURE;
+    }
+  
+    if (!buf1) buf1 = malloc(1024*sizeof(char));
+
+    if (read(fd, buf1, strlen(str)) < 0) {
+        fprintf(stderr, "do_hole:  error doing read):  %s\n", 
+	    strerror(errno));
+	free(buf1);
+	return EXIT_FAILURE;
+    }
+  
+    if ( strcmp(str, buf1) ){
+        fprintf(stderr, "do_hole: the  value we read is not the same as what we wrote");
+	close(fd);
+	free(buf1);
+	return EXIT_FAILURE;
+    }
+
+    i++;
+  } /*while*/
+
+  if (buf1) free(buf1);
+  return EXIT_SUCCESS;
+}
+
+/*do_hole_ext
+Make loop_times holes in the file refered by filename and then truncate the file to 0
+ at filename: the file we want to do hole
+ at offset: the initinal postion we do hole
+ at str: the value we write to the file
+
+return: EXIT_SUCCESS if success otherwise EXIT_FAILURE
+
+Added @20040719
+*/
+int do_hole_ext(char *filename, int offset,char *str)
+{
+  int fd, i, retval=0;
+  unsigned long long int out, pos;
+  
+  retval = __do_hole_ext1(filename, offset, SIZE*1000, str);
+  return retval;
+
+  fd = open (filename, O_CREAT | O_RDWR);
+  if (fd < 0){
+    fprintf(stderr, "do_hole:  error opening %s:  %s\n", 
+	    filename, strerror(errno));
+    return EXIT_FAILURE;
+  }
+
+   retval = __do_hole_ext(fd, offset, SIZE*1000, str);
+   if ( EXIT_FAILURE == retval ){
+       close(fd);	
+       exit(EXIT_FAILURE);
+   }
+   else{  
+     retval = __do_hole_ext(fd, offset+1024, SIZE*1000, str);
+     if ( EXIT_FAILURE == retval ){
+       close(fd);	
+       exit(EXIT_FAILURE);
+     }
+   }
+
+ /* if (truncate(filename, 0) < 0){
+    fprintf(stderr, "do_hole_ext :  error doing truncate():  %s\n",strerror(errno)); 
+    close(fd);	
+    exit(EXIT_FAILURE);
+  }
+*/
+  if (close(fd) < 0) {
+    fprintf(stderr, "do_hole:  error doing close():  %s\n", 
+	    strerror(errno));
+    return EXIT_FAILURE;
+  }/*close*/
+
+  return EXIT_SUCCESS;
+}
+/*do_hole_ext*/
+
+/*growth_file: 1 means growing the file and 0 means shrinking the file*/
+int change_filesize(int growth_file){
+   int i = 0;
+   int delta = growth_file ? 1 : -1;
+   int err; 
+   struct stat fstats;
+   unsigned long long newfilesize;
+
+   if ( loop_times < 0){
+        fprintf(stderr, "loop times should be larger than 0");
+	return EXIT_FAILURE;
+   }
+
+   if (stat(filename, &fstats) == -1){
+        fprintf(stderr, "fail to get the file attribute of file %s\n",filename);
+	return EXIT_FAILURE;
+    }
+   
+   newfilesize = (unsigned long long)fstats.st_size;
+
+   if (growth_file) {
+     while(i < loop_times){
+        i += delta;
+	newfilesize += SIZE;
+        err = truncate(filename, newfilesize);
+	if(err == -1) {
+		fprintf(stderr, "truncate fail\n");
+		return EXIT_FAILURE;
+	}
+
+	if (attrib_log) log_fileattr();
+     }/*while*/
+    }
+   else{
+     i = loop_times;
+     while(i > 0){
+        i += delta;
+	newfilesize -= SIZE;
+	newfilesize = (newfilesize > 0) ? newfilesize : 0;
+        err = truncate(filename, newfilesize);
+	if(err == -1) {
+		fprintf(stderr, "truncate fail\n");
+		return EXIT_FAILURE;
+	}
+
+	if (attrib_log) log_fileattr();
+     }/*while*/
+   }  
+
+   return EXIT_SUCCESS;
+}
+
+/*Get the file attrib when the file is written*/
+int  get_fileattr(char *filename){
+	int fd, i;
+
+	i = 0;
+	while(i++ < loop_times){
+	  sleep(1);
+	  log_fileattr();
+	}
+
+	return EXIT_SUCCESS;  
+}
+
+/*writefile*/
+int  writefile(char *filename, int offset, char *str )
+{
+	int fd, i, c;
+	int err;	
+
+	fd = open(filename, O_CREAT | O_RDWR );
+	if (fd < 0) {
+		fprintf(stderr, " can't open file %s: %s\n",
+			filename, strerror(errno));
+		return EXIT_FAILURE;
+	}
+	
+	/*write to file at offset loop_times*/
+	i = 0;
+	while(i++ < loop_times){
+		err = lseek(fd, offset, SEEK_SET);	
+		if(err == -1) {
+			fprintf(stderr, "lseek fail\n");
+			close(fd);
+			return EXIT_FAILURE;
+		}
+
+
+		write(fd, str, strlen(str));
+		if (attrib_log) log_fileattr();
+	}
+	close(fd);
+
+	/*verify whether our writing is ok*/
+	fd = open(filename, O_RDONLY);
+	if (fd < 0) {
+		fprintf(stderr, " can't open file %s: %s for reading\n",
+			filename, strerror(errno));
+		exit(EXIT_FAILURE);
+	}
+
+	err = lseek(fd, offset, SEEK_SET);
+	if(err == -1) {
+		fprintf(stderr, "lseek fail at %d times\n", i);
+		close(fd);
+		exit(EXIT_FAILURE);
+	}
+		
+	read(fd, buf2, strlen(str));
+	if ( memcmp(buf2, str, strlen(str))){
+		fprintf(stderr, "read and write not match!\n");
+		close(fd);
+		return EXIT_FAILURE;
+	}
+	
+	close(fd);
+	return EXIT_SUCCESS;
+}/*writefile*/
+
+int verify(char *filename, int offset,char *str)
+{
+	int fd, i;
+	int err;
+		
+	fd = open(filename, O_RDONLY);
+	if (fd < 0) {
+		fprintf(stderr, " can't open file %s: %s\n",
+			filename, strerror(errno));
+		exit(EXIT_FAILURE);
+	}
+
+	i = 0;
+	while ( i++ < loop_times ){
+		err = lseek(fd, offset, SEEK_SET);
+		if(err == -1) {
+			fprintf(stderr, "lseek fail at %d times\n", i);
+			close(fd);
+			exit(EXIT_FAILURE);
+		}
+		
+		read(fd, buf2, strlen(str));
+		if ( memcmp(buf2, str, strlen(str))){
+			fprintf(stderr, "read and write not match!at times %d\n", i);
+			close(fd);
+			return EXIT_FAILURE;
+		}
+	}
+
+	close(fd);
+	return EXIT_SUCCESS;
+}
+
+/*
+o--offset
+s--value to write
+l--log file
+n--loop times
+t--op type
+   w---write file
+   r---read file
+   a---get file attrib
+   s---shrink file
+   g---grow file
+   h---do hole   
+*/
+int
+main(int argc, char *argv[])
+{
+	int c, op, offset;
+	int found_parm = 0;
+	/*        int need_log = 0;*/
+        int ret = 0;
+
+	getfilename();
+	while ((c = getopt(argc, argv, "t:o:s:n:l:f:")) != EOF)
+    {
+	found_parm = 1;
+        switch (c)
+        {
+        case 't':
+	  switch (*optarg){
+	    case 'w':
+       		op = OP_FILE_WRITE;
+	      break;
+
+	    case 'r':
+		op = OP_FILE_READ;
+	      break;
+
+	    case 'a':
+		op = OP_FILE_ATTRIB;
+	      break;
+
+	    case 's':
+	        op = OP_FILE_SHRINK;
+	      break;
+
+	    case 'g':
+	        op = OP_FILE_GROWTH;
+	      break;
+
+	    case 'h':
+	        op = OP_FILE_DOHOLE;
+	      break;
+  
+	  default:
+	      op = OP_INVALID;
+	      fprintf(stderr, "Invalid file operation");
+	      return EXIT_FAILURE;
+	  }
+
+	  /*if ( !memcmp(optarg, "w", 1))	
+		op = OP_FILE_WRITE;
+	    else if ( !memcmp(optarg, "r", 1))	
+		op = OP_FILE_READ;
+	    else{
+		op = OP_INVALID;
+		fprintf(stderr, "Invalid file operation");
+		return EXIT_FAILURE;
+	    }	
+	  */
+            break;
+
+        case 'o':
+            offset = atoi(optarg);
+            break;
+
+	case 's':
+	        /*memcpy(buf1,optarg,MAX_PARAM_SIZE);*/
+	        snprintf(buf1,255,"%s",optarg);
+		break;
+
+	case 'n':
+		loop_times = atoi(optarg);
+		break;	
+	case 'l':
+	        /*memcpy(logfile,optarg,MAX_PARAM_SIZE);*/
+	        snprintf(logfile,255,"%s",optarg);
+		/* need_log = 1;*/
+		attrib_log = 1;
+	        break;
+	case 'f':
+	        snprintf(filename,255,"%s",optarg);
+		break;
+        case 'h':
+        default:
+            help();
+            return EXIT_FAILURE;
+        }/*switch*/
+    }/*while*/
+
+    if ( ! found_parm ){
+	help();
+	return EXIT_FAILURE;
+    }
+
+    switch ( op ){
+      case  OP_FILE_WRITE:
+	  ret = writefile(filename, offset, buf1);
+      break;
+
+      case  OP_FILE_READ:
+	  ret =  verify(filename, offset, buf1);		
+      break;
+
+      case  OP_FILE_ATTRIB:
+	  ret =  get_fileattr(filename);		
+      break;
+
+      case OP_FILE_GROWTH:
+          ret =  change_filesize(1);
+      break;
+
+      case OP_FILE_SHRINK:
+          ret =  change_filesize(0);
+      break;
+
+      case OP_FILE_DOHOLE:
+	ret = do_hole_ext(filename, offset, buf1);
+      break;
+    default:
+      ret = -1;
+    }
+
+    /*    if ( OP_FILE_WRITE == op )
+	  ret = writefile(filename, offset, buf1);
+    else if ( OP_FILE_READ == op )
+	  ret =  verify(filename, offset, buf1);		
+    else
+          ret = -1;
+	  
+    if (need_log) log2file(ret);
+    */
+
+    if (attrib_log) log2file(ret);
+
+    return ret;
+}
+
+

Added: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss1.sh
===================================================================
--- trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss1.sh	2005-02-02 01:20:42 UTC (rev 12)
+++ trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss1.sh	2005-02-22 03:24:20 UTC (rev 13)
@@ -0,0 +1,111 @@
+#******************************************************************************
+#******************************************************************************
+#**
+#**    Copyright 2004 Intel, Inc.
+#**
+#**    This is free software released under the GNU General Public License.
+#**    There is no warranty for this software.  See the file COPYING for
+#**    details.
+#**
+#**    comblock-test.sh
+#**
+#**    This file is maintained by:
+#**      Aaron,Chen <yukun.chen at intel.com>
+#**
+#*******************************************************************************
+#******************************************************************************
+#!/bin/sh 
+tet_startup="startup"			# startup function
+tet_cleanup="cleanup"			# cleanup function
+iclist="ic1"	        # list invocable components
+ic1="tp1 tp2"				# functions for ic1
+
+. ../setup.sh
+
+exec_file="/tmp/basicrw"
+log_file1="${exec_file}_log1"
+log_file2="${exec_file}_log2"
+loop_times=100
+test_file=/ocfs/ocfs_locktest
+
+remote_write(){
+        ${ssh_cmd} rm -f ${log_file2} 2>/dev/null
+	${ssh_cmd} ${exec_file} -t w -o 1000 -n ${loop_times} -s "on different nodes"  -l {log_file2}
+}
+
+local_write(){
+        rm -f ${log_file1} 2>/dev/null
+${exec_file} -t w -o 1000 -n ${loop_times} -s "on different nodes" -l {log_file1}
+}
+
+local_ls(){
+    ls ${test_file}
+}
+
+remote_ls(){
+    ${ssh_cmd} ls ${test_file}
+}
+
+tp1()
+{
+	tvs_test_purpose_start "testing write/ls on different nodes"
+	clear_testdir
+	local_write &
+	local_ls	
+
+        wait
+	ret=`${ssh_cmd} cat ${log_file2} | awk '$1=="TEST_RESULT" {print $2}'`
+	ret=`expr $ret + $?`
+
+	if [ $ret -eq 0 ];then
+	    	tvs_test_purpose_finish PASS
+	else
+	    	tvs_test_purpose_finish FAIL
+	fi
+}
+
+tp2()
+{
+	tvs_test_purpose_start "testing write/write from different nodes"
+
+	rm ${test_file} -f
+
+	local_write &
+	remote_ls 
+       
+	wait 
+	ret=`cat ${log_file1} | awk '$1=="TEST_RESULT" {print $2}'` 
+	ret=`expr $ret + $?`
+
+	if [ $ret -eq 0 ];then
+	    	tvs_test_purpose_finish PASS
+	else
+	    	tvs_test_purpose_finish FAIL
+	fi
+}
+
+startup() # start-up function
+{
+	if [ -z $OCFSDEV ];then
+		echo "Error: OCFSDEV not specified!"
+		exit
+	fi
+
+	setup
+	remotesetup
+
+	echo "Setup the test enviornment successfully"
+	return 0
+}
+
+cleanup() # clean-up function
+{	
+	tet_infoline "Finish ocfs2 file lock test from different node ..."
+}
+
+. ../test.config
+# Source TVS helper functions
+. $TVS_ROOT/lib/TVSFunctions.sh
+
+# execute shell test case manager - must be last line
+. $TET_ROOT/lib/xpg3sh/tcm.sh


Property changes on: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss1.sh
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss2.sh
===================================================================
--- trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss2.sh	2005-02-02 01:20:42 UTC (rev 12)
+++ trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss2.sh	2005-02-22 03:24:20 UTC (rev 13)
@@ -0,0 +1,184 @@
+#******************************************************************************
+#******************************************************************************
+#**
+#**    Copyright 2004 Intel, Inc.
+#**
+#**    This is free software released under the GNU General Public License.
+#**    There is no warranty for this software.  See the file COPYING for
+#**    details.
+#**
+#**    dirlock-test-single.sh
+#**
+#**    This file is maintained by:
+#**      Aaron,Chen <yukun.chen at intel.com>
+#**
+#*******************************************************************************
+#******************************************************************************
+#!/bin/sh 
+tet_startup="startup"			# startup function
+tet_cleanup="cleanup"			# cleanup function
+iclist="ic1"	        # list invocable components
+ic1="tp1 tp2 tp3"
+
+. ../setup.sh
+
+TESTDIR=/ocfs/testdir
+loop_times=100
+
+create_thread_1()
+{
+        err=0;
+        if [ ! -d $TESTDIR ];then
+                mkdir $TESTDIR
+        fi
+        for((i = 0; i < $loop_times ; i++))
+        do
+                touch $TESTDIR/FILE1-$i
+                err=`expr $err + $?`
+        done
+        return $err
+}
+
+create_thread_2()
+{
+        err=0;
+        sleep 1
+        for((i = 0; i < $loop_times ; i++))
+        do
+                touch $TESTDIR/FILE2-$i
+                err=`expr $err + $?`
+        done
+        return $err
+}
+
+
+rename_thread_1()
+{
+       for ((i=0; i < $loop_times ; i++)) 
+           do
+                   mv -f $TESTDIR/FILE1-$i $TESTDIR/FILE1_RE-$i
+                   err=`expr $err + $?`
+                   if [ $err -ne 0 ]; then
+                         echo "rename $file error!"
+                         return $err
+                   fi
+           done
+           return $err
+
+}
+
+
+rename_thread_2()
+{
+
+        for ((i=0; i< $loop_times ; i++))    
+            do
+                   mv -f $TESTDIR/FILE2-$i $TESTDIR/FILE2_RE-$i 
+                   err=`expr $err + $?`
+                   if [ $err -ne 0 ]; then
+                         echo "rename $file error!"
+                         return $err
+                   fi
+           done
+           return $err
+
+}
+
+del_thread_1()
+{
+    for file in $TESTDIR/FILE1_RE-*
+        do
+                rm -f $file
+                err=`expr $err + $?`
+                if [ $err -ne 0 ];then
+                        echo "rm $file error!"
+                        return $err
+                fi
+        done
+        return $err
+}
+
+del_thread_2()
+{
+       for file in $TESTDIR/FILE2_RE-*
+           do
+                   rm -f $file
+                   err=`expr $err + $?`
+                   if [ $err -ne 0 ];then
+                            echo "rm $file error!"
+                            return $err
+                   fi
+        done
+        return $err
+
+}
+
+
+tp1()
+{
+        tvs_test_purpose_start "testing create file on same subdir by diffrent thread"
+	clear_testdir
+        create_thread_1 &
+        create_thread_2
+        err=$?
+        wait
+        if [ $err -eq 0 ];then
+                tvs_test_purpose_finish PASS
+        else
+                tvs_test_purpose_finish FAIL
+        fi
+}
+
+tp2()
+
+{
+        tvs_test_purpose_start "testing rename file on same subdir by diffrent thread"
+        rename_thread_1 &
+        rename_thread_2
+        err=$?
+        wait
+        if [ $? -eq 0 ];then
+                tvs_test_purpose_finish PASS
+        else
+                tvs_test_purpose_finish FAIL
+        fi
+}
+
+
+tp3()
+
+{
+        tvs_test_purpose_start "testing remove file on same subdir by diffrent thread"
+        del_thread_1 &
+        del_thread_2
+        err=$?
+        wait
+        if [ $? -eq 0 ];then
+                tvs_test_purpose_finish PASS
+        else
+                tvs_test_purpose_finish FAIL
+        fi
+}
+
+startup() # start-up function
+{
+	if [ -z $OCFSDEV ];then
+		echo "Error: OCFSDEV not specified!"
+		exit
+	fi
+
+	tet_infoline "Begin ocfs2 dir lock test on different node test..."
+	setup
+}
+
+cleanup() # clean-up function
+{	
+	tet_infoline "Finish ocfs2 dir lock test by two threads on single node ..."
+}
+
+. ../test.config
+# Source TVS helper functions
+. $TVS_ROOT/lib/TVSFunctions.sh
+
+# execute shell test case manager - must be last line
+. $TET_ROOT/lib/xpg3sh/tcm.sh


Property changes on: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss2.sh
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss3.sh
===================================================================
--- trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss3.sh	2005-02-02 01:20:42 UTC (rev 12)
+++ trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss3.sh	2005-02-22 03:24:20 UTC (rev 13)
@@ -0,0 +1,161 @@
+#******************************************************************************
+#******************************************************************************
+#**
+#**    Copyright 2004 Intel, Inc.
+#**
+#**    This is free software released under the GNU General Public License.
+#**    There is no warranty for this software.  See the file COPYING for
+#**    details.
+#**
+#**    dirlock-test.sh
+#**
+#**    This file is maintained by:
+#**      Aaron,Chen <yukun.chen at intel.com>
+#**
+#*******************************************************************************
+#******************************************************************************
+#!/bin/sh 
+tet_startup="startup"			# startup function
+tet_cleanup="cleanup"			# cleanup function
+iclist="ic1"	        # list invocable components
+ic1="tp1"				# functions for ic1
+
+. ../setup.sh
+
+TESTDIR=/ocfs/testdir
+ret=
+
+countfile(){
+	j=0
+	ret=0
+	for i in `ls ${TESTDIR}/FILE1*`
+	do
+		j=`expr $j + 1`	
+	done
+
+	if [ $j -eq 1000 ];then
+		ret=`expr $ret + 1`
+	fi
+
+	j=0
+	for i in `ls ${TESTDIR}/FILE2*`
+	do
+		j=`expr $j + 1`	
+	done
+
+	if [ $j -eq 1000 ];then
+		ret=`expr $ret + 1`
+	fi
+}
+
+remoteproc()
+{
+	scp  dirproc.sh $REMOTE:
+	remoterun "./dirproc.sh $TESTDIR" 
+}
+
+remotedel()
+{
+	scp  dirproc.sh $REMOTE:
+	remoterun "./dirproc.sh $TESTDIR del" 
+}
+
+localcreate()
+{
+	err=0;
+	if [ ! -d $TESTDIR ];then
+		mkdir $TESTDIR
+	fi
+
+	for((i = 0; i < 1000; i++))
+	do
+		touch $TESTDIR/FILE1-$i
+		err=`expr $err + $?`
+	done
+	return $err
+}
+
+localdel()
+{
+	for file in $TESTDIR/FILE1-*
+	do
+		rm -f $file
+		err=`expr $err + $?`
+		if [ $err -ne 0 ];then
+			echo "rm $file error!"
+			return $err
+		fi
+	done
+	return $err
+}
+
+tp1()
+{
+	tvs_test_purpose_start "testing create file on same subdir on both node"
+	clear_testdir
+	remoteproc &
+	localcreate
+	wait
+	countfile
+
+	if [ $ret -eq 2 ];then	
+		tvs_test_purpose_finish PASS
+	else
+		tvs_test_purpose_finish FAIL
+	fi
+}
+
+tp2()
+{
+	tvs_test_purpose_start "testing remove file on same subdir on both node"
+	remotedel &
+	localdel
+	err=$?
+	wait
+	if [ $? -eq 0 ];then
+		tvs_test_purpose_finish PASS
+	else
+		tvs_test_purpose_finish FAIL
+	fi
+}
+
+tp3()
+{
+	tvs_test_purpose_start "testing unmount after cluster write"
+	umount /ocfs
+	if [ $? -ne 0 ];then
+		tvs_test_purpose_finish FAIL
+	else
+		remoterun "umount /ocfs" 
+		if [ $? -ne 0 ];then
+			tvs_test_purpose_finish FAIL
+		else
+			tvs_test_purpose_finish PASS
+		fi
+	fi
+}
+
+
+startup() # start-up function
+{
+	if [ -z $OCFSDEV ];then
+		echo "Error: OCFSDEV not specified!"
+		exit
+	fi
+
+	tet_infoline "Begin ocfs2 dir lock test on different node test..."
+	setup
+	remotesetup
+}
+
+cleanup() # clean-up function
+{	
+	tet_infoline "Finish ocfs2 dir lock test on different node test..."
+}
+
+. ../test.config
+# Source TVS helper functions
+. $TVS_ROOT/lib/TVSFunctions.sh
+
+# execute shell test case manager - must be last line
+. $TET_ROOT/lib/xpg3sh/tcm.sh


Property changes on: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss3.sh
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss4.sh
===================================================================
--- trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss4.sh	2005-02-02 01:20:42 UTC (rev 12)
+++ trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss4.sh	2005-02-22 03:24:20 UTC (rev 13)
@@ -0,0 +1,111 @@
+#******************************************************************************
+#******************************************************************************
+#**
+#**    Copyright 2004 Intel, Inc.
+#**
+#**    This is free software released under the GNU General Public License.
+#**    There is no warranty for this software.  See the file COPYING for
+#**    details.
+#**
+#**    filelock-single.sh
+#**
+#**    This file is maintained by:
+#**      Aaron,Chen <yukun.chen at intel.com>
+#**
+#*******************************************************************************
+#******************************************************************************
+#!/bin/sh 
+tet_startup="startup"			# startup function
+tet_cleanup="cleanup"			# cleanup function
+iclist="ic1"	        # list invocable components
+ic1="tp1 tp2"				# functions for ic1
+
+. ../setup.sh
+
+log_file1="/tmp/basicrw_log1"
+log_file2="/tmp/basicrw_log2"
+log_file=
+loop_times=100
+
+localwrite()
+{
+  rm ${log_file} 2>/dev/null
+  ./basicrw -t w -o 1000 -n ${loop_times} -s "test on single node" -l ${log_file}
+}
+
+localread()
+{
+  rm ${log_file} 2>/dev/null
+  ./basicrw -t r -o 1000 -n ${loop_times} -s "test on single node" -l ${log_file}
+}
+
+tp1()
+{
+	tvs_test_purpose_start "testing write/write  from different process on the same node"
+	clear_testdir
+	log_file=${log_file1}
+	localwrite &
+
+	log_file=${log_file2}
+	localwrite
+	sleep 10
+        wait
+        
+	ret1=`cat ${log_file1} | awk '$1=="TEST_RESULT" {print $2}'`
+	ret2=`cat ${log_file2} | awk '$1=="TEST_RESULT" {print $2}'` 
+	ret1=`expr ${ret1} + ${ret2}`
+	if [ $ret1 -eq 0 ];then
+	    	tvs_test_purpose_finish PASS
+	else
+	    	tvs_test_purpose_finish FAIL
+	fi
+}
+
+tp2()
+{
+	tvs_test_purpose_start "testing write/read from different process on the same node"
+	log_file=${log_file1}
+	localwrite &
+
+	log_file=${log_file2}
+	localread		
+        
+	wait
+
+	ret1=`cat ${log_file1} | awk '$1=="TEST_RESULT" {print $2}'`
+	ret2=`cat ${log_file2} | awk '$1=="TEST_RESULT" {print $2}'` 
+	ret1=`expr ${ret1} + ${ret2}`
+
+	if [ $ret1 -eq 0 ];then
+	    	tvs_test_purpose_finish PASS
+	else
+	    	tvs_test_purpose_finish FAIL
+	fi
+}
+
+
+startup() # start-up function
+{
+	if [ -z $OCFSDEV ];then
+		echo "Error: OCFSDEV not specified!"
+		exit
+	fi
+
+	setup
+	echo "Setup enviornment successfully"
+
+	return 0
+}
+
+cleanup() # clean-up function
+{
+	tet_infoline "Finish ocfs2 basic read/write from different node test..."
+}
+
+. ../test.config
+# Source TVS helper functions
+. $TVS_ROOT/lib/TVSFunctions.sh
+
+# execute shell test case manager - must be last line
+. $TET_ROOT/lib/xpg3sh/tcm.sh
+


Property changes on: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss4.sh
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss5.sh
===================================================================
--- trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss5.sh	2005-02-02 01:20:42 UTC (rev 12)
+++ trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss5.sh	2005-02-22 03:24:20 UTC (rev 13)
@@ -0,0 +1,118 @@
+#******************************************************************************
+#******************************************************************************
+#**
+#**    Copyright 2004 Intel, Inc.
+#**
+#**    This is free software released under the GNU General Public License.
+#**    There is no warranty for this software.  See the file COPYING for
+#**    details.
+#**
+#**    filelock-multinode.sh
+#**
+#**    This file is maintained by:
+#**      Aaron,Chen <yukun.chen at intel.com>
+#**
+#*******************************************************************************
+#******************************************************************************
+#!/bin/sh 
+tet_startup="startup"			# startup function
+tet_cleanup="cleanup"			# cleanup function
+iclist="ic1"	        # list invocable components
+ic1="tp2"				# functions for ic1
+
+. ../setup.sh
+
+exec_file="./basicrw"
+log_file1="log1"
+log_file2="log2"
+loop_times=1000
+
+remote_write(){
+	scp basicrw $REMOTE:.
+        remoterun "rm -f ${log_file2}"
+	remoterun "${exec_file} -t w -o 1000 -n ${loop_times} -s "multinode" -l ${log_file2}"
+}
+
+
+remote_read(){
+	scp basicrw $REMOTE:.
+        remoterun "rm -f ${log_file2}"
+	remoterun "${exec_file} -t r -o 1000 -n ${loop_times} -s "multinode" -l ${log_file2}"
+}
+
+local_write(){
+        rm -f ${log_file1}
+${exec_file} -t w -o 1000 -n ${loop_times} -s "multinode" -l ${log_file1}
+}
+
+local_read(){
+        rm -f ${log_file1}
+${exec_file} -t r -o 1000 -n ${loop_times} -s "multinode"  -l ${log_file1}
+}
+
+tp1()
+{
+	tvs_test_purpose_start "testing write/read from different nodes"
+	clear_testdir
+	remote_write &
+	#sleep 1 
+	local_read	
+
+        wait
+	ret1=`ssh $REMOTE cat ${log_file2} | awk '$1=="TEST_RESULT" {print $2}'`
+	ret2=`cat ${log_file1} | awk '$1=="TEST_RESULT" {print $2}'` 
+	ret1=`expr ${ret1} + ${ret2}`
+	if [ $ret1 -eq 0 ];then
+	    	tvs_test_purpose_finish PASS
+	else
+	    	tvs_test_purpose_finish FAIL
+	fi
+}
+
+tp2()
+{
+	tvs_test_purpose_start "testing write/write from different nodes"
+	clear_testdir
+	remote_write &
+	#sleep 1
+	local_write 
+        wait
+        
+	ret1=`ssh $REMOTE cat ${log_file2} | awk '$1=="TEST_RESULT" {print $2}'`
+	ret2=`cat ${log_file1} | awk '$1=="TEST_RESULT" {print $2}'` 
+	ret1=`expr ${ret1} + ${ret2}`
+
+	if [ $ret1 -eq 0 ];then
+	    	tvs_test_purpose_finish PASS
+	else
+	    	tvs_test_purpose_finish FAIL
+	fi
+}
+
+
+startup() # start-up function
+{
+        if [ -z $OCFSDEV ];then
+		echo "Error: OCFSDEV not specified!"
+		exit
+	fi
+
+	setup
+	remotesetup
+	scp basicrw root@${REMOTE}:.
+        
+	echo "Setup the test enviornment successfully"
+	return 0
+}
+
+cleanup() # clean-up function
+{	
+	tet_infoline "Finish ocfs2 file lock test from different node ..."
+}
+
+. ../test.config
+# Source TVS helper functions
+. $TVS_ROOT/lib/TVSFunctions.sh
+
+# execute shell test case manager - must be last line
+. $TET_ROOT/lib/xpg3sh/tcm.sh

Added: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss6.sh
===================================================================
--- trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss6.sh	2005-02-02 01:20:42 UTC (rev 12)
+++ trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss6.sh	2005-02-22 03:24:20 UTC (rev 13)
@@ -0,0 +1,136 @@
+#******************************************************************************
+#******************************************************************************
+#**
+#**    Copyright 2004 Intel, Inc.
+#**
+#**    This is free software released under the GNU General Public License.
+#**    There is no warranty for this software.  See the file COPYING for
+#**    details.
+#**
+#**    dirfilelock-single.sh
+#**
+#**    This file is maintained by:
+#**      Aaron,Chen <yukun.chen at intel.com>
+#**
+#*******************************************************************************
+#******************************************************************************
+#!/bin/sh 
+tet_startup="startup"			# startup function
+tet_cleanup="cleanup"			# cleanup function
+iclist="ic1"	        # list invocable components
+ic1="tp1 tp2 tp3"				# functions for ic1
+
+. ../setup.sh
+
+exec_file="./basicrw"
+log_file1="/tmp/log1"
+loop_times=100
+ret=
+
+local_write(){
+        rm -f ${log_file1} 2>/dev/null
+${exec_file} -t w -o 1000 -n ${loop_times} -s "on different nodes" -l {log_file1}
+}
+
+local_mkdir(){
+    for ((i=0;i<$loop_times ; i++))
+    do
+      mkdir /ocfs/dir1-$i
+      ret=`expr $ret + $?`
+    done
+}
+
+local_createfile(){
+    for ((i=0;i<$loop_times ; i++))
+    do
+      touch /ocfs/file1-$i
+      ret=`expr $ret + $?`
+    done
+}
+
+tp1()
+{
+	tvs_test_purpose_start "testing write/ls on different nodes"
+	clear_testdir
+	create_testfile
+	local_write &
+	local_mkdir	
+
+        wait
+	ret1=`cat ${log_file1} | awk '$1=="TEST_RESULT" {print $2}'`
+	ret=`expr $ret1 + $ret`
+
+	if [ $ret -eq 0 ];then
+	    	tvs_test_purpose_finish PASS
+	else
+	    	tvs_test_purpose_finish FAIL
+	fi
+}
+
+tp2()
+{
+        tvs_test_purpose_start "testing write/ls on different nodes"
+
+	ret=0
+	clear_testdir
+	create_testfile
+	local_write &
+	local_createfile	
+
+        wait
+	ret1=`cat ${log_file1} | awk '$1=="TEST_RESULT" {print $2}'`
+	ret=`expr $ret1 + $ret`
+
+	if [ $ret -eq 0 ];then
+	    	tvs_test_purpose_finish PASS
+	else
+	    	tvs_test_purpose_finish FAIL
+	fi
+}
+
+tp3()
+{
+        tvs_test_purpose_start "testing write/ls on different nodes"
+
+	ret=0
+	clear_testdir
+	create_testfile
+	local_write &
+	local_mkdir &
+	local_createfile	
+
+        wait
+	ret1=`cat ${log_file1} | awk '$1=="TEST_RESULT" {print $2}'`
+	ret=`expr $ret1 + $ret`
+
+	if [ $ret -eq 0 ];then
+	    	tvs_test_purpose_finish PASS
+	else
+	    	tvs_test_purpose_finish FAIL
+	fi
+}
+
+startup() # start-up function
+{
+	if [ -z $OCFSDEV ];then
+		echo "Error: OCFSDEV not specified!"
+		exit
+	fi
+
+	setup
+	echo "Setup enviornment successfully"
+
+	return 0
+}
+
+cleanup() # clean-up function
+{
+	tet_infoline "Finish ocfs2 basic read/write from different node test..."
+}
+
+. ../test.config
+# Source TVS helper functions
+. $TVS_ROOT/lib/TVSFunctions.sh
+
+# execute shell test case manager - must be last line
+. $TET_ROOT/lib/xpg3sh/tcm.sh


Property changes on: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss6.sh
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss7.sh
===================================================================
--- trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss7.sh	2005-02-02 01:20:42 UTC (rev 12)
+++ trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss7.sh	2005-02-22 03:24:20 UTC (rev 13)
@@ -0,0 +1,137 @@
+#******************************************************************************
+#******************************************************************************
+#**
+#**    Copyright 2004 Intel, Inc.
+#**
+#**    This is free software released under the GNU General Public License.
+#**    There is no warranty for this software.  See the file COPYING for
+#**    details.
+#**
+#**    dirfilelock-multinode.sh
+#**
+#**    This file is maintained by:
+#**      Aaron,Chen <yukun.chen at intel.com>
+#**
+#*******************************************************************************
+#******************************************************************************
+#!/bin/sh 
+tet_startup="startup"			# startup function
+tet_cleanup="cleanup"			# cleanup function
+iclist="ic1"	        # list invocable components
+ic1="tp1 tp2 tp3"				# functions for ic1
+
+. ../setup.sh
+
+
+exec_file="./basicrw"
+log_file2="log2"
+loop_times=100
+test_file=/ocfs/ocfs_locktest
+ret=0
+
+remote_write(){
+        remoterun "rm -f ${log_file2} 2>/dev/null"
+	remoterun "${exec_file} -t w -o 1000 -n ${loop_times} -s "on different nodes"  -l {log_file2}"
+}
+
+local_mkdir(){
+    for ((i=0;i<$loop_times ; i++))
+    do
+      mkdir /ocfs/dir1-$i
+      ret=`expr $ret + $?`
+    done
+}
+
+local_createfile(){
+    for ((i=0;i<$loop_times ; i++))
+    do
+      touch /ocfs/file1-$i
+      ret=`expr $ret + $?`
+    done
+}
+
+tp1()
+{
+	tvs_test_purpose_start "testing write/ls on different nodes"
+	clear_testdir
+	remote_write &
+	local_mkdir	
+
+        wait
+
+	ret1=`ssh $REMOTE cat ${log_file2} | awk '$1=="TEST_RESULT" {print $2}'`
+	ret=`expr $ret1 + $ret`
+
+	if [ $ret -eq 0 ];then
+	    	tvs_test_purpose_finish PASS
+	else
+	    	tvs_test_purpose_finish FAIL
+	fi
+}
+
+tp2()
+{
+	tvs_test_purpose_start "testing write/ls on different nodes"
+
+	ret=0
+	remote_write &
+	local_createfile	
+
+        wait
+
+	ret1=`ssh $REMOTE cat ${log_file2} | awk '$1=="TEST_RESULT" {print $2}'`
+	ret=`expr $ret1 + $ret`
+
+	if [ $ret -eq 0 ];then
+	    	tvs_test_purpose_finish PASS
+	else
+	    	tvs_test_purpose_finish FAIL
+	fi
+}
+
+tp3()
+{
+	tvs_test_purpose_start "testing write/ls on different nodes"
+
+	remote_write &
+	local_createfile &
+	local_mkdir 
+
+        wait
+
+	ret1=`ssh $REMOTE cat ${log_file2} | awk '$1=="TEST_RESULT" {print $2}'`
+	ret=`expr $ret1 + $ret`
+
+	if [ $ret -eq 0 ];then
+	    	tvs_test_purpose_finish PASS
+	else
+	    	tvs_test_purpose_finish FAIL
+	fi
+}
+
+startup() # start-up function
+{
+        if [ -z $OCFSDEV ];then
+		echo "Error: OCFSDEV not specified!"
+		exit
+	fi
+
+	setup
+	remotesetup
+	scp basicrw root@${REMOTE}:.
+        
+	echo "Setup the test enviornment successfully"
+	return 0
+}
+
+cleanup() # clean-up function
+{       
+	tet_infoline "Finish ocfs2 file lock test from different node ..."
+}
+
+. ../test.config
+# Source TVS helper functions
+. $TVS_ROOT/lib/TVSFunctions.sh
+
+# execute shell test case manager - must be last line
+. $TET_ROOT/lib/xpg3sh/tcm.sh


Property changes on: trunk/ocfs2test/src/TestSuites/ocfs2test/tset/tpstress/tpstresss7.sh
___________________________________________________________________
Name: svn:executable
   + *



More information about the Ocfstest-commits mailing list