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