Browse Source

Test test_qa_sock.c

NO idea how it disappeared from the tree, or whether it haz ever been there.
Michele Orrù 11 years ago
parent
commit
30d7a75323
1 changed files with 81 additions and 0 deletions
  1. 81 0
      src/tests/test_qa_sock.c

+ 81 - 0
src/tests/test_qa_sock.c

@@ -0,0 +1,81 @@
+#include <assert.h>
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <openssl/bio.h>
+#include <openssl/ssl.h>
+#include <openssl/x509.h>
+
+#include "qa.h"
+#include "qa_sock.h"
+
+FILE* ferr;
+
+void set_up(void)
+{
+  ferr = fopen("/dev/null", "w");
+
+  /* Initialize SSL Library by registering algorithms. */
+  SSL_library_init();
+  /* trash directly network informative messages */
+  if (ferr) bio_err = BIO_new_fp(ferr, BIO_NOCLOSE);
+  else errno = 0;
+}
+
+void tear_down(void)
+{
+  fclose(ferr);
+}
+void test_host_port(void)
+{
+  char uri[100];
+  char *host, *port;
+
+  /* uris of the form host:port shall be recognized */
+  strcpy(uri, "host:port");
+  host_port(uri, &host, &port);
+  assert(!strcmp(host, "host") &&
+         !strcmp(port, "port"));
+  /* uris given as urls shall be recognized */
+  strcpy(uri, "https://cheese");
+  host_port(uri, &host, &port);
+  assert(!strcmp(host, "cheese") &&
+         !strcmp(port, "https"));
+  /* uris containing just a hostname shall be recognized */
+  strcpy(uri, "queer");
+  host_port(uri, &host, &port);
+  assert(!strcmp(host, "queer") &&
+         !port);
+}
+
+void test_get_remote_cert(void)
+{
+  X509 *crt;
+  char url[100];
+
+  /* NULL shall be returned if the host does not exists. */
+  strcpy(url, "space_oddity");
+  crt = get_remote_cert(url);
+  assert(!crt);
+
+#ifdef NETWORK_TESTS
+  /* Google™ shall support https, and accept tcp connections on https default port. */
+  strcpy(url, "google.com:443");
+  crt = get_remote_cert(url);
+  assert(crt);
+
+#else
+  printf("Skipping %s..\n", __func__);
+
+#endif /* NETWORK_TESTS */
+}
+int main(int argc, char **argv)
+{
+  set_up();
+
+  test_host_port();
+  test_get_remote_cert();
+
+  return 0;
+}