Annotation of embedaddon/strongswan/src/charon-tkm/tests/kernel_sad_tests.c, revision 1.1

1.1     ! misho       1: /*
        !             2:  * Copyright (C) 2012-2014 Reto Buerki
        !             3:  * Copyright (C) 2012 Adrian-Ken Rueegsegger
        !             4:  * HSR Hochschule fuer Technik Rapperswil
        !             5:  *
        !             6:  * This program is free software; you can redistribute it and/or modify it
        !             7:  * under the terms of the GNU General Public License as published by the
        !             8:  * Free Software Foundation; either version 2 of the License, or (at your
        !             9:  * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
        !            10:  *
        !            11:  * This program is distributed in the hope that it will be useful, but
        !            12:  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
        !            13:  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
        !            14:  * for more details.
        !            15:  */
        !            16: 
        !            17: #include <tests/test_suite.h>
        !            18: 
        !            19: #include "tkm_kernel_sad.h"
        !            20: 
        !            21: START_TEST(test_sad_creation)
        !            22: {
        !            23:        tkm_kernel_sad_t *sad = NULL;
        !            24: 
        !            25:        sad = tkm_kernel_sad_create();
        !            26:        fail_if(!sad, "Error creating tkm kernel SAD");
        !            27: 
        !            28:        sad->destroy(sad);
        !            29: }
        !            30: END_TEST
        !            31: 
        !            32: START_TEST(test_insert)
        !            33: {
        !            34:        host_t *addr = host_create_from_string("127.0.0.1", 1024);
        !            35:        tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
        !            36: 
        !            37:        fail_unless(sad->insert(sad, 1, 2, addr, addr, 27, 42, 50),
        !            38:                                "Error inserting SAD entry");
        !            39: 
        !            40:        sad->destroy(sad);
        !            41:        addr->destroy(addr);
        !            42: }
        !            43: END_TEST
        !            44: 
        !            45: START_TEST(test_insert_duplicate)
        !            46: {
        !            47:        host_t *addr = host_create_from_string("127.0.0.1", 1024);
        !            48:        tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
        !            49: 
        !            50:        fail_unless(sad->insert(sad, 1, 2, addr, addr, 27, 42, 50),
        !            51:                                "Error inserting SAD entry");
        !            52:        fail_if(sad->insert(sad, 1, 2, addr, addr, 27, 42, 50),
        !            53:                        "Expected error inserting duplicate entry");
        !            54: 
        !            55:        sad->destroy(sad);
        !            56:        addr->destroy(addr);
        !            57: }
        !            58: END_TEST
        !            59: 
        !            60: START_TEST(test_get_esa_id)
        !            61: {
        !            62:        host_t *addr = host_create_from_string("127.0.0.1", 1024);
        !            63:        tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
        !            64:        fail_unless(sad->insert(sad, 23, 54, addr, addr, 27, 42, 50),
        !            65:                                "Error inserting SAD entry");
        !            66:        fail_unless(sad->get_esa_id(sad, addr, addr, 42, 50, FALSE) == 23,
        !            67:                                "Error getting esa id");
        !            68:        sad->destroy(sad);
        !            69:        addr->destroy(addr);
        !            70: }
        !            71: END_TEST
        !            72: 
        !            73: START_TEST(test_get_esa_id_local)
        !            74: {
        !            75:        host_t *addr = host_create_from_string("127.0.0.1", 1024);
        !            76:        tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
        !            77:        fail_unless(sad->insert(sad, 23, 54, addr, addr, 27, 42, 50),
        !            78:                                "Error inserting SAD entry");
        !            79:        fail_unless(sad->get_esa_id(sad, addr, addr, 27, 50, TRUE) == 23,
        !            80:                                "Error getting esa id");
        !            81:        sad->destroy(sad);
        !            82:        addr->destroy(addr);
        !            83: }
        !            84: END_TEST
        !            85: 
        !            86: START_TEST(test_get_esa_id_nonexistent)
        !            87: {
        !            88:        host_t *addr = host_create_from_string("127.0.0.1", 1024);
        !            89:        tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
        !            90:        fail_unless(sad->get_esa_id(sad, addr, addr, 42, 50, FALSE) == 0,
        !            91:                                "Got esa id for nonexistent SAD entry");
        !            92:        sad->destroy(sad);
        !            93:        addr->destroy(addr);
        !            94: }
        !            95: END_TEST
        !            96: 
        !            97: START_TEST(test_get_dst_host)
        !            98: {
        !            99:        host_t *addr = host_create_from_string("127.0.0.1", 1024);
        !           100:        tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
        !           101:        fail_unless(sad->insert(sad, 23, 54, addr, addr, 27, 42, 50),
        !           102:                                "Error inserting SAD entry");
        !           103: 
        !           104:        host_t *dst = sad->get_dst_host(sad, 54, 42, 50);
        !           105:        fail_unless(addr->equals(addr, dst), "Error getting dst host");
        !           106:        sad->destroy(sad);
        !           107:        addr->destroy(addr);
        !           108: }
        !           109: END_TEST
        !           110: 
        !           111: START_TEST(test_get_dst_host_nonexistent)
        !           112: {
        !           113:        tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
        !           114:        fail_unless(sad->get_dst_host(sad, 1, 12, 50) == NULL,
        !           115:                                "Got dst for nonexistent SAD entry");
        !           116:        sad->destroy(sad);
        !           117: }
        !           118: END_TEST
        !           119: 
        !           120: START_TEST(test_remove)
        !           121: {
        !           122:        host_t *addr = host_create_from_string("127.0.0.1", 1024);
        !           123:        tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
        !           124:        fail_unless(sad->insert(sad, 23, 54, addr, addr, 27, 42, 50),
        !           125:                                "Error inserting SAD entry");
        !           126:        fail_unless(sad->get_esa_id(sad, addr, addr, 42, 50, FALSE) == 23,
        !           127:                                "Error getting esa id");
        !           128:        fail_unless(sad->remove(sad, 23),
        !           129:                                "Error removing SAD entry");
        !           130:        fail_unless(sad->get_esa_id(sad, addr, addr, 42, 50, FALSE) == 0,
        !           131:                                "Got esa id for removed SAD entry");
        !           132:        sad->destroy(sad);
        !           133:        addr->destroy(addr);
        !           134: }
        !           135: END_TEST
        !           136: 
        !           137: START_TEST(test_remove_nonexistent)
        !           138: {
        !           139:        tkm_kernel_sad_t *sad = tkm_kernel_sad_create();
        !           140:        fail_if(sad->remove(sad, 1),
        !           141:                        "Expected error removing nonexistent SAD entry");
        !           142:        sad->destroy(sad);
        !           143: }
        !           144: END_TEST
        !           145: 
        !           146: Suite *make_kernel_sad_tests()
        !           147: {
        !           148:        Suite *s;
        !           149:        TCase *tc;
        !           150: 
        !           151:        s = suite_create("kernel SAD tests");
        !           152: 
        !           153:        tc = tcase_create("creation");
        !           154:        tcase_add_test(tc, test_sad_creation);
        !           155:        suite_add_tcase(s, tc);
        !           156: 
        !           157:        tc = tcase_create("insert");
        !           158:        tcase_add_test(tc, test_insert);
        !           159:        tcase_add_test(tc, test_insert_duplicate);
        !           160:        suite_add_tcase(s, tc);
        !           161: 
        !           162:        tc = tcase_create("get_esa_id");
        !           163:        tcase_add_test(tc, test_get_esa_id);
        !           164:        tcase_add_test(tc, test_get_esa_id_local);
        !           165:        tcase_add_test(tc, test_get_esa_id_nonexistent);
        !           166:        suite_add_tcase(s, tc);
        !           167: 
        !           168:        tc = tcase_create("get_dst_host");
        !           169:        tcase_add_test(tc, test_get_dst_host);
        !           170:        tcase_add_test(tc, test_get_dst_host_nonexistent);
        !           171:        suite_add_tcase(s, tc);
        !           172: 
        !           173:        tc = tcase_create("remove");
        !           174:        tcase_add_test(tc, test_remove);
        !           175:        tcase_add_test(tc, test_remove_nonexistent);
        !           176:        suite_add_tcase(s, tc);
        !           177: 
        !           178:        return s;
        !           179: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>