svn commit: samba r20301 - in branches/SAMBA_4_0/source/torture/nbench: .

tridge at samba.org tridge at samba.org
Thu Dec 21 05:34:26 GMT 2006


Author: tridge
Date: 2006-12-21 05:34:26 +0000 (Thu, 21 Dec 2006)
New Revision: 20301

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20301

Log:

add an option torture:readonly which allows the NBENCH test to be run
read only. This is only any use with customer loadfiles, and
pre-created data. I'm using this to test performance as a video
server, with pre-created video files.

Modified:
   branches/SAMBA_4_0/source/torture/nbench/nbench.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/nbench/nbench.c
===================================================================
--- branches/SAMBA_4_0/source/torture/nbench/nbench.c	2006-12-21 03:39:33 UTC (rev 20300)
+++ branches/SAMBA_4_0/source/torture/nbench/nbench.c	2006-12-21 05:34:26 UTC (rev 20301)
@@ -32,6 +32,7 @@
 static int timelimit = 600;
 static int warmup;
 static const char *loadfile;
+static int read_only;
 
 #define ival(s) strtol(s, NULL, 0)
 
@@ -47,7 +48,7 @@
 	BOOL correct = True;
 
 	if (torture_nprocs == 1) {
-		if (!torture_setup_dir(cli, "\\clients")) {
+		if (!read_only && !torture_setup_dir(cli, "\\clients")) {
 			return False;
 		}
 	}
@@ -98,15 +99,15 @@
 				   ival(params[4]), status);
 		} else if (!strcmp(params[0],"Close")) {
 			nb_close(ival(params[1]), status);
-		} else if (!strcmp(params[0],"Rename")) {
+		} else if (!read_only && !strcmp(params[0],"Rename")) {
 			nb_rename(params[1], params[2], status);
-		} else if (!strcmp(params[0],"Unlink")) {
+		} else if (!read_only && !strcmp(params[0],"Unlink")) {
 			nb_unlink(params[1], ival(params[2]), status);
-		} else if (!strcmp(params[0],"Deltree")) {
+		} else if (!read_only && !strcmp(params[0],"Deltree")) {
 			nb_deltree(params[1]);
-		} else if (!strcmp(params[0],"Rmdir")) {
+		} else if (!read_only && !strcmp(params[0],"Rmdir")) {
 			nb_rmdir(params[1], status);
-		} else if (!strcmp(params[0],"Mkdir")) {
+		} else if (!read_only && !strcmp(params[0],"Mkdir")) {
 			nb_mkdir(params[1], status);
 		} else if (!strcmp(params[0],"QUERY_PATH_INFORMATION")) {
 			nb_qpathinfo(params[1], ival(params[2]), status);
@@ -114,16 +115,16 @@
 			nb_qfileinfo(ival(params[1]), ival(params[2]), status);
 		} else if (!strcmp(params[0],"QUERY_FS_INFORMATION")) {
 			nb_qfsinfo(ival(params[1]), status);
-		} else if (!strcmp(params[0],"SET_FILE_INFORMATION")) {
+		} else if (!read_only && !strcmp(params[0],"SET_FILE_INFORMATION")) {
 			nb_sfileinfo(ival(params[1]), ival(params[2]), status);
 		} else if (!strcmp(params[0],"FIND_FIRST")) {
 			nb_findfirst(params[1], ival(params[2]), 
 				     ival(params[3]), ival(params[4]), status);
-		} else if (!strcmp(params[0],"WriteX")) {
+		} else if (!read_only && !strcmp(params[0],"WriteX")) {
 			nb_writex(ival(params[1]), 
 				  ival(params[2]), ival(params[3]), ival(params[4]),
 				  status);
-		} else if (!strcmp(params[0],"Write")) {
+		} else if (!read_only && !strcmp(params[0],"Write")) {
 			nb_write(ival(params[1]), 
 				 ival(params[2]), ival(params[3]), ival(params[4]),
 				 status);
@@ -156,7 +157,7 @@
 done:
 	fclose(f);
 
-	if (torture_nprocs == 1) {
+	if (!read_only && torture_nprocs == 1) {
 		smbcli_deltree(cli->tree, "\\clients");
 	}
 	if (!torture_close_connection(cli)) {
@@ -175,6 +176,8 @@
 	struct smbcli_state *cli;
 	const char *p;
 
+	read_only = lp_parm_bool(-1, "torture", "readonly", False);
+
 	p = torture_setting_string(torture, "timelimit", NULL);
 	if (p && *p) {
 		timelimit = atoi(p);
@@ -192,7 +195,7 @@
 			return False;
 		}
 
-		if (!torture_setup_dir(cli, "\\clients")) {
+		if (!read_only && !torture_setup_dir(cli, "\\clients")) {
 			return False;
 		}
 	}
@@ -215,7 +218,7 @@
 	torture_create_procs(torture, run_netbench, &correct);
 	alarm(0);
 
-	if (torture_nprocs > 1) {
+	if (!read_only && torture_nprocs > 1) {
 		smbcli_deltree(cli->tree, "\\clients");
 	}
 



More information about the samba-cvs mailing list