diff --git a/tests/FILEFORMAT b/tests/FILEFORMAT
new file mode 100644
index 0000000000..de410d0eee
--- /dev/null
+++ b/tests/FILEFORMAT
@@ -0,0 +1,52 @@
+ The file format of the test suite is a very simple and extendable format. All
+data for a single test case resides in a single ASCII file. Labels mark the
+beginning and the end of all sections. Each label must be written in its own
+line and is resembling XML/HTML.
+
+ Each file is split up in three main sections: reply, client and verify. The
+reply section is used for the server to know what to send as a reply for the
+requests curl sends, the client section defines how the client should behave
+while the verify section defines how to verify that the data stored after a
+command has been run ended up correctly.
+
+ Each main section has a number of available subsections that can be
+specified, that will be checked/used if specified. This document includes all
+the subsections currently supported.
+
+
+
+data to sent to the client on its request
+
+
+if the data is sent but this is what should be checked afterwards
+
+
+number to return on a ftp SIZE command
+
+
+
+
+
+test case description
+
+
+command line to run, there's a bunch of %variables that get replaced
+accordingly. more about them elsewhere
+
+
+this creates the named file with this content before the test case is run
+which is useful if the test case needs a file to act on.
+
+
+
+
+
+numerical error code curl is supposed to return
+
+
+the protocol dump curl should transmit
+
+
+the contents of the upload data curl should have sent
+
+