1
0
Fork 0
mirror of https://github.com/iNavFlight/inav.git synced 2025-07-26 01:35:35 +03:00

Add some unit tests for bitarray

Just to make sure the upcoming changes don't break anything
This commit is contained in:
Alberto García Hierro 2017-09-14 20:59:44 +01:00
parent 3e823d9ab8
commit 1dbe90ba1e
2 changed files with 49 additions and 0 deletions

View file

@ -706,6 +706,20 @@ $(OBJECT_DIR)/time_unittest : \
$(CXX) $(CXX_FLAGS) $^ -o $(OBJECT_DIR)/$@
$(OBJECT_DIR)/bitarray_unittest.o : \
$(TEST_DIR)/bitarray_unittest.cc \
$(USER_DIR)/common/bitarray.h \
$(GTEST_HEADERS)
@mkdir -p $(dir $@)
$(CXX) $(CXX_FLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/bitarray_unittest.cc -o $@
$(OBJECT_DIR)/bitarray_unittest : \
$(OBJECT_DIR)/common/bitarray.o \
$(OBJECT_DIR)/bitarray_unittest.o \
$(OBJECT_DIR)/gtest_main.a
$(CXX) $(CXX_FLAGS) $^ -o $(OBJECT_DIR)/$@
test: $(TESTS:%=test-%)

View file

@ -0,0 +1,35 @@
#include <cstdint>
extern "C" {
#include "common/bitarray.h"
}
#include "gtest/gtest.h"
TEST(BitArrayTest, TestGetSet)
{
uint32_t array[1] = {0};
void *p = array;
bitArraySet(p, 14);
EXPECT_EQ(bitArrayGet(p, 14), true);
EXPECT_EQ(bitArrayGet(p, 13), false);
EXPECT_EQ(bitArrayGet(p, 15), false);
EXPECT_EQ(bitArrayGet(p, 0), false);
bitArraySet(p, 0);
EXPECT_EQ(bitArrayGet(p, 0), true);
}
TEST(BitArrayTest, TestClr)
{
uint32_t array[1] = {0};
void *p = array;
bitArraySet(p, 31);
EXPECT_EQ(bitArrayGet(p, 31), true);
EXPECT_EQ(bitArrayGet(p, 30), false);
EXPECT_EQ(bitArrayGet(p, 0), false);
bitArrayClr(p, 31);
EXPECT_EQ(bitArrayGet(p, 31), false);
}