From 360fd8567545253f680ea544ce7313ab1ef43d14 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Tue, 17 Feb 2015 07:58:36 +0100 Subject: o Passing tests. --- CMakeLists.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 1220f20..0f2cbf2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ target_link_libraries(ble_toys ${Boost_LIBRARIES}) target_link_libraries(ble_toys ble) enable_testing() -find_package(Boost COMPONENTS unit_test_framework REQUIRED) +find_package(Boost COMPONENTS log unit_test_framework REQUIRED) file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} test/*.cpp) foreach(testSrc ${TEST_SRCS}) @@ -39,8 +39,9 @@ foreach(testSrc ${TEST_SRCS}) include_directories(${PROJECT_SOURCE_DIR}) #link to Boost libraries AND your targets and dependencies - target_link_libraries(${testName} ${Boost_LIBRARIES}) target_link_libraries(${testName} ble) + target_link_libraries(${testName} pthread) + target_link_libraries(${testName} ${Boost_LIBRARIES}) #I like to move testing binaries into a testBin directory set_target_properties(${testName} PROPERTIES -- cgit v1.2.3 From 0d0749ff0f842f10fea6929dc466e4e1be458234 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Tue, 17 Feb 2015 16:20:30 +0100 Subject: o More tests, more passing tests. --- ByteBuffer.cpp | 25 +++++++++++++++---------- ByteBuffer.h | 14 ++++++++------ CMakeLists.txt | 2 +- test/ByteBufferTest.cpp | 30 ++++++++++++------------------ 4 files changed, 36 insertions(+), 35 deletions(-) (limited to 'CMakeLists.txt') diff --git a/ByteBuffer.cpp b/ByteBuffer.cpp index 07672ec..2b2f33b 100644 --- a/ByteBuffer.cpp +++ b/ByteBuffer.cpp @@ -3,23 +3,25 @@ #include #include #include +#include +#include using namespace std; -ByteBuffer::ByteBuffer(uint8_t *bytes, size_t capacity) : - bytes(bytes), capacity(capacity), zero(&bytes[0]), end(&bytes[capacity]) { - ptr = &bytes[0]; +ByteBuffer::ByteBuffer(const uint8_t *bytes, size_t capacity) : + bytes(bytes), capacity(capacity), zero(&bytes[0]), end(&bytes[0]) { + ptr = (uint8_t *) &bytes[0]; } -ByteBuffer::ByteBuffer(uint8_t *bytes, size_t capacity, size_t zero, size_t size) : +ByteBuffer::ByteBuffer(const uint8_t *bytes, size_t capacity, size_t zero, size_t size) : bytes(bytes), capacity(capacity), zero(&bytes[0]), end(&bytes[size]) { assert(zero <= size); assert(size <= capacity); - ptr = &bytes[0]; + ptr = (uint8_t *) &bytes[0]; } -ByteBuffer::ByteBuffer(const uint8_t *bytes, size_t capacity, uint8_t *zero, uint8_t *end) : - bytes(bytes), capacity(capacity), zero(zero), end(end), ptr(zero) { +ByteBuffer::ByteBuffer(const uint8_t *bytes, size_t capacity, const uint8_t *zero, const uint8_t *end) : + bytes(bytes), capacity(capacity), zero(zero), end(end), ptr((uint8_t *) zero) { } ByteBuffer &ByteBuffer::add8(uint8_t value) { @@ -61,15 +63,18 @@ void ByteBuffer::copy(uint8_t *bytes, size_t length) { } ByteBuffer ByteBuffer::view() const { - DF << "cursor=" << getCursor() << ", size=" << getSize(); - return view(end - ptr); +// DF << "cursor=" << getCursor() << ", size=" << getSize() << ", new size=" << end - ptr << ", ptr=" << (uint64_t) ptr << ", zero=" << (uint64_t) zero; + return view(ptr, end); } ByteBuffer ByteBuffer::view(size_t length) const { - assertCanAccessRelative(length); return ByteBuffer(bytes, length, ptr, ptr + length); } +ByteBuffer ByteBuffer::view(uint8_t *ptr, const uint8_t *end) const { + return ByteBuffer(bytes, end - ptr, ptr, end); +} + void ByteBuffer::checkAndUpdateEnd(size_t newBytes) { uint8_t *newPtr = ptr + newBytes; if (newPtr >= end) { diff --git a/ByteBuffer.h b/ByteBuffer.h index ee54a0a..479a227 100644 --- a/ByteBuffer.h +++ b/ByteBuffer.h @@ -17,12 +17,12 @@ public: class ByteBuffer { public: - ByteBuffer(uint8_t *bytes, size_t capacity); + ByteBuffer(const uint8_t *bytes, size_t capacity); - ByteBuffer(uint8_t *bytes, size_t capacity, size_t zero, size_t size); + ByteBuffer(const uint8_t *bytes, size_t capacity, size_t zero, size_t size); inline size_t getSize() const { - DF << "end=" << (uint64_t)end << ", zero=" << (uint64_t)zero; + DF << "end=" << (uint64_t)end << ", zero=" << (uint64_t)zero << ", size=" << (end - zero); return end - zero; } @@ -35,8 +35,8 @@ public: } inline void setCursor(size_t newCursor) { - assertCanAccessRelative(newCursor); - ptr = ptr + newCursor; +// assertCanAccessRelative(newCursor); + ptr = (uint8_t *) &zero[newCursor]; } inline void skip(size_t length) { @@ -67,7 +67,9 @@ public: std::string toString() const; private: - ByteBuffer(const uint8_t *bytes, size_t capacity, uint8_t *zero, uint8_t *end); + ByteBuffer(const uint8_t *bytes, size_t capacity, const uint8_t *zero, const uint8_t *end); + + ByteBuffer view(uint8_t *ptr, const uint8_t *end) const; void checkAndUpdateEnd(size_t count); diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f2cbf2..82dcfc8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8.4) project(ble_toys) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") set(Boost_USE_STATIC_LIBS OFF) set(Boost_USE_MULTITHREADED OFF) diff --git a/test/ByteBufferTest.cpp b/test/ByteBufferTest.cpp index 4c51bcc..ed842f2 100644 --- a/test/ByteBufferTest.cpp +++ b/test/ByteBufferTest.cpp @@ -10,9 +10,9 @@ #define checkBuffer(buffer, size, capacity, cursor) \ D << "size=" << buffer.getSize() << ", capacity=" << buffer.getCapacity() << ", cursor=" << buffer.getCursor(); \ - BOOST_REQUIRE_EQUAL(buffer.getSize(), size); \ - BOOST_REQUIRE_EQUAL(buffer.getCapacity(), capacity); \ - BOOST_REQUIRE_EQUAL(buffer.getCursor(), cursor) + BOOST_CHECK_EQUAL(buffer.getSize(), size); \ + BOOST_CHECK_EQUAL(buffer.getCapacity(), capacity); \ + BOOST_CHECK_EQUAL(buffer.getCursor(), cursor) using namespace std; @@ -50,34 +50,31 @@ BOOST_AUTO_TEST_CASE(empty_buffer) { } */ -#include BOOST_AUTO_TEST_CASE(basic) { Bytes b(1000); - ByteBuffer buffer(b.bytes, 1000); + ByteBuffer buffer(b.bytes, 1000, 0, 1000); checkBuffer(buffer, 1000, 1000, 0); - BOOST_REQUIRE_EQUAL(buffer.get8(), 0); + BOOST_CHECK_EQUAL(buffer.get8(), 0); checkBuffer(buffer, 1000, 1000, 1); for (int i = 1; i < b.capacity; i++) { - cout << "i=" << i << endl; - BOOST_REQUIRE_EQUAL(buffer.get8(), b.bytes[i]); + BOOST_CHECK_EQUAL(buffer.get8(), b.bytes[i]); } } -/* BOOST_AUTO_TEST_CASE(setCursor) { Bytes b(1000); ByteBuffer buffer(b.bytes, 1000, 0, 10); checkBuffer(buffer, 10, 1000, 0); - BOOST_REQUIRE_EQUAL(buffer.get8(), 0); + BOOST_CHECK_EQUAL(buffer.get8(), 0); checkBuffer(buffer, 10, 1000, 1); buffer.setCursor(0); checkBuffer(buffer, 10, 1000, 0); - BOOST_REQUIRE_EQUAL(buffer.get8(), 0); + BOOST_CHECK_EQUAL(buffer.get8(), 0); checkBuffer(buffer, 10, 1000, 1); buffer.setCursor(9); @@ -88,18 +85,15 @@ BOOST_AUTO_TEST_CASE(view) { Bytes b(1000); ByteBuffer buffer(b.bytes, b.capacity, 0, 10); - BOOST_REQUIRE_EQUAL(buffer.get8(), 0); - checkBuffer(buffer, 10, 1000, 1); - + BOOST_CHECK_EQUAL(buffer.get8(), 0); ByteBuffer view1 = buffer.view(); checkBuffer(view1, 9, 9, 0); - BOOST_REQUIRE_EQUAL(view1.get8(), 1); - BOOST_REQUIRE_EQUAL(view1.get8(), 2); + BOOST_CHECK_EQUAL(view1.get8(), 1); + BOOST_CHECK_EQUAL(view1.get8(), 2); ByteBuffer view2 = view1.view(); checkBuffer(view2, 7, 7, 0); - BOOST_REQUIRE_EQUAL(view1.get8(), 3); + BOOST_CHECK_EQUAL(view1.get8(), 3); } -*/ -- cgit v1.2.3