From aba6c2b89d96f661c2b4d77fc925b47921008e3d Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Wed, 14 Apr 2004 06:30:37 +0000
Subject: [PATCH] Added test case 511 in an attempt to repeat bug report
 #934666 "storage leak in ftp.c", but it shows no leaking.

---
 tests/data/Makefile.am    |  2 +-
 tests/data/test511        | 35 +++++++++++++++++++++++++++++++++++
 tests/libtest/Makefile.am |  9 +++++++--
 tests/libtest/lib511.c    | 14 ++++++++++++++
 4 files changed, 57 insertions(+), 3 deletions(-)
 create mode 100644 tests/data/test511
 create mode 100644 tests/libtest/lib511.c

diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
index 6a03a9b323..338ec7ac1b 100644
--- a/tests/data/Makefile.am
+++ b/tests/data/Makefile.am
@@ -21,7 +21,7 @@ test74 test75 test76 test77 test78 test147 test148 test506 test79	\
 test80 test81 test82 test83 test84 test85 test86 test87 test507		\
 test149 test88 test89 test90 test508 test91 test92 test203 test93	\
 test94 test95 test509 test510 test97 test98 test99 test150 test151	\
-test152 test153 test154 test155 test156 test157 test158 test159
+test152 test153 test154 test155 test156 test157 test158 test159 test511
 
 # The following tests have been removed from the dist since they no longer
 # work. We need to fix the test suite's FTPS server first, then bring them
diff --git a/tests/data/test511 b/tests/data/test511
new file mode 100644
index 0000000000..724c568e49
--- /dev/null
+++ b/tests/data/test511
@@ -0,0 +1,35 @@
+#
+# Server-side
+<reply>
+</reply>
+
+# Client-side
+<client>
+<server>
+ftp
+</server>
+# tool is what to use instead of 'curl'
+<tool>
+lib511
+</tool>
+
+ <name>
+FTP with FILETIME and NOBODY but missing file
+ </name>
+ <command>
+ftp://%HOSTIP:%FTPPORT/511
+</command>
+<file name="log/ftpserver.cmd">
+REPLY MDTM 550 bluah you f00l!
+REPLY SIZE 550 bluah you f00l!
+</file>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+# CURLE_FTP_COULDNT_RETR_FILE
+<errorcode>
+19
+</errorcode>
+</verify>
diff --git a/tests/libtest/Makefile.am b/tests/libtest/Makefile.am
index c636a09011..a62ab51148 100644
--- a/tests/libtest/Makefile.am
+++ b/tests/libtest/Makefile.am
@@ -34,11 +34,12 @@ INCLUDES = -I$(top_srcdir)/include/curl \
 
 LIBDIR = $(top_builddir)/lib
 
+# these files are used in every single test program below
 SUPPORTFILES = first.c test.h
 
-# here are all tools used for running libcurl tests
+# These are all libcurl test programs
 noinst_PROGRAMS = lib500 lib501 lib502 lib503 lib504 lib505 lib506 lib507 \
-  lib508 lib509 lib510
+  lib508 lib509 lib510 lib511
 
 lib500_SOURCES = lib500.c $(SUPPORTFILES)
 lib500_LDADD = $(LIBDIR)/libcurl.la
@@ -83,3 +84,7 @@ lib509_DEPENDENCIES = $(LIBDIR)/libcurl.la
 lib510_SOURCES = lib510.c $(SUPPORTFILES)
 lib510_LDADD = $(LIBDIR)/libcurl.la
 lib510_DEPENDENCIES = $(LIBDIR)/libcurl.la
+
+lib511_SOURCES = lib511.c $(SUPPORTFILES)
+lib511_LDADD = $(LIBDIR)/libcurl.la
+lib511_DEPENDENCIES = $(LIBDIR)/libcurl.la
diff --git a/tests/libtest/lib511.c b/tests/libtest/lib511.c
new file mode 100644
index 0000000000..9b9980a719
--- /dev/null
+++ b/tests/libtest/lib511.c
@@ -0,0 +1,14 @@
+#include "test.h"
+
+int test(char *URL)
+{
+  CURLcode res;
+  CURL *curl = curl_easy_init();
+  curl_easy_setopt(curl, CURLOPT_URL, URL);
+  curl_easy_setopt(curl, CURLOPT_FILETIME, 1);
+  curl_easy_setopt(curl, CURLOPT_NOBODY, 1);
+  res = curl_easy_perform(curl);
+  curl_easy_cleanup(curl);  
+  return (int)res;
+}
+
-- 
GitLab