]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tests: fix fake_ntlm to run with a dynamic log directory
authorDan Fandrich <dan@coneharvesters.com>
Wed, 29 Mar 2023 19:20:02 +0000 (12:20 -0700)
committerDan Fandrich <dan@coneharvesters.com>
Thu, 30 Mar 2023 16:53:57 +0000 (09:53 -0700)
Ref: #10818

tests/data/test1310
tests/server/fake_ntlm.c
tests/server/mqttd.c
tests/server/rtspd.c
tests/server/sws.c
tests/server/tftpd.c
tests/server/util.c
tests/server/util.h

index 11dcfef0cd90174d529899ae47cd722110b2fd94..f0d47e74ffda946c0729d8b3264df0a1915304d2 100644 (file)
@@ -73,6 +73,8 @@ LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
 CURL_NTLM_WB_FILE=%PWD/server/fake_ntlm
 # set source directory so fake_ntlm can find the test files
 CURL_NTLM_AUTH_SRCDIR=%SRCDIR
+# set source directory so fake_ntlm can find the test and log files
+CURL_NTLM_LOGDIR=%LOGDIR
 # set the test number
 CURL_NTLM_AUTH_TESTNUM=%TESTNUMBER
  </setenv>
index a2d0796088615e444c0d2410d17c54674d66ea65..fe59578f42592c5899a3bad4d874c7d4965de496 100644 (file)
@@ -39,7 +39,8 @@
 /* include memdebug.h last */
 #include "memdebug.h"
 
-#define LOGFILE "log/fake_ntlm%ld.log"
+#define LOGFILE "%s/fake_ntlm%ld.log"
+const char *logdir = "log";
 
 const char *serverlogfile;
 
@@ -159,6 +160,11 @@ int main(int argc, char *argv[])
     }
   }
 
+  env = getenv("CURL_NTLM_LOGDIR");
+  if(env) {
+    logdir = env;
+  }
+
   env = getenv("CURL_NTLM_AUTH_TESTNUM");
   if(env) {
     char *endptr;
@@ -175,7 +181,7 @@ int main(int argc, char *argv[])
   }
 
   /* logmsg cannot be used until this file name is set */
-  msnprintf(logfilename, sizeof(logfilename), LOGFILE, testnum);
+  msnprintf(logfilename, sizeof(logfilename), LOGFILE, logdir, testnum);
   serverlogfile = logfilename;
 
   logmsg("fake_ntlm (user: %s) (proto: %s) (domain: %s) (cached creds: %s)",
@@ -187,7 +193,7 @@ int main(int argc, char *argv[])
     path = env;
   }
 
-  stream = test2fopen(testnum);
+  stream = test2fopen(testnum, logdir);
   if(!stream) {
     error = errno;
     logmsg("fopen() failed with error: %d %s", error, strerror(error));
@@ -204,7 +210,7 @@ int main(int argc, char *argv[])
     }
   }
 
-  stream = test2fopen(testnum);
+  stream = test2fopen(testnum, logdir);
   if(!stream) {
     error = errno;
     logmsg("fopen() failed with error: %d %s", error, strerror(error));
@@ -222,7 +228,7 @@ int main(int argc, char *argv[])
 
   while(fgets(buf, sizeof(buf), stdin)) {
     if(strcmp(buf, type1_input) == 0) {
-      stream = test2fopen(testnum);
+      stream = test2fopen(testnum, logdir);
       if(!stream) {
         error = errno;
         logmsg("fopen() failed with error: %d %s", error, strerror(error));
@@ -243,7 +249,7 @@ int main(int argc, char *argv[])
       fflush(stdout);
     }
     else if(strncmp(buf, type3_input, strlen(type3_input)) == 0) {
-      stream = test2fopen(testnum);
+      stream = test2fopen(testnum, logdir);
       if(!stream) {
         error = errno;
         logmsg("fopen() failed with error: %d %s", error, strerror(error));
index f0dab7096e692b7e23b9f5491b81b9e436038f1a..347c76504e1cf54bde4d138b7849bb045a5d0cfe 100644 (file)
@@ -646,7 +646,7 @@ static curl_socket_t mqttit(curl_socket_t fd)
       /* there's a QoS byte (two bits) after the topic */
 
       logmsg("SUBSCRIBE to '%s' [%d]", topic, packet_id);
-      stream = test2fopen(testno);
+      stream = test2fopen(testno, logdir);
       error = getpart(&data, &datalen, "reply", "data", stream);
       if(!error) {
         if(!config.publish_before_suback) {
index 85a110f15d674d209ccb219db9875b1cd8c02064..8cbbca7eeb333189faf72c2e1e4a93b2e8b97af4 100644 (file)
@@ -290,7 +290,7 @@ static int ProcessRequest(struct httprequest *req)
                 req->testno, req->partno);
       logmsg("%s", logbuf);
 
-      stream = test2fopen(req->testno);
+      stream = test2fopen(req->testno, logdir);
 
       if(!stream) {
         int error = errno;
@@ -858,7 +858,7 @@ static int send_doc(curl_socket_t sock, struct httprequest *req)
     count = strlen(buffer);
   }
   else {
-    FILE *stream = test2fopen(req->testno);
+    FILE *stream = test2fopen(req->testno, logdir);
     char partbuf[80]="data";
     if(0 != req->partno)
       msnprintf(partbuf, sizeof(partbuf), "data%ld", req->partno);
@@ -884,7 +884,7 @@ static int send_doc(curl_socket_t sock, struct httprequest *req)
     }
 
     /* re-open the same file again */
-    stream = test2fopen(req->testno);
+    stream = test2fopen(req->testno, logdir);
     if(!stream) {
       error = errno;
       logmsg("fopen() failed with error: %d %s", error, strerror(error));
index dc5c04ed59f88d502096818d94e3c6c4594388b3..1b9ec6216bc92af88e694e337ca13c617880c784 100644 (file)
@@ -264,7 +264,7 @@ static int parse_servercmd(struct httprequest *req)
   FILE *stream;
   int error;
 
-  stream = test2fopen(req->testno);
+  stream = test2fopen(req->testno, logdir);
   req->close = FALSE;
   req->connmon = FALSE;
 
@@ -1092,7 +1092,7 @@ static int send_doc(curl_socket_t sock, struct httprequest *req)
 
     logmsg("Send response test%ld section <%s>", req->testno, partbuf);
 
-    stream = test2fopen(req->testno);
+    stream = test2fopen(req->testno, logdir);
     if(!stream) {
       error = errno;
       logmsg("fopen() failed with error: %d %s", error, strerror(error));
@@ -1114,7 +1114,7 @@ static int send_doc(curl_socket_t sock, struct httprequest *req)
     }
 
     /* re-open the same file again */
-    stream = test2fopen(req->testno);
+    stream = test2fopen(req->testno, logdir);
     if(!stream) {
       error = errno;
       logmsg("fopen() failed with error: %d %s", error, strerror(error));
index 41ae32127d7846749ffda83b3076cf361eaa909f..d03053632a719512c0173364fb87302f4ba4fc95 100644 (file)
@@ -1019,7 +1019,7 @@ static int parse_servercmd(struct testcase *req)
   FILE *stream;
   int error;
 
-  stream = test2fopen(req->testno);
+  stream = test2fopen(req->testno, logdir);
   if(!stream) {
     error = errno;
     logmsg("fopen() failed with error: %d %s", error, strerror(error));
@@ -1130,7 +1130,7 @@ static int validate_access(struct testcase *test,
 
     (void)parse_servercmd(test);
 
-    stream = test2fopen(testno);
+    stream = test2fopen(testno, logdir);
 
     if(0 != partno)
       msnprintf(partbuf, sizeof(partbuf), "data%ld", partno);
index 6429a8006db54ae1957f974a9f0a3962967405d1..78c9148b580d36a4d32d2b5d3078df06f0527ba6 100644 (file)
@@ -202,12 +202,12 @@ void win32_cleanup(void)
 /* set by the main code to point to where the test dir is */
 const char *path = ".";
 
-FILE *test2fopen(long testno)
+FILE *test2fopen(long testno, const char *logdir)
 {
   FILE *stream;
   char filename[256];
   /* first try the alternative, preprocessed, file */
-  msnprintf(filename, sizeof(filename), ALTTEST_DATA_PATH, ".", testno);
+  msnprintf(filename, sizeof(filename), ALTTEST_DATA_PATH, logdir, testno);
   stream = fopen(filename, "rb");
   if(stream)
     return stream;
index a931e32b648c79e5d4675782517ab966526f1259..32db08031ddd701e9083e9c2e6086e2437c6212c 100644 (file)
@@ -30,7 +30,7 @@ void logmsg(const char *msg, ...);
 long timediff(struct timeval newer, struct timeval older);
 
 #define TEST_DATA_PATH "%s/data/test%ld"
-#define ALTTEST_DATA_PATH "%s/log/test%ld"
+#define ALTTEST_DATA_PATH "%s/test%ld"
 
 #define SERVERLOGS_LOCK "serverlogs.lock"
 
@@ -57,7 +57,7 @@ void win32_cleanup(void);
 #endif  /* WIN32 */
 
 /* fopens the test case file */
-FILE *test2fopen(long testno);
+FILE *test2fopen(long testno, const char *logdir);
 
 int wait_ms(int timeout_ms);
 curl_off_t our_getpid(void);