ecore_con: add test cases related to SSL.
authorSrivardhan Hebbar <sri.hebbar@samsung.com>
Fri, 6 Mar 2015 14:55:58 +0000 (15:55 +0100)
committerCedric BAIL <cedric@osg.samsung.com>
Fri, 6 Mar 2015 19:19:21 +0000 (20:19 +0100)
Summary:
Add test cases related to SSL. Now it is not crashing and all test cases passes.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2095

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
src/tests/ecore/ecore_test_ecore_con.c
src/tests/ecore/server.key [new file with mode: 0644]
src/tests/ecore/server.pem [new file with mode: 0644]

index e29139d..70b9162 100644 (file)
@@ -176,9 +176,9 @@ _dns_err(void *data, int type EINA_UNUSED, void *ev EINA_UNUSED)
    return ECORE_CALLBACK_RENEW;
 }
 
-void _ecore_con_server_client_tests(Ecore_Con_Type compl_type, const char *name)
+void _ecore_con_server_client_tests(Ecore_Con_Type compl_type, const char *name, Eina_Bool is_ssl)
 {
-   Ecore_Con_Server *server = NULL;
+   Ecore_Con_Server *server;
    Ecore_Con_Server *client;
    Ecore_Con_Client *cl;
    const Eina_List *clients, *l;
@@ -220,6 +220,12 @@ void _ecore_con_server_client_tests(Ecore_Con_Type compl_type, const char *name)
        server_data);
    fail_if (server == NULL);
 
+   if (is_ssl)
+     {
+        fail_unless(ecore_con_ssl_server_cert_add(server, TESTS_SRC_DIR"/server.pem"));
+        fail_unless(ecore_con_ssl_server_privkey_add(server, TESTS_SRC_DIR"/server.key"));
+     }
+
    del_ret = ecore_con_server_data_get(server);
    fail_if (del_ret != server_data);
 
@@ -241,6 +247,12 @@ void _ecore_con_server_client_tests(Ecore_Con_Type compl_type, const char *name)
        client_data);
    fail_if (client == NULL);
 
+   if (is_ssl)
+     {
+        fail_unless(ecore_con_ssl_server_cafile_add(server, TESTS_SRC_DIR"/server.pem"));
+        ecore_con_ssl_server_verify(server);
+     }
+
    ecore_main_loop_begin();
 
    clients = ecore_con_server_clients_get(server);
@@ -285,31 +297,103 @@ void _ecore_con_server_client_tests(Ecore_Con_Type compl_type, const char *name)
 
 START_TEST(ecore_test_ecore_con_local_user)
 {
-   _ecore_con_server_client_tests(ECORE_CON_LOCAL_USER, "test_sock");
+   _ecore_con_server_client_tests(ECORE_CON_LOCAL_USER, "test_sock", EINA_FALSE);
 }
 END_TEST
 
 START_TEST(ecore_test_ecore_con_local_system)
 {
-   _ecore_con_server_client_tests(ECORE_CON_LOCAL_SYSTEM, "test_sock");
+   _ecore_con_server_client_tests(ECORE_CON_LOCAL_SYSTEM, "test_sock", EINA_FALSE);
 }
 END_TEST
 
 START_TEST(ecore_test_ecore_con_local_abstract)
 {
-   _ecore_con_server_client_tests(ECORE_CON_LOCAL_ABSTRACT, "test_sock");
+   _ecore_con_server_client_tests(ECORE_CON_LOCAL_ABSTRACT, "test_sock", EINA_FALSE);
 }
 END_TEST
 
 START_TEST(ecore_test_ecore_con_remote_tcp)
 {
-   _ecore_con_server_client_tests(ECORE_CON_REMOTE_TCP, "127.0.0.1");
+   _ecore_con_server_client_tests(ECORE_CON_REMOTE_TCP, "127.0.0.1", EINA_FALSE);
 }
 END_TEST
 
 START_TEST(ecore_test_ecore_con_remote_nodelay)
 {
-   _ecore_con_server_client_tests(ECORE_CON_REMOTE_NODELAY, "127.0.0.1");
+   _ecore_con_server_client_tests(ECORE_CON_REMOTE_NODELAY, "127.0.0.1", EINA_FALSE);
+}
+END_TEST
+
+START_TEST(ecore_test_ecore_con_remote_tcp_ssl3)
+{
+   _ecore_con_server_client_tests(ECORE_CON_REMOTE_TCP | ECORE_CON_USE_SSL3, "127.0.0.1", EINA_TRUE);
+}
+END_TEST
+
+START_TEST(ecore_test_ecore_con_remote_tcp_ssl3_load_cert)
+{
+   _ecore_con_server_client_tests(ECORE_CON_REMOTE_TCP | ECORE_CON_USE_SSL3 | ECORE_CON_LOAD_CERT, "127.0.0.1", EINA_TRUE);
+}
+END_TEST
+
+START_TEST(ecore_test_ecore_con_remote_tcp_tls)
+{
+   _ecore_con_server_client_tests(ECORE_CON_REMOTE_TCP | ECORE_CON_USE_TLS, "127.0.0.1", EINA_TRUE);
+}
+END_TEST
+
+START_TEST(ecore_test_ecore_con_remote_tcp_tls_load_cert)
+{
+   _ecore_con_server_client_tests(ECORE_CON_REMOTE_TCP | ECORE_CON_USE_TLS | ECORE_CON_LOAD_CERT, "127.0.0.1", EINA_TRUE);
+}
+END_TEST
+
+START_TEST(ecore_test_ecore_con_remote_tcp_mixed)
+{
+   _ecore_con_server_client_tests(ECORE_CON_REMOTE_TCP | ECORE_CON_USE_MIXED, "127.0.0.1", EINA_TRUE);
+}
+END_TEST
+
+START_TEST(ecore_test_ecore_con_remote_tcp_mixed_load_cert)
+{
+   _ecore_con_server_client_tests(ECORE_CON_REMOTE_TCP | ECORE_CON_USE_MIXED | ECORE_CON_LOAD_CERT, "127.0.0.1", EINA_TRUE);
+}
+END_TEST
+
+START_TEST(ecore_test_ecore_con_remote_nodelay_ssl3)
+{
+   _ecore_con_server_client_tests(ECORE_CON_REMOTE_NODELAY | ECORE_CON_USE_SSL3, "127.0.0.1", EINA_TRUE);
+}
+END_TEST
+
+START_TEST(ecore_test_ecore_con_remote_nodelay_ssl3_load_cert)
+{
+   _ecore_con_server_client_tests(ECORE_CON_REMOTE_NODELAY | ECORE_CON_USE_SSL3 | ECORE_CON_LOAD_CERT, "127.0.0.1", EINA_TRUE);
+}
+END_TEST
+
+START_TEST(ecore_test_ecore_con_remote_nodelay_tls)
+{
+   _ecore_con_server_client_tests(ECORE_CON_REMOTE_NODELAY | ECORE_CON_USE_TLS, "127.0.0.1", EINA_TRUE);
+}
+END_TEST
+
+START_TEST(ecore_test_ecore_con_remote_nodelay_tls_load_cert)
+{
+   _ecore_con_server_client_tests(ECORE_CON_REMOTE_NODELAY | ECORE_CON_USE_TLS | ECORE_CON_LOAD_CERT, "127.0.0.1", EINA_TRUE);
+}
+END_TEST
+
+START_TEST(ecore_test_ecore_con_remote_nodelay_mixed)
+{
+   _ecore_con_server_client_tests(ECORE_CON_REMOTE_NODELAY | ECORE_CON_USE_MIXED, "127.0.0.1", EINA_TRUE);
+}
+END_TEST
+
+START_TEST(ecore_test_ecore_con_remote_nodelay_mixed_load_cert)
+{
+   _ecore_con_server_client_tests(ECORE_CON_REMOTE_NODELAY | ECORE_CON_USE_MIXED | ECORE_CON_LOAD_CERT, "127.0.0.1", EINA_TRUE);
 }
 END_TEST
 
@@ -380,8 +464,20 @@ void ecore_test_ecore_con(TCase *tc)
    tcase_add_test(tc, ecore_test_ecore_con_local_user);
    tcase_add_test(tc, ecore_test_ecore_con_local_system);
    tcase_add_test(tc, ecore_test_ecore_con_local_abstract);
-   tcase_add_test(tc,ecore_test_ecore_con_remote_tcp);
-   tcase_add_test(tc,ecore_test_ecore_con_remote_nodelay);
+   tcase_add_test(tc, ecore_test_ecore_con_remote_tcp);
+   tcase_add_test(tc, ecore_test_ecore_con_remote_tcp_ssl3);
+   tcase_add_test(tc, ecore_test_ecore_con_remote_tcp_ssl3_load_cert);
+   tcase_add_test(tc, ecore_test_ecore_con_remote_tcp_tls);
+   tcase_add_test(tc, ecore_test_ecore_con_remote_tcp_tls_load_cert);
+   tcase_add_test(tc, ecore_test_ecore_con_remote_tcp_mixed);
+   tcase_add_test(tc, ecore_test_ecore_con_remote_tcp_mixed_load_cert);
+   tcase_add_test(tc, ecore_test_ecore_con_remote_nodelay);
+   tcase_add_test(tc, ecore_test_ecore_con_remote_nodelay_ssl3);
+   tcase_add_test(tc, ecore_test_ecore_con_remote_nodelay_ssl3_load_cert);
+   tcase_add_test(tc, ecore_test_ecore_con_remote_nodelay_tls);
+   tcase_add_test(tc, ecore_test_ecore_con_remote_nodelay_tls_load_cert);
+   tcase_add_test(tc, ecore_test_ecore_con_remote_nodelay_mixed);
+   tcase_add_test(tc, ecore_test_ecore_con_remote_nodelay_mixed_load_cert);
    tcase_add_test(tc, ecore_test_ecore_con_dns);
    tcase_add_test(tc, ecore_test_ecore_con_shutdown_bef_init);
 }
diff --git a/src/tests/ecore/server.key b/src/tests/ecore/server.key
new file mode 100644 (file)
index 0000000..922b0f7
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDPM7htA+kHL37qJQOLK3CYP4x9mqCcYy4m4GvT+yn5b4IRqi1x
+iH0F+/A+hvG4EE/iamNsnM7uJ1bixw/BCya+m9EfE5qzQvZuU+6AN73D+nMXcgBd
+4TTjfF8MD340a1Tn3RRVOx1hdSuuN61wpIFT/sn/dfTaVzD/UnMWj+AdBQIDAQAB
+AoGAYc6wSAWIgnPRHQXL3m3rAHM/BitvlWLb7k4RmEb/UVdptpz2Rpl/Ksv6ZAmf
+IJvSmbZOqH58z76SLQp6TU3OQ2IBikHo8+C+RgPWptBDlgYO57zGz4ee28tImqV/
+quxNE+TM9EBJDAhGA0ySaiQcdfOOErzRQvcFSTE2ie9LjAECQQDvUmMzsYhEEb8B
+RS7ASYNUFihBPprZh+/qhJeF37kK7t1g2zk5gwfEo2W9926DiKicpvX1/hxgKOwb
+ZpZuhRAhAkEA3aRNBnrDPo+gaP+wV4Z410+laW/myqbEN9l6tcGQqRZmOXw6jEAm
+Cq5zngIVibaVZ4g052c4PHl51txYoEjAZQJBAM4He2exWsJfFLSfPpRDtU/ak2U3
+5E+Je73F0DxsUf1bjjIoCKe+ah2bHafhL78FE0NpaS4RSZRvJnSgaLlUzIECQB5H
+SMJ+2NdeFaLiczuxwiZf2hAKWnQKzjl2+12DIPkId1SZFQJ97PR+morWbAzRJZ3s
+LJYEMtmIGs3wcicLaUUCQFBmyP238jX58ixYd7crJdnxPnTvOtasQqb8cPJ9XSyT
+ara6m96iiQSvqXObtmRl6oGCWGw8q821iJYHKFD0ls4=
+-----END RSA PRIVATE KEY-----
diff --git a/src/tests/ecore/server.pem b/src/tests/ecore/server.pem
new file mode 100644 (file)
index 0000000..84e8de3
--- /dev/null
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICOTCCAaICCQDQ5umIhrgBUDANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJJ
+TjEMMAoGA1UECAwDS2FyMRIwEAYDVQQHDAlCZW5nYWx1cnUxDDAKBgNVBAoMA0VG
+TDEOMAwGA1UECwwFRWNvcmUxEjAQBgNVBAMMCTEyNy4wLjAuMTAeFw0xNTAyMTIw
+NDIxMDVaFw0xNjAyMTIwNDIxMDVaMGExCzAJBgNVBAYTAklOMQwwCgYDVQQIDANL
+YXIxEjAQBgNVBAcMCUJlbmdhbHVydTEMMAoGA1UECgwDRUZMMQ4wDAYDVQQLDAVF
+Y29yZTESMBAGA1UEAwwJMTI3LjAuMC4xMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
+iQKBgQDPM7htA+kHL37qJQOLK3CYP4x9mqCcYy4m4GvT+yn5b4IRqi1xiH0F+/A+
+hvG4EE/iamNsnM7uJ1bixw/BCya+m9EfE5qzQvZuU+6AN73D+nMXcgBd4TTjfF8M
+D340a1Tn3RRVOx1hdSuuN61wpIFT/sn/dfTaVzD/UnMWj+AdBQIDAQABMA0GCSqG
+SIb3DQEBCwUAA4GBALgUu21Ihj6W2/tagmV7Iwt4LJndnIJP1IINUrLptkH1vE4B
+4p7uHxtRp7fQpOOl2ns1JhJabgHUjXLCPfjsZ1YS5YgTqs9IaiyqjYZDgCusSvrJ
+eJXeNVLWMb6iHgW0zsEDv9Vl1/XyBk9koyP0/stWw+JFxKqMJGCen5dRPQLZ
+-----END CERTIFICATE-----