summaryrefslogtreecommitdiff
path: root/serial_link/tests/triple_buffered_object_tests.c
diff options
context:
space:
mode:
authorFred Sundvik <fsundvik@gmail.com>2016-02-21 00:44:25 +0200
committerFred Sundvik <fsundvik@gmail.com>2016-02-21 00:44:25 +0200
commit8e2d70d11fd852cf6e33b48a027a5fba61c08779 (patch)
tree15c182ab1ac35df110381557f001ee8c1c1c6728 /serial_link/tests/triple_buffered_object_tests.c
parent4bb5733cdca62350c900ce094e1cbbaae59f2246 (diff)
Simplify the triple buffer implementation
Diffstat (limited to 'serial_link/tests/triple_buffered_object_tests.c')
-rw-r--r--serial_link/tests/triple_buffered_object_tests.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/serial_link/tests/triple_buffered_object_tests.c b/serial_link/tests/triple_buffered_object_tests.c
index bf0e3ca67a..5fa1b8b62f 100644
--- a/serial_link/tests/triple_buffered_object_tests.c
+++ b/serial_link/tests/triple_buffered_object_tests.c
@@ -77,4 +77,22 @@ Ensure(TripleBufferedObject, performs_another_write_in_the_middle_of_read) {
triple_buffer_actual_read(4, (triple_buffer_object_t*)&test_object, &dst);
triple_buffer_end_read(4, (triple_buffer_object_t*)&test_object);
assert_that(dst, is_equal_to(1));
+ triple_buffer_read(4, (triple_buffer_object_t*)&test_object, &dst);
+ assert_that(dst, is_equal_to(2));
+}
+
+Ensure(TripleBufferedObject, performs_two_writes_in_the_middle_of_read) {
+ uint32_t src = 1;
+ uint32_t dst;
+ triple_buffer_write(4, (triple_buffer_object_t*)&test_object, &src);
+ triple_buffer_begin_read(4, (triple_buffer_object_t*)&test_object);
+ src = 2;
+ triple_buffer_write(4, (triple_buffer_object_t*)&test_object, &src);
+ src = 3;
+ triple_buffer_write(4, (triple_buffer_object_t*)&test_object, &src);
+ triple_buffer_actual_read(4, (triple_buffer_object_t*)&test_object, &dst);
+ triple_buffer_end_read(4, (triple_buffer_object_t*)&test_object);
+ assert_that(dst, is_equal_to(1));
+ triple_buffer_read(4, (triple_buffer_object_t*)&test_object, &dst);
+ assert_that(dst, is_equal_to(3));
}