From 0bdb95ecbf053aa1c2c62bd57f1c0f855de9d91f Mon Sep 17 00:00:00 2001 From: Dan Fandrich Date: Wed, 29 Mar 2023 12:20:02 -0700 Subject: [PATCH] tests: fix fake_ntlm to run with a dynamic log directory Ref: #10818 --- tests/data/test1310 | 2 ++ tests/server/fake_ntlm.c | 18 ++++++++++++------ tests/server/mqttd.c | 2 +- tests/server/rtspd.c | 6 +++--- tests/server/sws.c | 6 +++--- tests/server/tftpd.c | 4 ++-- tests/server/util.c | 4 ++-- tests/server/util.h | 4 ++-- 8 files changed, 27 insertions(+), 19 deletions(-) diff --git a/tests/data/test1310 b/tests/data/test1310 index 11dcfef0cd..f0d47e74ff 100644 --- a/tests/data/test1310 +++ b/tests/data/test1310 @@ -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 diff --git a/tests/server/fake_ntlm.c b/tests/server/fake_ntlm.c index a2d0796088..fe59578f42 100644 --- a/tests/server/fake_ntlm.c +++ b/tests/server/fake_ntlm.c @@ -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)); diff --git a/tests/server/mqttd.c b/tests/server/mqttd.c index f0dab7096e..347c76504e 100644 --- a/tests/server/mqttd.c +++ b/tests/server/mqttd.c @@ -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) { diff --git a/tests/server/rtspd.c b/tests/server/rtspd.c index 85a110f15d..8cbbca7eeb 100644 --- a/tests/server/rtspd.c +++ b/tests/server/rtspd.c @@ -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)); diff --git a/tests/server/sws.c b/tests/server/sws.c index dc5c04ed59..1b9ec6216b 100644 --- a/tests/server/sws.c +++ b/tests/server/sws.c @@ -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)); diff --git a/tests/server/tftpd.c b/tests/server/tftpd.c index 41ae32127d..d03053632a 100644 --- a/tests/server/tftpd.c +++ b/tests/server/tftpd.c @@ -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); diff --git a/tests/server/util.c b/tests/server/util.c index 6429a8006d..78c9148b58 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -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; diff --git a/tests/server/util.h b/tests/server/util.h index a931e32b64..32db08031d 100644 --- a/tests/server/util.h +++ b/tests/server/util.h @@ -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); -- 2.47.3