unit-tester: Drop the old unit-tester libcharon plugin
authorMartin Willi <martin@revosec.ch>
Tue, 4 Nov 2014 14:00:15 +0000 (15:00 +0100)
committerMartin Willi <martin@revosec.ch>
Fri, 20 Feb 2015 12:34:55 +0000 (13:34 +0100)
While it has some tests that we don't directly cover with the new unit tests,
most of them require special infrastructure and therefore have not been used
for a long time.

14 files changed:
configure.ac
src/libcharon/Makefile.am
src/libcharon/plugins/unit_tester/Makefile.am [deleted file]
src/libcharon/plugins/unit_tester/tests.h [deleted file]
src/libcharon/plugins/unit_tester/tests/test_agent.c [deleted file]
src/libcharon/plugins/unit_tester/tests/test_auth_info.c [deleted file]
src/libcharon/plugins/unit_tester/tests/test_cert.c [deleted file]
src/libcharon/plugins/unit_tester/tests/test_curl.c [deleted file]
src/libcharon/plugins/unit_tester/tests/test_med_db.c [deleted file]
src/libcharon/plugins/unit_tester/tests/test_mysql.c [deleted file]
src/libcharon/plugins/unit_tester/tests/test_pool.c [deleted file]
src/libcharon/plugins/unit_tester/tests/test_sqlite.c [deleted file]
src/libcharon/plugins/unit_tester/unit_tester.c [deleted file]
src/libcharon/plugins/unit_tester/unit_tester.h [deleted file]

index 9e33906..912a908 100644 (file)
@@ -257,7 +257,6 @@ ARG_ENABL_SET([maemo],          [enable Maemo specific plugin.])
 ARG_ENABL_SET([radattr],        [enable plugin to inject and process custom RADIUS attributes as IKEv2 client.])
 ARG_ENABL_SET([systime-fix],    [enable plugin to handle cert lifetimes with invalid system time gracefully.])
 ARG_ENABL_SET([test-vectors],   [enable plugin providing crypto test vectors.])
-ARG_ENABL_SET([unit-tester],    [enable unit tests on IKEv2 daemon startup.])
 ARG_DISBL_SET([updown],         [disable updown firewall script plugin.])
 # programs/components
 ARG_ENABL_SET([aikgen],         [enable AIK generator.])
@@ -1326,7 +1325,6 @@ ADD_PLUGIN([maemo],                [c charon])
 ADD_PLUGIN([uci],                  [c charon])
 ADD_PLUGIN([addrblock],            [c charon])
 ADD_PLUGIN([unity],                [c charon])
-ADD_PLUGIN([unit-tester],          [c charon])
 
 AC_SUBST(charon_plugins)
 AC_SUBST(starter_plugins)
@@ -1419,7 +1417,6 @@ AM_CONDITIONAL(USE_DNSCERT, test x$dnscert = xtrue)
 AM_CONDITIONAL(USE_IPSECKEY, test x$ipseckey = xtrue)
 AM_CONDITIONAL(USE_UPDOWN, test x$updown = xtrue)
 AM_CONDITIONAL(USE_DHCP, test x$dhcp = xtrue)
-AM_CONDITIONAL(USE_UNIT_TESTS, test x$unit_tester = xtrue)
 AM_CONDITIONAL(USE_LOAD_TESTER, test x$load_tester = xtrue)
 AM_CONDITIONAL(USE_HA, test x$ha = xtrue)
 AM_CONDITIONAL(USE_KERNEL_LIBIPSEC, test x$kernel_libipsec = xtrue)
@@ -1745,7 +1742,6 @@ AC_CONFIG_FILES([
        src/libcharon/plugins/vici/ruby/Makefile
        src/libcharon/plugins/updown/Makefile
        src/libcharon/plugins/dhcp/Makefile
-       src/libcharon/plugins/unit_tester/Makefile
        src/libcharon/plugins/load_tester/Makefile
        src/libcharon/plugins/resolve/Makefile
        src/libcharon/plugins/attr/Makefile
index e8500dd..e0457e4 100644 (file)
@@ -600,13 +600,6 @@ if MONOLITHIC
 endif
 endif
 
-if USE_UNIT_TESTS
-  SUBDIRS += plugins/unit_tester
-if MONOLITHIC
-  libcharon_la_LIBADD += plugins/unit_tester/libstrongswan-unit-tester.la
-endif
-endif
-
 if USE_XAUTH_GENERIC
   SUBDIRS += plugins/xauth_generic
 if MONOLITHIC
diff --git a/src/libcharon/plugins/unit_tester/Makefile.am b/src/libcharon/plugins/unit_tester/Makefile.am
deleted file mode 100644 (file)
index b7f8fc3..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-AM_CPPFLAGS = \
-       -I$(top_srcdir)/src/libstrongswan \
-       -I$(top_srcdir)/src/libhydra \
-       -I$(top_srcdir)/src/libcharon
-
-AM_CFLAGS = \
-       $(PLUGIN_CFLAGS)
-
-if MONOLITHIC
-noinst_LTLIBRARIES = libstrongswan-unit-tester.la
-else
-plugin_LTLIBRARIES = libstrongswan-unit-tester.la
-endif
-
-libstrongswan_unit_tester_la_SOURCES = \
-       unit_tester.c unit_tester.h tests.h \
-       tests/test_auth_info.c \
-       tests/test_curl.c \
-       tests/test_mysql.c \
-       tests/test_sqlite.c \
-       tests/test_cert.c \
-       tests/test_med_db.c \
-       tests/test_pool.c \
-       tests/test_agent.c
-
-libstrongswan_unit_tester_la_LDFLAGS = -module -avoid-version
diff --git a/src/libcharon/plugins/unit_tester/tests.h b/src/libcharon/plugins/unit_tester/tests.h
deleted file mode 100644 (file)
index 169292e..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2007 Martin Willi
- * Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * for more details.
- */
-
-/**
- * @defgroup tests tests
- * @{ @ingroup unit_tester
- */
-
-DEFINE_TEST("auth cfg", test_auth_cfg, FALSE)
-DEFINE_TEST("CURL get", test_curl_get, FALSE)
-DEFINE_TEST("MySQL operations", test_mysql, FALSE)
-DEFINE_TEST("SQLite operations", test_sqlite, FALSE)
-DEFINE_TEST("X509 certificate", test_cert_x509, FALSE)
-DEFINE_TEST("Mediation database key fetch", test_med_db, FALSE)
-DEFINE_TEST("IP pool", test_pool, FALSE)
-DEFINE_TEST("SSH agent", test_agent, FALSE)
-
-/** @}*/
diff --git a/src/libcharon/plugins/unit_tester/tests/test_agent.c b/src/libcharon/plugins/unit_tester/tests/test_agent.c
deleted file mode 100644 (file)
index baab629..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2008 Martin Willi
- * Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * for more details.
- */
-
-#include <library.h>
-#include <daemon.h>
-
-/*******************************************************************************
- * SSH agent signature creation and verification
- ******************************************************************************/
-bool test_agent()
-{
-       char *path;
-       chunk_t sig, data = chunk_from_chars(0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08);
-       private_key_t *private;
-       public_key_t *public;
-
-       path = getenv("SSH_AUTH_SOCK");
-       if (!path)
-       {
-               DBG1(DBG_CFG, "ssh-agent not found.");
-               return FALSE;
-       }
-
-       private = lib->creds->create(lib->creds, CRED_PRIVATE_KEY, KEY_RSA,
-                                                                BUILD_AGENT_SOCKET, path, BUILD_END);
-       if (!private)
-       {
-               return FALSE;
-       }
-       if (!private->sign(private, SIGN_RSA_EMSA_PKCS1_SHA1, data, &sig))
-       {
-               return FALSE;
-       }
-       public = private->get_public_key(private);
-       if (!public)
-       {
-               return FALSE;;
-       }
-       if (!public->verify(public, SIGN_RSA_EMSA_PKCS1_SHA1, data, sig))
-       {
-               return FALSE;
-       }
-       free(sig.ptr);
-       data.ptr[1] = 0x01; /* fake it */
-       if (public->verify(public, SIGN_RSA_EMSA_PKCS1_SHA1, data, sig))
-       {
-               return FALSE;
-       }
-
-       private->destroy(private);
-       public->destroy(public);
-
-       return TRUE;
-}
-
diff --git a/src/libcharon/plugins/unit_tester/tests/test_auth_info.c b/src/libcharon/plugins/unit_tester/tests/test_auth_info.c
deleted file mode 100644 (file)
index c250c35..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (C) 2007 Martin Willi
- * Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * for more details.
- */
-
-#include <daemon.h>
-#include <library.h>
-#include <credentials/auth_cfg.h>
-
-
-static chunk_t certchunk = chunk_from_chars(
-       0x30,0x82,0x02,0xfa,0x30,0x82,0x01,0xe2,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,0x5a,
-       0xf2,0x65,0xae,0x78,0xff,0x23,0xde,0xf7,0xa6,0xa3,0x94,0x8c,0x3f,0xa0,0xc1,0x30,
-       0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x30,0x39,
-       0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x43,0x48,0x31,0x19,0x30,
-       0x17,0x06,0x03,0x55,0x04,0x0a,0x13,0x10,0x4c,0x69,0x6e,0x75,0x78,0x20,0x73,0x74,
-       0x72,0x6f,0x6e,0x67,0x53,0x77,0x61,0x6e,0x31,0x0f,0x30,0x0d,0x06,0x03,0x55,0x04,
-       0x03,0x13,0x06,0x6d,0x61,0x72,0x74,0x69,0x6e,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,
-       0x34,0x32,0x37,0x30,0x37,0x31,0x34,0x32,0x36,0x5a,0x17,0x0d,0x31,0x32,0x30,0x34,
-       0x32,0x35,0x30,0x37,0x31,0x34,0x32,0x36,0x5a,0x30,0x39,0x31,0x0b,0x30,0x09,0x06,
-       0x03,0x55,0x04,0x06,0x13,0x02,0x43,0x48,0x31,0x19,0x30,0x17,0x06,0x03,0x55,0x04,
-       0x0a,0x13,0x10,0x4c,0x69,0x6e,0x75,0x78,0x20,0x73,0x74,0x72,0x6f,0x6e,0x67,0x53,
-       0x77,0x61,0x6e,0x31,0x0f,0x30,0x0d,0x06,0x03,0x55,0x04,0x03,0x13,0x06,0x6d,0x61,
-       0x72,0x74,0x69,0x6e,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,
-       0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,
-       0x02,0x82,0x01,0x01,0x00,0xd7,0xb9,0xba,0x4d,0xe2,0x3b,0x3d,0x35,0x7a,0x3f,0x88,
-       0x67,0x95,0xe7,0xfd,0x9f,0xe9,0x0a,0x0d,0x79,0x3a,0x9e,0x21,0x8f,0xcb,0xe4,0x67,
-       0x24,0xae,0x0c,0xda,0xb3,0xcc,0xec,0x36,0xb4,0xa8,0x4d,0xf1,0x3d,0xad,0xe4,0x8c,
-       0x63,0x92,0x54,0xb7,0xb2,0x02,0xa2,0x00,0x62,0x8b,0x04,0xac,0xa0,0x17,0xad,0x17,
-       0x9a,0x05,0x0d,0xd7,0xb3,0x08,0x02,0xc5,0x26,0xcf,0xdd,0x05,0x42,0xfc,0x13,0x6d,
-       0x9f,0xb1,0xf3,0x4f,0x82,0x1d,0xef,0x01,0xc9,0x91,0xea,0x37,0x1b,0x79,0x28,0xfa,
-       0xbf,0x9f,0xb3,0xeb,0x82,0x4f,0x10,0xc6,0x4b,0xa4,0x08,0xf7,0x8e,0xf2,0x00,0xea,
-       0x04,0x97,0x80,0x9f,0x65,0x86,0xde,0x6b,0xc7,0xda,0x83,0xfc,0xad,0x4a,0xaf,0x52,
-       0x8b,0x4d,0x33,0xee,0x49,0x87,0x2f,0x3b,0x60,0x45,0x66,0x8f,0xe6,0x89,0xcc,0xb1,
-       0x92,0x02,0x17,0x2b,0x7b,0x8e,0x90,0x47,0x84,0x84,0x59,0x95,0x81,0xd8,0xe0,0xf3,
-       0x87,0xe0,0x04,0x09,0xfd,0xcc,0x3a,0x21,0x34,0xfa,0xec,0xbe,0xf5,0x9c,0xcf,0x55,
-       0x80,0x7b,0xe3,0x75,0x9d,0x36,0x68,0xab,0x83,0xe3,0xad,0x01,0x53,0x0d,0x8a,0x9a,
-       0xa6,0xb0,0x15,0xc9,0xc5,0xf8,0x9b,0x51,0x32,0xcf,0x97,0x6c,0xfe,0x4a,0x56,0x3c,
-       0xc8,0x8f,0x4a,0x70,0x23,0x4f,0xf6,0xf7,0xe6,0x9f,0x09,0xcd,0x8f,0xea,0x20,0x7d,
-       0x34,0xc0,0xc5,0xc0,0x34,0x06,0x6f,0x8b,0xeb,0x04,0x54,0x3f,0x0e,0xcd,0xe2,0x85,
-       0xab,0x94,0x3e,0x91,0x6c,0x18,0x6f,0x96,0x5d,0xf2,0x8b,0x10,0xe9,0x90,0x43,0xb0,
-       0x61,0x52,0xac,0xcf,0x75,0x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,
-       0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x09,0x63,
-       0x42,0xad,0xe5,0xa3,0xf6,0xc9,0x5d,0x08,0xf2,0x78,0x7b,0xeb,0x8a,0xef,0x50,0x00,
-       0xc8,0xeb,0xe9,0x26,0x94,0xcb,0x84,0x10,0x7e,0x42,0x6b,0x86,0x38,0x57,0xa6,0x02,
-       0x98,0x5a,0x2c,0x8f,0x44,0x32,0x1b,0x97,0x8c,0x7e,0x4b,0xd8,0xe8,0xe8,0x0f,0x4a,
-       0xb9,0x31,0x9f,0xf6,0x9f,0x0e,0x67,0x26,0x05,0x2a,0x99,0x14,0x35,0x41,0x47,0x9a,
-       0xfa,0x12,0x94,0x0b,0xe9,0x27,0x7c,0x71,0x20,0xd7,0x8d,0x3b,0x97,0x19,0x2d,0x15,
-       0xff,0xa4,0xf3,0x89,0x8d,0x29,0x5f,0xf6,0x3f,0x93,0xaf,0x78,0x61,0xe4,0xe1,0x2e,
-       0x75,0xc1,0x2c,0xc4,0x76,0x95,0x19,0xf8,0x37,0xdc,0xd8,0x00,0x7a,0x3c,0x0f,0x49,
-       0x2e,0x88,0x09,0x16,0xb3,0x92,0x33,0xdf,0x77,0x83,0x4f,0xb5,0x9e,0x30,0x8c,0x48,
-       0x1d,0xd8,0x84,0xfb,0xf1,0xb9,0xa0,0xbe,0x25,0xff,0x4c,0xeb,0xef,0x2b,0xcd,0xfa,
-       0x0b,0x94,0x66,0x3b,0x28,0x08,0x3f,0x3a,0xda,0x41,0xd0,0x6b,0xab,0x5e,0xbb,0x8a,
-       0x9f,0xdc,0x98,0x3e,0x59,0x37,0x48,0xbe,0x69,0xde,0x85,0x82,0xf2,0x53,0x8b,0xe4,
-       0x44,0xe4,0x71,0x91,0x14,0x85,0x0e,0x1e,0x79,0xdd,0x62,0xf5,0xdc,0x25,0x89,0xab,
-       0x50,0x5b,0xaa,0xae,0xe3,0x64,0x6a,0x23,0x34,0xd7,0x30,0xe2,0x2a,0xc8,0x81,0x0c,
-       0xec,0xd2,0x31,0xc6,0x1e,0xb6,0xc0,0x57,0xd9,0xe1,0x14,0x06,0x9b,0xf8,0x51,0x69,
-       0x47,0xf0,0x9c,0xcd,0x69,0xef,0x8e,0x5f,0x62,0xda,0x10,0xf7,0x3c,0x6d,0x0f,0x33,
-       0xec,0x6f,0xfd,0x94,0x07,0x16,0x41,0x32,0x06,0xa4,0xe1,0x08,0x31,0x87,
-);
-
-/*******************************************************************************
- * auth info test
- ******************************************************************************/
-bool test_auth_cfg()
-{
-       auth_cfg_t *auth = auth_cfg_create(), *auth2;
-       certificate_t *c1, *c2;
-       enumerator_t *enumerator;
-       int round = 0;
-       void *value;
-       auth_rule_t type;
-
-       c1 = lib->creds->create(lib->creds, CRED_CERTIFICATE, CERT_X509,
-                                                       BUILD_BLOB_ASN1_DER, certchunk,
-                                                       BUILD_END);
-       if (!c1)
-       {
-               return FALSE;
-       }
-
-       auth->add(auth, AUTH_RULE_SUBJECT_CERT, c1->get_ref(c1));
-       c2 = auth->get(auth, AUTH_RULE_SUBJECT_CERT);
-       if (!c2)
-       {
-               return FALSE;
-       }
-       if (!c1->equals(c1, c2))
-       {
-               return FALSE;
-       }
-
-       enumerator = auth->create_enumerator(auth);
-       while (enumerator->enumerate(enumerator, &type, &value))
-       {
-               round++;
-               if (round == 1 && type == AUTH_RULE_SUBJECT_CERT && value == c1)
-               {
-                       continue;
-               }
-               return FALSE;
-       }
-       enumerator->destroy(enumerator);
-
-       auth2 = auth_cfg_create();
-       auth2->add(auth2, AUTH_RULE_CA_CERT, c1->get_ref(c1));
-       auth2->merge(auth2, auth, FALSE);
-
-       round = 0;
-       enumerator = auth2->create_enumerator(auth2);
-       while (enumerator->enumerate(enumerator, &type, &value))
-       {
-               round++;
-               if (round == 1 && type == AUTH_RULE_CA_CERT && value == c1)
-               {
-                       continue;
-               }
-               if (round == 2 && type == AUTH_RULE_SUBJECT_CERT && value == c1)
-               {
-                       continue;
-               }
-               return FALSE;
-       }
-       enumerator->destroy(enumerator);
-       auth->destroy(auth);
-       auth2->destroy(auth2);
-       c1->destroy(c1);
-       return TRUE;
-}
-
diff --git a/src/libcharon/plugins/unit_tester/tests/test_cert.c b/src/libcharon/plugins/unit_tester/tests/test_cert.c
deleted file mode 100644 (file)
index f4410a6..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (C) 2008 Martin Willi
- * Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * for more details.
- */
-
-#include <library.h>
-#include <daemon.h>
-#include <credentials/certificates/x509.h>
-
-/*******************************************************************************
- * X509 certificate generation and parsing
- ******************************************************************************/
-bool test_cert_x509()
-{
-       private_key_t *ca_key, *peer_key;
-       public_key_t *public;
-       certificate_t *ca_cert, *peer_cert, *parsed;
-       identification_t *issuer, *subject;
-       u_int32_t serial = htonl(0);
-       chunk_t encoding;
-
-       issuer = identification_create_from_string("CN=CA, OU=Test, O=strongSwan");
-       subject = identification_create_from_string("CN=Peer, OU=Test, O=strongSwan");
-
-       ca_key = lib->creds->create(lib->creds, CRED_PRIVATE_KEY, KEY_RSA,
-                                               BUILD_KEY_SIZE, 1024, BUILD_END);
-       peer_key = lib->creds->create(lib->creds, CRED_PRIVATE_KEY, KEY_RSA,
-                                               BUILD_KEY_SIZE, 1024, BUILD_END);
-       if (!ca_key)
-       {
-               return FALSE;
-       }
-       ca_cert = lib->creds->create(lib->creds, CRED_CERTIFICATE, CERT_X509,
-                                               BUILD_SIGNING_KEY, ca_key,
-                                               BUILD_SUBJECT, issuer,
-                                               BUILD_SERIAL, chunk_from_thing(serial),
-                                               BUILD_X509_FLAG, X509_CA,
-                                               BUILD_END);
-       if (!ca_cert)
-       {
-               return FALSE;
-       }
-
-       ca_cert->get_encoding(ca_cert, CERT_ASN1_DER, &encoding);
-       parsed = lib->creds->create(lib->creds, CRED_CERTIFICATE, CERT_X509,
-                                               BUILD_BLOB_ASN1_DER, encoding,
-                                               BUILD_END);
-       chunk_free(&encoding);
-       if (!parsed)
-       {
-               return FALSE;
-       }
-       if (!parsed->issued_by(parsed, ca_cert, NULL))
-       {
-               return FALSE;
-       }
-       parsed->destroy(parsed);
-
-       serial = htonl(ntohl(serial) + 1);
-       public = peer_key->get_public_key(peer_key);
-       peer_cert = lib->creds->create(lib->creds, CRED_CERTIFICATE, CERT_X509,
-                                               BUILD_SIGNING_KEY, ca_key,
-                                               BUILD_SIGNING_CERT, ca_cert,
-                                               BUILD_PUBLIC_KEY, public,
-                                               BUILD_SUBJECT, subject,
-                                               BUILD_SERIAL, chunk_from_thing(serial),
-                                               BUILD_END);
-       public->destroy(public);
-       if (!peer_cert)
-       {
-               return FALSE;
-       }
-
-       peer_cert->get_encoding(peer_cert, CERT_ASN1_DER, &encoding);
-       parsed = lib->creds->create(lib->creds, CRED_CERTIFICATE, CERT_X509,
-                                               BUILD_BLOB_ASN1_DER, encoding,
-                                               BUILD_END);
-       chunk_free(&encoding);
-       if (!parsed)
-       {
-               return FALSE;
-       }
-       if (!parsed->issued_by(parsed, ca_cert, NULL))
-       {
-               return FALSE;
-       }
-       parsed->destroy(parsed);
-
-       ca_cert->destroy(ca_cert);
-       ca_key->destroy(ca_key);
-       peer_cert->destroy(peer_cert);
-       peer_key->destroy(peer_key);
-       issuer->destroy(issuer);
-       subject->destroy(subject);
-       return TRUE;
-}
-
-
diff --git a/src/libcharon/plugins/unit_tester/tests/test_curl.c b/src/libcharon/plugins/unit_tester/tests/test_curl.c
deleted file mode 100644 (file)
index 21656a9..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2007 Martin Willi
- * Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * for more details.
- */
-
-#include <daemon.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-
-/*******************************************************************************
- * curl get test
- ******************************************************************************/
-
-bool test_curl_get()
-{
-       chunk_t chunk;
-
-       if (lib->fetcher->fetch(lib->fetcher, "http://www.strongswan.org",
-                                                       &chunk, FETCH_END) != SUCCESS)
-       {
-               return FALSE;
-       }
-       free(chunk.ptr);
-
-       if (lib->fetcher->fetch(lib->fetcher, "http://www.google.com",
-                                                       &chunk, FETCH_END) != SUCCESS)
-       {
-               return FALSE;
-       }
-       free(chunk.ptr);
-       return TRUE;
-}
-
diff --git a/src/libcharon/plugins/unit_tester/tests/test_med_db.c b/src/libcharon/plugins/unit_tester/tests/test_med_db.c
deleted file mode 100644 (file)
index 75244ab..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2008 Martin Willi
- * Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * for more details.
- */
-
-#include <library.h>
-#include <daemon.h>
-#include <collections/enumerator.h>
-
-#include <unistd.h>
-
-/*******************************************************************************
- * fetch public key from mediation database
- ******************************************************************************/
-
-bool test_med_db()
-{
-       chunk_t found, keyid = chunk_from_chars(
-               0xed,0x90,0xe6,0x4f,0xec,0xa2,0x1f,0x4b,
-               0x68,0x97,0x99,0x24,0x22,0xe0,0xde,0x21,
-               0xb9,0xd6,0x26,0x29
-       );
-       identification_t *id;
-       enumerator_t *enumerator;
-       public_key_t *public;
-       auth_cfg_t *auth;
-       bool good = FALSE;
-
-       id = identification_create_from_encoding(ID_KEY_ID, keyid);
-       enumerator = lib->credmgr->create_public_enumerator(lib->credmgr,
-                                                                                                               KEY_ANY, id, NULL);
-       while (enumerator->enumerate(enumerator, &public, &auth))
-       {
-               good = public->get_fingerprint(public, KEYID_PUBKEY_SHA1, &found);
-               if (good)
-               {
-                       good = chunk_equals(id->get_encoding(id), found);
-               }
-       }
-       enumerator->destroy(enumerator);
-       id->destroy(id);
-       return good;
-}
-
diff --git a/src/libcharon/plugins/unit_tester/tests/test_mysql.c b/src/libcharon/plugins/unit_tester/tests/test_mysql.c
deleted file mode 100644 (file)
index eda2386..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2008 Martin Willi
- * Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * for more details.
- */
-
-#include <library.h>
-#include <daemon.h>
-#include <collections/enumerator.h>
-
-/*******************************************************************************
- * mysql simple test
- ******************************************************************************/
-bool test_mysql()
-{
-       database_t *db;
-       char *txt = "I'm a superduper test";
-       chunk_t data = chunk_from_chars(0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08);
-       int row;
-       chunk_t qdata;
-       char *qtxt;
-       bool good = FALSE;
-       enumerator_t *enumerator;
-
-       db = lib->db->create(lib->db, "mysql://testuser:testpass@localhost/test");
-       if (!db)
-       {
-               return FALSE;
-       }
-       if (db->execute(db, NULL, "CREATE TABLE test ("
-                                                               "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, "
-                                                               "txt TEXT, data BLOB)") < 0)
-       {
-               return FALSE;
-       }
-       if (db->execute(db, &row, "INSERT INTO test (txt, data) VALUES (?,?)",
-                                       DB_TEXT, txt, DB_BLOB, data) < 0)
-       {
-               return FALSE;
-       }
-       if (row != 1)
-       {
-               return FALSE;
-       }
-       enumerator = db->query(db, "SELECT txt, data FROM test WHERE id = ?",
-                                                  DB_INT, row,
-                                                  DB_TEXT, DB_BLOB);
-       if (!enumerator)
-       {
-               return FALSE;
-       }
-       while (enumerator->enumerate(enumerator, &qtxt, &qdata))
-       {
-               if (good)
-               {       /* only one row */
-                       good = FALSE;
-                       break;
-               }
-               if (streq(qtxt, txt) && chunk_equals(data, qdata))
-               {
-                       good = TRUE;
-               }
-       }
-       enumerator->destroy(enumerator);
-       if (!good)
-       {
-               return FALSE;
-       }
-       if (db->execute(db, NULL, "DELETE FROM test WHERE id = ?", DB_INT, row) != 1)
-       {
-               return FALSE;
-       }
-       if (db->execute(db, NULL, "DROP TABLE test") < 0)
-       {
-               return FALSE;
-       }
-       db->destroy(db);
-       return TRUE;
-}
-
diff --git a/src/libcharon/plugins/unit_tester/tests/test_pool.c b/src/libcharon/plugins/unit_tester/tests/test_pool.c
deleted file mode 100644 (file)
index da5c22f..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2008 Martin Willi
- * Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * for more details.
- */
-
-#include <time.h>
-
-#include <library.h>
-#include <threading/thread.h>
-#include <daemon.h>
-
-#define ALLOCS 1000
-#define THREADS 20
-
-static void* testing(void *thread)
-{
-       int i;
-       host_t *addr[ALLOCS];
-       identification_t *id[ALLOCS];
-       linked_list_t *pools;
-
-       /* prepare identities */
-       for (i = 0; i < ALLOCS; i++)
-       {
-               char buf[256];
-
-               snprintf(buf, sizeof(buf), "%d-%d@strongswan.org", (uintptr_t)thread, i);
-               id[i] = identification_create_from_string(buf);
-       }
-
-       pools = linked_list_create();
-       pools->insert_last(pools, "test");
-
-       /* allocate addresses */
-       for (i = 0; i < ALLOCS; i++)
-       {
-               addr[i] = charon->attributes->acquire_address(charon->attributes,
-                                                                                                         pools, id[i], NULL);
-               if (!addr[i])
-               {
-                       pools->destroy(pools);
-                       return (void*)FALSE;
-               }
-       }
-
-       /* release addresses */
-       for (i = 0; i < ALLOCS; i++)
-       {
-               charon->attributes->release_address(charon->attributes,
-                                                                                       pools, addr[i], id[i]);
-       }
-
-       pools->destroy(pools);
-
-       /* cleanup */
-       for (i = 0; i < ALLOCS; i++)
-       {
-               addr[i]->destroy(addr[i]);
-               id[i]->destroy(id[i]);
-       }
-       return (void*)TRUE;
-}
-
-
-/*******************************************************************************
- * SQL pool performance test
- ******************************************************************************/
-bool test_pool()
-{
-       thread_t *threads[THREADS];
-       uintptr_t i;
-
-       for (i = 0; i < THREADS; i++)
-       {
-               if (!(threads[i] = thread_create((thread_main_t)testing, (void*)i)))
-               {
-                       return FALSE;
-               }
-       }
-       for (i = 0; i < THREADS; i++)
-       {
-               bool *res = threads[i]->join(threads[i]);
-               if (!res)
-               {
-                       return FALSE;
-               }
-       }
-       return TRUE;
-}
diff --git a/src/libcharon/plugins/unit_tester/tests/test_sqlite.c b/src/libcharon/plugins/unit_tester/tests/test_sqlite.c
deleted file mode 100644 (file)
index 99490b5..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2008 Martin Willi
- * Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * for more details.
- */
-
-#include <library.h>
-#include <daemon.h>
-#include <collections/enumerator.h>
-
-#include <unistd.h>
-
-
-#define DBFILE "/tmp/strongswan-test.db"
-
-/*******************************************************************************
- * sqlite simple test
- ******************************************************************************/
-bool test_sqlite()
-{
-       database_t *db;
-       char *txt = "I'm a superduper test";
-       chunk_t data = chunk_from_chars(0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08);
-       int row;
-       chunk_t qdata;
-       char *qtxt;
-       bool good = FALSE;
-       enumerator_t *enumerator;
-
-       db = lib->db->create(lib->db, "sqlite://" DBFILE);
-       if (!db)
-       {
-               return FALSE;
-       }
-       if (db->execute(db, NULL, "CREATE TABLE test (txt TEXT, data BLOB)") < 0)
-       {
-               return FALSE;
-       }
-       if (db->execute(db, &row, "INSERT INTO test (txt, data) VALUES (?,?)",
-                                       DB_TEXT, txt, DB_BLOB, data) < 0)
-       {
-               return FALSE;
-       }
-       if (row != 1)
-       {
-               return FALSE;
-       }
-       enumerator = db->query(db, "SELECT txt, data FROM test WHERE oid = ?",
-                                                  DB_INT, row,
-                                                  DB_TEXT, DB_BLOB);
-       if (!enumerator)
-       {
-               return FALSE;
-       }
-       while (enumerator->enumerate(enumerator, &qtxt, &qdata))
-       {
-               if (good)
-               {       /* only one row */
-                       good = FALSE;
-                       break;
-               }
-               if (streq(qtxt, txt) && chunk_equals(data, qdata))
-               {
-                       good = TRUE;
-               }
-       }
-       enumerator->destroy(enumerator);
-       if (!good)
-       {
-               return FALSE;
-       }
-       if (db->execute(db, NULL, "DELETE FROM test WHERE oid = ?", DB_INT, row) != 1)
-       {
-               return FALSE;
-       }
-       if (db->execute(db, NULL, "DROP TABLE test") < 0)
-       {
-               return FALSE;
-       }
-       db->destroy(db);
-       unlink(DBFILE);
-       return TRUE;
-}
-
diff --git a/src/libcharon/plugins/unit_tester/unit_tester.c b/src/libcharon/plugins/unit_tester/unit_tester.c
deleted file mode 100644 (file)
index ea7ffca..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2013 Tobias Brunner
- * Copyright (C) 2007 Martin Willi
- * Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * for more details.
- */
-
-#include "unit_tester.h"
-
-#include <daemon.h>
-
-typedef struct private_unit_tester_t private_unit_tester_t;
-typedef struct unit_test_t unit_test_t;
-typedef enum test_status_t test_status_t;
-
-/**
- * private data of unit_tester
- */
-struct private_unit_tester_t {
-
-       /**
-        * public functions
-        */
-       unit_tester_t public;
-};
-
-struct unit_test_t {
-
-       /**
-        * name of the test
-        */
-       char *name;
-
-       /**
-        * test function
-        */
-       bool (*test)(void);
-
-       /**
-        * run the test?
-        */
-       bool enabled;
-};
-
-#undef DEFINE_TEST
-#define DEFINE_TEST(name, function, enabled) bool function();
-#include <plugins/unit_tester/tests.h>
-#undef DEFINE_TEST
-#define DEFINE_TEST(name, function, enabled) {name, function, enabled},
-static unit_test_t tests[] = {
-#include <plugins/unit_tester/tests.h>
-};
-
-static void run_tests(private_unit_tester_t *this)
-{
-       int i, run = 0, failed = 0, success = 0, skipped = 0;
-
-       DBG1(DBG_CFG, "running unit tests, %d tests registered",
-                sizeof(tests)/sizeof(unit_test_t));
-
-       for (i = 0; i < sizeof(tests)/sizeof(unit_test_t); i++)
-       {
-               if (tests[i].enabled)
-               {
-                       run++;
-                       if (tests[i].test())
-                       {
-                               DBG1(DBG_CFG, "test '%s' successful", tests[i].name);
-                               success++;
-                       }
-                       else
-                       {
-                               DBG1(DBG_CFG, "test '%s' failed", tests[i].name);
-                               failed++;
-                       }
-               }
-               else
-               {
-                       DBG1(DBG_CFG, "test '%s' disabled", tests[i].name);
-                       skipped++;
-               }
-       }
-       DBG1(DBG_CFG, "%d/%d tests successful (%d failed, %d disabled)",
-                success, run, failed, skipped);
-}
-
-METHOD(plugin_t, get_name, char*,
-       private_unit_tester_t *this)
-{
-       return "unit-tester";
-}
-
-/**
- * We currently don't depend explicitly on any plugin features.  But in case
- * activated tests depend on such features we at least try to run them in plugin
- * order.
- */
-static bool plugin_cb(private_unit_tester_t *this,
-                                         plugin_feature_t *feature, bool reg, void *cb_data)
-{
-       if (reg)
-       {
-               run_tests(this);
-       }
-       return TRUE;
-}
-
-METHOD(plugin_t, get_features, int,
-       private_unit_tester_t *this, plugin_feature_t *features[])
-{
-       static plugin_feature_t f[] = {
-               PLUGIN_CALLBACK((plugin_feature_callback_t)plugin_cb, NULL),
-                       PLUGIN_PROVIDE(CUSTOM, "unit-tester"),
-       };
-       *features = f;
-       return countof(f);
-}
-
-METHOD(plugin_t, destroy, void,
-       private_unit_tester_t *this)
-{
-       free(this);
-}
-
-/*
- * see header file
- */
-plugin_t *unit_tester_plugin_create()
-{
-       private_unit_tester_t *this;
-
-       INIT(this,
-               .public = {
-                       .plugin = {
-                               .get_name = _get_name,
-                               .get_features = _get_features,
-                               .destroy = _destroy,
-                       },
-               },
-       );
-
-       return &this->public.plugin;
-}
diff --git a/src/libcharon/plugins/unit_tester/unit_tester.h b/src/libcharon/plugins/unit_tester/unit_tester.h
deleted file mode 100644 (file)
index 08784f6..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2007 Martin Willi
- * Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * for more details.
- */
-
-/**
- * @defgroup unit_tester unit_tester
- * @{ @ingroup cplugins
- */
-
-#ifndef UNIT_TESTER_H_
-#define UNIT_TESTER_H_
-
-#include <plugins/plugin.h>
-
-typedef struct unit_tester_t unit_tester_t;
-
-/**
- * Unit testing plugin.
- *
- * The unit testing plugin runs tests on plugin initialization. Tests are
- * defined in tests.h using the DEFINE_TEST macro. Implementation of the
- * tests is done in the tests folder. Each test has uses a function which
- * returns TRUE for success or FALSE for failure.
- */
-struct unit_tester_t {
-
-       /**
-        * Implements the plugin interface.
-        */
-       plugin_t plugin;
-};
-
-#endif /** UNIT_TESTER_H_ @}*/