diff options
-rw-r--r-- | ByteBuffer.cpp | 8 | ||||
-rw-r--r-- | main.cpp | 16 | ||||
-rw-r--r-- | test/ByteBufferTest.cpp | 34 |
3 files changed, 44 insertions, 14 deletions
diff --git a/ByteBuffer.cpp b/ByteBuffer.cpp index c5f7905..07672ec 100644 --- a/ByteBuffer.cpp +++ b/ByteBuffer.cpp @@ -41,12 +41,12 @@ uint8_t ByteBuffer::get8(size_t index) { } uint8_t ByteBuffer::get8() { - assertCanAccessRelative(1); + assertCanAccessRelative(0); return *ptr++; } uint16_t ByteBuffer::get16le() { - assertCanAccessRelative(1); + assertCanAccessRelative(0); uint16_t value; value = *ptr++; value |= ((uint16_t) *ptr++) << 8; @@ -82,12 +82,12 @@ void ByteBuffer::checkAndUpdateEnd(size_t newBytes) { } void ByteBuffer::assertCanAccessRelative(size_t diff) const { - assertCanAccessIndex(ptr + diff - 1); + assertCanAccessIndex(ptr + diff); } void ByteBuffer::assertCanAccessIndex(uint8_t *p) const { if (p >= end || p < zero) { - throw ByteBufferException(string("Out of bounds! size=") + to_string(getSize())); + throw ByteBufferException(string("Out of bounds! size=") + to_string(getSize()) + ", index=" + to_string(p - zero)); } } @@ -32,7 +32,7 @@ int main(int argc, char *argv[]) { BluetoothAdapter *adapter = nullptr; int e; - try { +// try { targetMac = Mac::parseMac(argv[1]); adapter = trygvis::getAdapter(0); @@ -44,13 +44,13 @@ int main(int argc, char *argv[]) { // adapter->runScan(scan_callback); e = EXIT_SUCCESS; - } catch (std::runtime_error ex) { - W << "std::runtime_error: " << ex.what(); - e = EXIT_FAILURE; - } catch (std::exception ex) { - W << "std::exception: " << ex.what(); - e = EXIT_FAILURE; - } +// } catch (std::runtime_error ex) { +// W << "std::runtime_error: " << ex.what(); +// e = EXIT_FAILURE; +// } catch (std::exception ex) { +// W << "std::exception: " << ex.what(); +// e = EXIT_FAILURE; +// } if (adapter != nullptr) { delete adapter; diff --git a/test/ByteBufferTest.cpp b/test/ByteBufferTest.cpp index d6e45f7..4c51bcc 100644 --- a/test/ByteBufferTest.cpp +++ b/test/ByteBufferTest.cpp @@ -14,6 +14,8 @@ BOOST_REQUIRE_EQUAL(buffer.getCapacity(), capacity); \ BOOST_REQUIRE_EQUAL(buffer.getCursor(), cursor) +using namespace std; + class Bytes { public: Bytes(size_t size) : capacity(size) { @@ -33,6 +35,7 @@ public: size_t capacity; }; +/* BOOST_AUTO_TEST_CASE(empty_buffer) { Bytes b(1000); ByteBuffer buffer(b.bytes, b.capacity, 0, 0); @@ -45,14 +48,40 @@ BOOST_AUTO_TEST_CASE(empty_buffer) { } catch (ByteBufferException e) { } } +*/ +#include <iostream> BOOST_AUTO_TEST_CASE(basic) { Bytes b(1000); + ByteBuffer buffer(b.bytes, 1000); + checkBuffer(buffer, 1000, 1000, 0); + + BOOST_REQUIRE_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_AUTO_TEST_CASE(setCursor) { + Bytes b(1000); ByteBuffer buffer(b.bytes, 1000, 0, 10); checkBuffer(buffer, 10, 1000, 0); - buffer.get8(); + BOOST_REQUIRE_EQUAL(buffer.get8(), 0); + checkBuffer(buffer, 10, 1000, 1); + + buffer.setCursor(0); + checkBuffer(buffer, 10, 1000, 0); + + BOOST_REQUIRE_EQUAL(buffer.get8(), 0); checkBuffer(buffer, 10, 1000, 1); + + buffer.setCursor(9); + checkBuffer(buffer, 10, 1000, 9); } BOOST_AUTO_TEST_CASE(view) { @@ -60,7 +89,7 @@ BOOST_AUTO_TEST_CASE(view) { ByteBuffer buffer(b.bytes, b.capacity, 0, 10); BOOST_REQUIRE_EQUAL(buffer.get8(), 0); -// checkBuffer(buffer, 10, 1000, 1); + checkBuffer(buffer, 10, 1000, 1); ByteBuffer view1 = buffer.view(); checkBuffer(view1, 9, 9, 0); @@ -73,3 +102,4 @@ BOOST_AUTO_TEST_CASE(view) { BOOST_REQUIRE_EQUAL(view1.get8(), 3); } +*/ |