1 /*
2 * DO NOT EDIT THIS FILE. Generated by checkmk.
3 * Edit the original source file "src/test-ringbuf.cm" instead.
4 */
5
6 #include <check.h>
7
8 #line 1 "src/test-ringbuf.cm"
9 /* -*- c -*- */
10 /* test-ringbuf.cm: tests for ringbuf.c. */
11
12 /*
13 Copyright (C) 2008 Micah Cowan
14
15 This file is part of GNU teseq.
16
17 GNU teseq is free software: you can redistribute it and/or modify
18 it under the terms of the GNU General Public License as published by
19 the Free Software Foundation, either version 3 of the License, or
20 (at your option) any later version.
21
22 GNU teseq is distributed in the hope that it will be useful,
23 but WITHOUT ANY WARRANTY; without even the implied warranty of
24 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 GNU General Public License for more details.
26
27 You should have received a copy of the GNU General Public License
28 along with this program. If not, see <http://www.gnu.org/licenses/>.
29 */
30
31 #include "teseq.h"
32
33 #include <stdio.h>
34
35 #include "ringbuf.h"
36
37 struct ringbuf *the_buffer;
38
START_TEST(empty)39 START_TEST(empty)
40 {
41 #line 32
42 fail_unless (ringbuf_get (the_buffer) == EOF);
43
44 }
45 END_TEST
46
START_TEST(read_test)47 START_TEST(read_test)
48 {
49 #line 35
50 fail_unless (ringbuf_put (the_buffer, 'a') == 0);
51 fail_unless (ringbuf_put (the_buffer, 'b') == 0);
52 fail_unless (ringbuf_put (the_buffer, 'c') == 0);
53 fail_unless (ringbuf_get (the_buffer) == 'a');
54 fail_unless (ringbuf_get (the_buffer) == 'b');
55 fail_unless (ringbuf_get (the_buffer) == 'c');
56 fail_unless (ringbuf_get (the_buffer) == EOF);
57 fail_unless (ringbuf_get (the_buffer) == EOF);
58
59 }
60 END_TEST
61
START_TEST(wraparound)62 START_TEST(wraparound)
63 {
64 #line 45
65 fail_unless (ringbuf_putmem (the_buffer, "abc", 3) == 0);
66 fail_unless (ringbuf_get (the_buffer) == 'a');
67 fail_unless (ringbuf_putmem (the_buffer, "defg", 4) == 1);
68 fail_unless (ringbuf_putmem (the_buffer, "def", 3) == 0);
69 fail_unless (ringbuf_put (the_buffer, 'g') == 1);
70 fail_unless (ringbuf_get (the_buffer) == 'b');
71 fail_unless (ringbuf_get (the_buffer) == 'c');
72 fail_unless (ringbuf_get (the_buffer) == 'd');
73 fail_unless (ringbuf_get (the_buffer) == 'e');
74 fail_unless (ringbuf_get (the_buffer) == 'f');
75 fail_unless (ringbuf_get (the_buffer) == EOF);
76
77 }
78 END_TEST
79
START_TEST(reader)80 START_TEST(reader)
81 {
82 #line 58
83 struct ringbuf_reader *reader1;
84 struct ringbuf_reader *reader2;
85 ringbuf_put (the_buffer, 'x');
86 ringbuf_put (the_buffer, 'x');
87 ringbuf_get (the_buffer);
88 ringbuf_get (the_buffer);
89 ringbuf_putmem (the_buffer, "abcde", 5);
90 reader1 = ringbuf_reader_new (the_buffer);
91 fail_unless (ringbuf_reader_get (reader1) == 'a');
92 fail_unless (ringbuf_reader_get (reader1) == 'b');
93 fail_unless (ringbuf_reader_get (reader1) == 'c');
94 fail_unless (ringbuf_reader_get (reader1) == 'd');
95 reader2 = ringbuf_reader_new (the_buffer);
96 fail_unless (ringbuf_reader_get (reader2) == 'a');
97 ringbuf_reader_consume (reader1);
98 fail_unless (ringbuf_get (the_buffer) == 'e');
99
100 }
101 END_TEST
102
START_TEST(clear)103 START_TEST(clear)
104 {
105 #line 76
106 ringbuf_put (the_buffer, 'a');
107 ringbuf_put (the_buffer, 'b');
108 ringbuf_put (the_buffer, 'c');
109 fail_unless (ringbuf_get (the_buffer) == 'a');
110 ringbuf_clear (the_buffer);
111 fail_unless (ringbuf_get (the_buffer) == EOF);
112
113 }
114 END_TEST
115
START_TEST(putback)116 START_TEST(putback)
117 {
118 #line 84
119 ringbuf_put (the_buffer, 'a');
120 ringbuf_put (the_buffer, 'b');
121 fail_unless (ringbuf_putback (the_buffer, 'c') == 0);
122 fail_unless (ringbuf_get (the_buffer) == 'c');
123 fail_unless (ringbuf_get (the_buffer) == 'a');
124 fail_unless (ringbuf_putback (the_buffer, 'd') == 0);
125 fail_unless (ringbuf_get (the_buffer) == 'd');
126 fail_unless (ringbuf_get (the_buffer) == 'b');
127 fail_unless (ringbuf_get (the_buffer) == EOF);
128
129 }
130 END_TEST
131
START_TEST(reader_reset)132 START_TEST(reader_reset)
133 {
134 #line 95
135 struct ringbuf_reader *reader;
136 ringbuf_putmem (the_buffer, "abcd", 4);
137 reader = ringbuf_reader_new (the_buffer);
138 fail_unless (ringbuf_reader_get (reader) == 'a');
139 fail_unless (ringbuf_reader_get (reader) == 'b');
140 ringbuf_reader_reset (reader);
141 fail_unless (ringbuf_reader_get (reader) == 'a');
142 fail_unless (ringbuf_reader_get (reader) == 'b');
143 fail_unless (ringbuf_reader_get (reader) == 'c');
144 fail_unless (ringbuf_reader_get (reader) == 'd');
145 fail_unless (ringbuf_reader_get (reader) == EOF);
146
147 }
148 END_TEST
149
main(void)150 int main(void)
151 {
152 Suite *s1 = suite_create("Core");
153 TCase *tc1_1 = tcase_create("Core");
154 SRunner *sr = srunner_create(s1);
155 int nf;
156
157 /* User-specified pre-run code */
158 #line 108
159 the_buffer = ringbuf_new (5);
160
161 suite_add_tcase(s1, tc1_1);
162 tcase_add_test(tc1_1, empty);
163 tcase_add_test(tc1_1, read_test);
164 tcase_add_test(tc1_1, wraparound);
165 tcase_add_test(tc1_1, reader);
166 tcase_add_test(tc1_1, clear);
167 tcase_add_test(tc1_1, putback);
168 tcase_add_test(tc1_1, reader_reset);
169
170 srunner_run_all(sr, CK_ENV);
171 nf = srunner_ntests_failed(sr);
172 srunner_free(sr);
173
174 return nf == 0 ? 0 : 1;
175 }
176