Compile backends as static libraries.
[libvscmgmt.git] / tests / ipv4.c
1 /*
2  * ipv4.c: Tests for Virtualized Super Computer Management
3  *
4  * Copyright (C) 2009 Matthias Bolte <matthias.bolte@googlemail.com>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
19  */
20
21 #include <check.h>
22
23 #include "../utils/utils.h"
24
25 struct ParseInput {
26         const char *string;
27         int valid;
28 };
29
30 static struct ParseInput _parse_input[] = {
31         { "131.234.92.31", TRUE },
32         { "1.1.1.1", TRUE },
33         { "131.234.92.31.42", FALSE },
34         { "131.999.92.31", FALSE },
35         { "", FALSE },
36         { "this is no valid IPv4", FALSE },
37         { "a.b.c.d", FALSE },
38         { " 131.234.92.31", FALSE },
39         { "131.234 .92.31", FALSE },
40         { "131.234.92.31 ", FALSE },
41         { "+131.234.92.31", FALSE },
42         { "131.23a4 .92.31", FALSE },
43         { "131.234 .92.31a", FALSE },
44         { NULL, FALSE },
45 };
46
47 START_TEST (test_parse)
48 {
49         struct VscMgmtError error;
50         struct VscMgmtIpv4 ipv4;
51         int i = 0;
52
53         while (_parse_input[i].string != NULL) {
54                 vsc_mgmt_error_init (&error);
55
56                 vsc_mgmt_ipv4_parse (&error, _parse_input[i].string, &ipv4);
57
58                 if (_parse_input[i].valid) {
59                         fail_if (error.occured);
60                 } else {
61                         fail_unless (error.occured);
62                 }
63
64                 vsc_mgmt_error_cleanup (&error);
65
66                 ++i;
67         }
68 }
69 END_TEST
70
71 static Suite *
72 ipv4_suite (void)
73 {
74         Suite *suite = suite_create ("IPv4");
75         TCase *tcase = tcase_create ("general");
76
77         tcase_add_test (tcase, test_parse);
78
79         suite_add_tcase (suite, tcase);
80
81         return suite;
82 }
83
84 int
85 main (void)
86 {
87         int failed;
88         SRunner *srunner = srunner_create (ipv4_suite());
89
90         srunner_run_all (srunner, CK_NORMAL);
91         failed = srunner_ntests_failed (srunner);
92         srunner_free (srunner);
93
94         return failed;
95 }