shane Sun Jan 14 17:52:47 2001 EDT
Modified files:
/php4/sapi/isapi/stresstest notes.txt stresstest.cpp
Log:
test now produce valid OK or FAIL.
Index: php4/sapi/isapi/stresstest/notes.txt
diff -u php4/sapi/isapi/stresstest/notes.txt:1.2
php4/sapi/isapi/stresstest/notes.txt:1.3
--- php4/sapi/isapi/stresstest/notes.txt:1.2 Sun Jan 14 16:29:49 2001
+++ php4/sapi/isapi/stresstest/notes.txt Sun Jan 14 17:52:47 2001
@@ -37,13 +37,10 @@
TODO:
-Make an apropriate test of the output against the EXPECT data for the test files,
right now it simply doesn't work since I'm burnt (tired that is).
-
Make more options configurable: number of threads, itterations, etc.
Improve stdout output to make it more usefull
-Log totals for each test.
-
Implement support for SKIPIF
+Improve speed of CompareFile function (too slow on big files).
Index: php4/sapi/isapi/stresstest/stresstest.cpp
diff -u php4/sapi/isapi/stresstest/stresstest.cpp:1.8
php4/sapi/isapi/stresstest/stresstest.cpp:1.9
--- php4/sapi/isapi/stresstest/stresstest.cpp:1.8 Sun Jan 14 17:17:44 2001
+++ php4/sapi/isapi/stresstest/stresstest.cpp Sun Jan 14 17:52:47 2001
@@ -83,12 +83,11 @@
int stress_main(const char *filename,
const char *arg,
const char *postfile,
- const char *matchdata,
- const char *testname);
+ const char *matchdata);
-BOOL test = FALSE;
+BOOL bUseTestFiles = FALSE;
char temppath[MAX_PATH];
void stripcrlf(char *line)
@@ -99,6 +98,37 @@
if (line[l]==10 || line[l]==13) line[l]=0;
}
+
+BOOL CompareFiles(const char*f1, const char*f2)
+{
+ FILE *fp1 = fopen(f1,"r");
+ if (!fp1) return FALSE;
+ FILE *fp2 = fopen(f2,"r");
+ if (!fp2) {
+ fclose(fp1);
+ return FALSE;
+ }
+
+ CString file1, file2, line;
+ char buf[1024];
+ while (fgets(buf, sizeof(buf), fp1)) {
+ line = buf;
+ line.TrimLeft();
+ line.TrimRight();
+ file1+=line;
+ }
+ fclose(fp1);
+ while (fgets(buf, sizeof(buf), fp2)) {
+ line = buf;
+ line.TrimLeft();
+ line.TrimRight();
+ file2+=line;
+ }
+ fclose(fp2);
+
+ return file1==file2;
+}
+
BOOL ReadGlobalEnvironment(const char *environment)
{
if (environment) {
@@ -154,6 +184,8 @@
i++;
}
+ Results.SetSize(TestNames.GetSize());
+
fclose(fp);
return IsapiFileList.GetSize() > 0;
}
@@ -371,7 +403,7 @@
printf("USAGE: stresstest [L|T] filelist [environment]\r\n");
return 0;
} else {
- if (argv[1][0]=='T') test = TRUE;
+ if (argv[1][0]=='T') bUseTestFiles = TRUE;
if (argc > 1) filelist = argv[2];
if (argc > 2) environment = argv[3];
}
@@ -416,7 +448,7 @@
return -1;
}
- if (test) {
+ if (bUseTestFiles) {
char TestPath[MAX_PATH];
if (filelist != NULL)
_snprintf(TestPath, sizeof(TestPath)-1, "%s\\tests", filelist);
@@ -443,16 +475,24 @@
for (DWORD j=0; j<ITERATIONS; j++) {
for (DWORD i=0; i<filecount; i++) {
// execute each file
- printf("Thread %d File %s\n", GetCurrentThreadId(),
IsapiFileList.GetAt(i));
-
+ CString testname = TestNames.GetAt(i);
+ BOOL ok = FALSE;
if (stress_main(IsapiFileList.GetAt(i),
IsapiGetData.GetAt(i),
IsapiPostData.GetAt(i),
- IsapiMatchData.GetAt(i),
- TestNames.GetAt(i)))
- if (test) InterlockedIncrement(&Results[i].ok);
- else
- if (test) InterlockedIncrement(&Results[i].bad);
+ IsapiMatchData.GetAt(i))) {
+ InterlockedIncrement(&Results[i].ok);
+ ok = TRUE;
+ } else {
+ InterlockedIncrement(&Results[i].bad);
+ ok = FALSE;
+ }
+
+ if (testname.IsEmpty()) {
+ printf("Thread %d File %s\n", GetCurrentThreadId(),
+IsapiFileList.GetAt(i));
+ } else {
+ printf("tid %d: %s %s\n", GetCurrentThreadId(),
+testname, ok?"OK":"FAIL");
+ }
Sleep(10);
}
}
@@ -472,8 +512,7 @@
BOOL stress_main(const char *filename,
const char *arg,
const char *postdata,
- const char *matchdata,
- const char *testname)
+ const char *matchdata)
{
EXTENSION_CONTROL_BLOCK ECB;
@@ -485,7 +524,7 @@
CString fname;
fname.Format("%08X.out", context.tid);
- context.out = CreateFile(fname, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0,
NULL);
+ context.out = CreateFile(fname, GENERIC_WRITE, FILE_SHARE_READ, NULL,
+CREATE_ALWAYS, 0, NULL);
if (context.out==INVALID_HANDLE_VALUE) {
printf("failed to open output file %s\n", fname);
return 0;
@@ -538,25 +577,14 @@
BOOL ok = TRUE;
+ if (context.out != INVALID_HANDLE_VALUE) CloseHandle(context.out);
+
// compare the output with the EXPECT section
if (matchdata && *matchdata != 0) {
- // wimpy I know, but I'm tired and lazy now
- HANDLE md = CreateFile(matchdata, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, 0, NULL);
- if (md) {
- DWORD osz = 0, msz = 0;
- GetFileSize(md, &msz);
- GetFileSize(context.out, &osz);
- if (osz == msz && osz != 0) {
- printf("%s OK\r\n", testname);
- } else {
- printf("%s FAILED\r\n", testname);
- ok = FALSE;
- }
- }
+ ok = CompareFiles(matchdata, fname);
}
-
- if (context.out) CloseHandle(context.out);
+ DeleteFile(fname);
//if (rc == HSE_STATUS_PENDING) // We will exit in ServerSupportFunction
// Sleep(INFINITE);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]