Convert tirple_buffered_object_tests to GTest
This commit is contained in:
		
							parent
							
								
									bcdf9ab76b
								
							
						
					
					
						commit
						ffb0a126f5
					
				
					 3 changed files with 38 additions and 32 deletions
				
			
		|  | @ -2,17 +2,21 @@ serial_link_byte_stuffer_SRC :=\ | ||||||
| 	$(SERIAL_PATH)/tests/byte_stuffer_tests.cpp \
 | 	$(SERIAL_PATH)/tests/byte_stuffer_tests.cpp \
 | ||||||
| 	$(SERIAL_PATH)/protocol/byte_stuffer.c | 	$(SERIAL_PATH)/protocol/byte_stuffer.c | ||||||
| 
 | 
 | ||||||
|  | serial_link_frame_validator_SRC := \
 | ||||||
|  | 	$(SERIAL_PATH)/tests/frame_validator_tests.cpp \
 | ||||||
|  | 	$(SERIAL_PATH)/protocol/frame_validator.c  | ||||||
|  | 
 | ||||||
| serial_link_frame_router_SRC := \
 | serial_link_frame_router_SRC := \
 | ||||||
| 	$(SERIAL_PATH)/tests/frame_router_tests.cpp \
 | 	$(SERIAL_PATH)/tests/frame_router_tests.cpp \
 | ||||||
| 	$(SERIAL_PATH)/protocol/byte_stuffer.c \
 | 	$(SERIAL_PATH)/protocol/byte_stuffer.c \
 | ||||||
| 	$(SERIAL_PATH)/protocol/frame_validator.c \
 | 	$(SERIAL_PATH)/protocol/frame_validator.c \
 | ||||||
| 	$(SERIAL_PATH)/protocol/frame_router.c | 	$(SERIAL_PATH)/protocol/frame_router.c | ||||||
| 
 | 
 | ||||||
| serial_link_frame_validator_SRC := \
 | serial_link_triple_buffered_object_SRC := \
 | ||||||
| 	$(SERIAL_PATH)/tests/frame_validator_tests.cpp \
 | 	$(SERIAL_PATH)/tests/triple_buffered_object_tests.cpp \
 | ||||||
| 	$(SERIAL_PATH)/protocol/frame_validator.c  | 	$(SERIAL_PATH)/protocol/triple_buffered_object.c  | ||||||
| 
 | 
 | ||||||
| serial_link_transport_SRC := \
 | serial_link_transport_SRC := \
 | ||||||
| 	$(SERIAL_PATH)/tests/transport_tests.cpp \
 | 	$(SERIAL_PATH)/tests/transport_tests.cpp \
 | ||||||
| 	$(SERIAL_PATH)/protocol/transport.c \
 | 	$(SERIAL_PATH)/protocol/transport.c \
 | ||||||
| 	$(SERIAL_PATH)/protocol/triple_buffered_object.c  | 	$(SERIAL_PATH)/protocol/triple_buffered_object.c  | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| TEST_LIST +=\
 | TEST_LIST +=\
 | ||||||
| 	serial_link_byte_stuffer\
 | 	serial_link_byte_stuffer\
 | ||||||
| 	serial_link_frame_router\
 |  | ||||||
| 	serial_link_frame_validator\
 | 	serial_link_frame_validator\
 | ||||||
| 	serial_link_transport\
 | 	serial_link_frame_router\
 | ||||||
| 	serial_link_triple_buffered_object | 	serial_link_triple_buffered_object\
 | ||||||
|  | 	serial_link_transport | ||||||
|  | @ -22,53 +22,55 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||||
| SOFTWARE. | SOFTWARE. | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| #include <cgreen/cgreen.h> | #include "gtest/gtest.h" | ||||||
| #include "serial_link/protocol/triple_buffered_object.c" | extern "C" { | ||||||
|  | #include "serial_link/protocol/triple_buffered_object.h" | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| typedef struct { | struct test_object{ | ||||||
|     uint8_t state; |     uint8_t state; | ||||||
|     uint32_t buffer[3]; |     uint32_t buffer[3]; | ||||||
| }test_object_t; | }; | ||||||
| 
 | 
 | ||||||
| test_object_t test_object; | test_object test_object; | ||||||
| 
 | 
 | ||||||
| Describe(TripleBufferedObject); | class TripleBufferedObject : public testing::Test { | ||||||
| BeforeEach(TripleBufferedObject) { | public: | ||||||
|     triple_buffer_init((triple_buffer_object_t*)&test_object); |     TripleBufferedObject() { | ||||||
| } |         triple_buffer_init((triple_buffer_object_t*)&test_object); | ||||||
| AfterEach(TripleBufferedObject) {} |     } | ||||||
|  | }; | ||||||
| 
 | 
 | ||||||
| 
 | TEST_F(TripleBufferedObject, writes_and_reads_object) { | ||||||
| Ensure(TripleBufferedObject, writes_and_reads_object) { |  | ||||||
|     *triple_buffer_begin_write(&test_object) = 0x3456ABCC; |     *triple_buffer_begin_write(&test_object) = 0x3456ABCC; | ||||||
|     triple_buffer_end_write(&test_object); |     triple_buffer_end_write(&test_object); | ||||||
|     assert_that(*triple_buffer_read(&test_object), is_equal_to(0x3456ABCC)); |     EXPECT_EQ(*triple_buffer_read(&test_object), 0x3456ABCC); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Ensure(TripleBufferedObject, does_not_read_empty) { | TEST_F(TripleBufferedObject, does_not_read_empty) { | ||||||
|     assert_that(triple_buffer_read(&test_object), is_equal_to(NULL)); |     EXPECT_EQ(triple_buffer_read(&test_object), nullptr); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Ensure(TripleBufferedObject, writes_twice_and_reads_object) { | TEST_F(TripleBufferedObject, writes_twice_and_reads_object) { | ||||||
|     *triple_buffer_begin_write(&test_object) = 0x3456ABCC; |     *triple_buffer_begin_write(&test_object) = 0x3456ABCC; | ||||||
|     triple_buffer_end_write(&test_object); |     triple_buffer_end_write(&test_object); | ||||||
|     *triple_buffer_begin_write(&test_object) = 0x44778899; |     *triple_buffer_begin_write(&test_object) = 0x44778899; | ||||||
|     triple_buffer_end_write(&test_object); |     triple_buffer_end_write(&test_object); | ||||||
|     assert_that(*triple_buffer_read(&test_object), is_equal_to(0x44778899)); |     EXPECT_EQ(*triple_buffer_read(&test_object), 0x44778899); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Ensure(TripleBufferedObject, performs_another_write_in_the_middle_of_read) { | TEST_F(TripleBufferedObject, performs_another_write_in_the_middle_of_read) { | ||||||
|     *triple_buffer_begin_write(&test_object) = 1; |     *triple_buffer_begin_write(&test_object) = 1; | ||||||
|     triple_buffer_end_write(&test_object); |     triple_buffer_end_write(&test_object); | ||||||
|     uint32_t* read = triple_buffer_read(&test_object); |     uint32_t* read = triple_buffer_read(&test_object); | ||||||
|     *triple_buffer_begin_write(&test_object) = 2; |     *triple_buffer_begin_write(&test_object) = 2; | ||||||
|     triple_buffer_end_write(&test_object); |     triple_buffer_end_write(&test_object); | ||||||
|     assert_that(*read, is_equal_to(1)); |     EXPECT_EQ(*read, 1); | ||||||
|     assert_that(*triple_buffer_read(&test_object), is_equal_to(2)); |     EXPECT_EQ(*triple_buffer_read(&test_object), 2); | ||||||
|     assert_that(triple_buffer_read(&test_object), is_equal_to(NULL)); |     EXPECT_EQ(triple_buffer_read(&test_object), nullptr); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Ensure(TripleBufferedObject, performs_two_writes_in_the_middle_of_read) { | TEST_F(TripleBufferedObject, performs_two_writes_in_the_middle_of_read) { | ||||||
|     *triple_buffer_begin_write(&test_object) = 1; |     *triple_buffer_begin_write(&test_object) = 1; | ||||||
|     triple_buffer_end_write(&test_object); |     triple_buffer_end_write(&test_object); | ||||||
|     uint32_t* read = triple_buffer_read(&test_object); |     uint32_t* read = triple_buffer_read(&test_object); | ||||||
|  | @ -76,7 +78,7 @@ Ensure(TripleBufferedObject, performs_two_writes_in_the_middle_of_read) { | ||||||
|     triple_buffer_end_write(&test_object); |     triple_buffer_end_write(&test_object); | ||||||
|     *triple_buffer_begin_write(&test_object) = 3; |     *triple_buffer_begin_write(&test_object) = 3; | ||||||
|     triple_buffer_end_write(&test_object); |     triple_buffer_end_write(&test_object); | ||||||
|     assert_that(*read, is_equal_to(1)); |     EXPECT_EQ(*read, 1); | ||||||
|     assert_that(*triple_buffer_read(&test_object), is_equal_to(3)); |     EXPECT_EQ(*triple_buffer_read(&test_object), 3); | ||||||
|     assert_that(triple_buffer_read(&test_object), is_equal_to(NULL)); |     EXPECT_EQ(triple_buffer_read(&test_object), nullptr); | ||||||
| } | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Fred Sundvik
						Fred Sundvik