xref: /openbmc/obmc-console/test/test-ringbuffer-read-commit.c (revision b70f8713e37719b6dad0cf8e1bf7f6edae5911d6)
1c9775ce7SJeremy Kerr 
2c9775ce7SJeremy Kerr #include <stdlib.h>
3c9775ce7SJeremy Kerr #include <stdint.h>
4c9775ce7SJeremy Kerr #include <stdio.h>
5c9775ce7SJeremy Kerr 
6c9775ce7SJeremy Kerr #include "ringbuffer.c"
7c9775ce7SJeremy Kerr #include "ringbuffer-test-utils.c"
8c9775ce7SJeremy Kerr 
test_read_commit(void)9c9775ce7SJeremy Kerr void test_read_commit(void)
10c9775ce7SJeremy Kerr {
11*b70f8713SAndrew Jeffery 	uint8_t *out_buf;
12*b70f8713SAndrew Jeffery 	uint8_t in_buf[] = {
13a72711afSAndrew Jeffery 		'a',
14a72711afSAndrew Jeffery 		'b',
15a72711afSAndrew Jeffery 		'c',
16a72711afSAndrew Jeffery 	};
17c9775ce7SJeremy Kerr 	struct ringbuffer_consumer *rbc;
18c9775ce7SJeremy Kerr 	struct ringbuffer *rb;
19c9775ce7SJeremy Kerr 	size_t len;
20c9775ce7SJeremy Kerr 
21c9775ce7SJeremy Kerr 	rb = ringbuffer_init(10);
22c9775ce7SJeremy Kerr 	rbc = ringbuffer_consumer_register(rb, ringbuffer_poll_nop, NULL);
23c9775ce7SJeremy Kerr 
24c9775ce7SJeremy Kerr 	ringbuffer_queue(rb, in_buf, sizeof(in_buf));
25c9775ce7SJeremy Kerr 	len = ringbuffer_dequeue_peek(rbc, 0, &out_buf);
26c9775ce7SJeremy Kerr 
27c9775ce7SJeremy Kerr 	ringbuffer_dequeue_commit(rbc, len);
28c9775ce7SJeremy Kerr 	len = ringbuffer_dequeue_peek(rbc, 0, &out_buf);
29c9775ce7SJeremy Kerr 	assert(len == 0);
30c9775ce7SJeremy Kerr 
31c9775ce7SJeremy Kerr 	ringbuffer_fini(rb);
32c9775ce7SJeremy Kerr }
33c9775ce7SJeremy Kerr 
main(void)34c9775ce7SJeremy Kerr int main(void)
35c9775ce7SJeremy Kerr {
36c9775ce7SJeremy Kerr 	test_read_commit();
37c9775ce7SJeremy Kerr 	return EXIT_SUCCESS;
38c9775ce7SJeremy Kerr }
39