cURL / Mailing Lists / curl-library / Single Mail

curl-library

[PATCH 7/8] unit1394.c: basis of a unit test for parse_cert_parameter()

From: Kamil Dudka <kdudka_at_redhat.com>
Date: Fri, 3 May 2013 23:32:53 +0200

From: Jared Jennings <jjenning_at_fastmail.fm>

---
 tests/unit/unit1394.c |   75 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)
 create mode 100644 tests/unit/unit1394.c
diff --git a/tests/unit/unit1394.c b/tests/unit/unit1394.c
new file mode 100644
index 0000000..11a47b9
--- /dev/null
+++ b/tests/unit/unit1394.c
@@ -0,0 +1,75 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+int main(int argc, char **argv) {
+  char *values[] = {
+    /* -E parameter */        /* exp. cert name */  /* exp. passphrase */
+    "foo:bar:baz",            "foo",                "bar:baz",
+    "foo\\:bar:baz",          "foo:bar",            "baz",
+    "foo\\\\:bar:baz",        "foo\\",              "bar:baz",
+    "foo:bar\\:baz",          "foo",                "bar\\:baz",
+    "foo:bar\\\\:baz",        "foo",                "bar\\\\:baz",
+    "foo\\bar\\baz",          "foo\\bar\\baz",      NULL,
+    "foo\\\\bar\\\\baz",      "foo\\bar\\baz",      NULL,
+    "foo\\",                  "foo\\",              NULL,
+    "foo\\\\",                "foo\\",              NULL,
+    "foo:bar\\",              "foo",                "bar\\",
+    "foo:bar\\\\",            "foo",                "bar\\\\",
+    "foo:bar:",               "foo",                "bar:",
+    "foo\\::bar\\:",          "foo:",               "bar\\:",
+    "c:\\foo:bar:baz",        "c:\\foo",            "bar:baz",
+    "c:\\foo\\:bar:baz",      "c:\\foo:bar",        "baz",
+    "c:\\foo\\\\:bar:baz",    "c:\\foo\\",          "bar:baz",
+    "c:\\foo:bar\\:baz",      "c:\\foo",            "bar\\:baz",
+    "c:\\foo:bar\\\\:baz",    "c:\\foo",            "bar\\\\:baz",
+    "c:\\foo\\bar\\baz",      "c:\\foo\\bar\\baz",  NULL,
+    "c:\\foo\\\\bar\\\\baz",  "c:\\foo\\bar\\baz",  NULL,
+    "c:\\foo\\",              "c:\\foo\\",          NULL,
+    "c:\\foo\\\\",            "c:\\foo\\",          NULL,
+    "c:\\foo:bar\\",          "c:\\foo",            "bar\\",
+    "c:\\foo:bar\\\\",        "c:\\foo",            "bar\\\\",
+    "c:\\foo:bar:",           "c:\\foo",            "bar:",
+    "c:\\foo\\::bar\\:",      "c:\\foo:",           "bar\\:",
+    NULL,                     NULL,                 NULL,
+  };
+  char **p;
+  char *certname, *passphrase;
+  for(p = values; *p; p += 3) {
+    parse_cert_parameter(p[0], &certname, &passphrase);
+    if(p[1]) {
+      if(certname) {
+        if(strcmp(p[1], certname)) {
+          printf("expected certname '%s' but got '%s' "
+              "for -E param '%s'\n", p[1], certname, p[0]);
+        }
+      } else {
+        printf("expected certname '%s' but got NULL "
+            "for -E param '%s'\n", p[1], p[0]);
+      }
+    } else {
+      if(certname) {
+        printf("expected certname NULL but got '%s' "
+            "for -E param '%s'\n", certname, p[0]);
+      }
+    }
+    if(p[2]) {
+      if(passphrase) {
+        if(strcmp(p[2], passphrase)) {
+          printf("expected passphrase '%s' but got '%s'"
+              "for -E param '%s'\n", p[2], passphrase, p[0]);
+        }
+      } else {
+        printf("expected passphrase '%s' but got NULL "
+            "for -E param '%s'\n", p[2], p[0]);
+      }
+    } else {
+      if(passphrase) {
+        printf("expected passphrase NULL but got '%s' "
+            "for -E param '%s'\n", passphrase, p[0]);
+      }
+    }
+    if(certname) free(certname);
+    if(passphrase) free(passphrase);
+  }
+}
-- 
1.7.1
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html
Received on 2013-05-03