gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libmicrohttpd] 01/02: test_postprocessor: improved code readability


From: gnunet
Subject: [libmicrohttpd] 01/02: test_postprocessor: improved code readability
Date: Sat, 11 Sep 2021 13:19:58 +0200

This is an automated email from the git hooks/post-receive script.

karlson2k pushed a commit to branch master
in repository libmicrohttpd.

commit e7b2a95ce206ff1e64e8acd3cafd508b45dc0c15
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
AuthorDate: Sat Sep 11 14:19:03 2021 +0300

    test_postprocessor: improved code readability
    
    Robustness is improved as well as a side-effect
---
 src/microhttpd/test_postprocessor.c | 119 +++++++++++++++++++-----------------
 1 file changed, 63 insertions(+), 56 deletions(-)

diff --git a/src/microhttpd/test_postprocessor.c 
b/src/microhttpd/test_postprocessor.c
index 22f8600e..e7130332 100644
--- a/src/microhttpd/test_postprocessor.c
+++ b/src/microhttpd/test_postprocessor.c
@@ -38,50 +38,59 @@
 #define MHD_DEBUG_PP 0
 #endif /* MHD_DEBUG_PP */
 
+struct expResult
+{
+  const char *key;
+  const char *fname;
+  const char *cnt_type;
+  const char *tr_enc;
+  const char *data;
+};
+
 /**
  * Array of values that the value checker "wants".
  * Each series of checks should be terminated by
  * five NULL-entries.
  */
-const char *want[] = {
+struct expResult exp_results[] = {
 #define URL_NOVALUE1_DATA "abc&x=5"
 #define URL_NOVALUE1_START 0
-  "abc", NULL, NULL, NULL, NULL,
-  "x", NULL, NULL, NULL, "5",
-#define URL_NOVALUE1_END (URL_NOVALUE1_START + 10)
+  {"abc", NULL, NULL, NULL, NULL},
+  {"x", NULL, NULL, NULL, "5"},
+#define URL_NOVALUE1_END (URL_NOVALUE1_START + 2)
 #define URL_NOVALUE2_DATA "abc=&x=5"
 #define URL_NOVALUE2_START URL_NOVALUE1_END
-  "abc", NULL, NULL, NULL, "",
-  "x", NULL, NULL, NULL, "5",
-#define URL_NOVALUE2_END (URL_NOVALUE2_START + 10)
+  {"abc", NULL, NULL, NULL, ""},
+  {"x", NULL, NULL, NULL, "5"},
+#define URL_NOVALUE2_END (URL_NOVALUE2_START + 2)
 #define URL_DATA "abc=def&x=5"
 #define URL_START URL_NOVALUE2_END
-  "abc", NULL, NULL, NULL, "def",
-  "x", NULL, NULL, NULL, "5",
-#define URL_END (URL_START + 10)
-  NULL, NULL, NULL, NULL, NULL,
+  {"abc", NULL, NULL, NULL, "def"},
+  {"x", NULL, NULL, NULL, "5"},
+#define URL_END (URL_START + 2)
+  {NULL, NULL, NULL, NULL, NULL},
 #define FORM_DATA \
   "--AaB03x\r\ncontent-disposition: form-data; name=\"field1\"\r\n\r\nJoe 
Blow\r\n--AaB03x\r\ncontent-disposition: form-data; name=\"pics\"; 
filename=\"file1.txt\"\r\nContent-Type: 
text/plain\r\nContent-Transfer-Encoding: 
binary\r\n\r\nfiledata\r\n--AaB03x--\r\n"
-#define FORM_START (URL_END + 5)
-  "field1", NULL, NULL, NULL, "Joe Blow",
-  "pics", "file1.txt", "text/plain", "binary", "filedata",
-#define FORM_END (FORM_START + 10)
-  NULL, NULL, NULL, NULL, NULL,
+#define FORM_START (URL_END + 1)
+  {"field1", NULL, NULL, NULL, "Joe Blow"},
+  {"pics", "file1.txt", "text/plain", "binary", "filedata"},
+#define FORM_END (FORM_START + 2)
+  {NULL, NULL, NULL, NULL, NULL},
 #define FORM_NESTED_DATA \
   "--AaB03x\r\ncontent-disposition: form-data; name=\"field1\"\r\n\r\nJane 
Blow\r\n--AaB03x\r\ncontent-disposition: form-data; 
name=\"pics\"\r\nContent-type: multipart/mixed, 
boundary=BbC04y\r\n\r\n--BbC04y\r\nContent-disposition: attachment; 
filename=\"file1.txt\"\r\nContent-Type: 
text/plain\r\n\r\nfiledata1\r\n--BbC04y\r\nContent-disposition: attachment; 
filename=\"file2.gif\"\r\nContent-type: image/gif\r\nContent-Transfer-Encoding: 
binary\r\n\r\nfiledata2\r\n--BbC04y--\r\n--AaB03x--"
-#define FORM_NESTED_START (FORM_END + 5)
-  "field1", NULL, NULL, NULL, "Jane Blow",
-  "pics", "file1.txt", "text/plain", NULL, "filedata1",
-  "pics", "file2.gif", "image/gif", "binary", "filedata2",
-#define FORM_NESTED_END (FORM_NESTED_START + 15)
-  NULL, NULL, NULL, NULL, NULL,
+#define FORM_NESTED_START (FORM_END + 1)
+  {"field1", NULL, NULL, NULL, "Jane Blow"},
+  {"pics", "file1.txt", "text/plain", NULL, "filedata1"},
+  {"pics", "file2.gif", "image/gif", "binary", "filedata2"},
+#define FORM_NESTED_END (FORM_NESTED_START + 3)
+  {NULL, NULL, NULL, NULL, NULL},
 #define URL_EMPTY_VALUE_DATA "key1=value1&key2=&key3="
-#define URL_EMPTY_VALUE_START (FORM_NESTED_END + 5)
-  "key1", NULL, NULL, NULL, "value1",
-  "key2", NULL, NULL, NULL, "",
-  "key3", NULL, NULL, NULL, "",
-#define URL_EMPTY_VALUE_END (URL_EMPTY_VALUE_START + 15)
-  NULL, NULL, NULL, NULL, NULL
+#define URL_EMPTY_VALUE_START (FORM_NESTED_END + 1)
+  {"key1", NULL, NULL, NULL, "value1"},
+  {"key2", NULL, NULL, NULL, ""},
+  {"key3", NULL, NULL, NULL, ""},
+#define URL_EMPTY_VALUE_END (URL_EMPTY_VALUE_START + 3)
+  {NULL, NULL, NULL, NULL, NULL}
 };
 
 
@@ -107,8 +116,8 @@ value_checker (void *cls,
                uint64_t off,
                size_t size)
 {
-  int *want_off = cls;
-  int idx = *want_off;
+  unsigned int *idxp = cls;
+  struct expResult *expct = exp_results + *idxp;
   (void) kind;  /* Unused. Silent compiler warning. */
 
 #if MHD_DEBUG_PP
@@ -124,21 +133,20 @@ value_checker (void *cls,
 #endif
   if ( (0 != off) && (0 == size) )
   {
-    if (NULL == want[idx + 4])
-      *want_off = idx + 5;
+    if (NULL == expct->data)
+      *idxp += 1;
     return MHD_YES;
   }
-  if ((idx < 0) ||
-      (want[idx] == NULL) ||
-      (0 != strcmp (key, want[idx])) ||
-      (mismatch (filename, want[idx + 1])) ||
-      (mismatch (content_type, want[idx + 2])) ||
-      (mismatch (transfer_encoding, want[idx + 3])) ||
+  if ((expct->key == NULL) ||
+      (0 != strcmp (key, expct->key)) ||
+      (mismatch (filename, expct->fname)) ||
+      (mismatch (content_type, expct->cnt_type)) ||
+      (mismatch (transfer_encoding, expct->tr_enc)) ||
       (0 != memcmp (data,
-                    &want[idx + 4][off],
+                    &expct->data[off],
                     size)))
   {
-    *want_off = -1;
+    *idxp = (unsigned int) -1;
     fprintf (stderr,
              "Failed with: `%s' `%s' `%s' `%s' `%.*s'\n",
              key ? key : "(NULL)",
@@ -149,26 +157,25 @@ value_checker (void *cls,
              data ? data : "(NULL)");
     fprintf (stderr,
              "Wanted: `%s' `%s' `%s' `%s' `%s'\n",
-             want[idx] ? want[idx] : "(NULL)",
-             want[idx + 1] ? want[idx + 1] : "(NULL)",
-             want[idx + 2] ? want[idx + 2] : "(NULL)",
-             want[idx + 3] ? want[idx + 3] : "(NULL)",
-             want[idx + 4] ? want[idx + 4] : "(NULL)");
+             expct->key ? expct->key : "(NULL)",
+             expct->fname ? expct->fname : "(NULL)",
+             expct->cnt_type ? expct->cnt_type : "(NULL)",
+             expct->tr_enc ? expct->tr_enc : "(NULL)",
+             expct->data ? expct->data : "(NULL)");
     fprintf (stderr,
-             "Unexpected result: %d/%d/%d/%d/%d/%d/%d\n",
-             (idx < 0),
-             (want[idx] == NULL),
-             (NULL != want[idx]) && (0 != strcmp (key, want[idx])),
-             (mismatch (filename, want[idx + 1])),
-             (mismatch (content_type, want[idx + 2])),
-             (mismatch (transfer_encoding, want[idx + 3])),
-             (0 != memcmp (data, &want[idx + 4][off], size)));
+             "Unexpected result: %d/%d/%d/%d/%d/%d\n",
+             (expct->key == NULL),
+             (NULL != expct->key) && (0 != strcmp (key, expct->key)),
+             (mismatch (filename, expct->fname)),
+             (mismatch (content_type, expct->cnt_type)),
+             (mismatch (transfer_encoding, expct->tr_enc)),
+             (0 != memcmp (data, &expct->data[off], size)));
     return MHD_NO;
   }
-  if ( ( (NULL == want[idx + 4]) &&
+  if ( ( (NULL == expct->data) &&
          (0 == off + size) ) ||
-       (off + size == strlen (want[idx + 4])) )
-    *want_off = idx + 5;
+       (off + size == strlen (expct->data)) )
+    *idxp += 1;
   return MHD_YES;
 }
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]