Aktualizr
C++ SOTA Client
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
dequeue_buffer_test.cc
1 #include <gtest/gtest.h>
2 
3 #include <string>
4 #include "utilities/dequeue_buffer.h"
5 
6 TEST(DequeueBuffer, Simple) {
7  DequeueBuffer dut;
8 
9  EXPECT_NE(dut.Head(), nullptr);
10  EXPECT_EQ(dut.Size(), 0);
11 
12  size_t chars = static_cast<size_t>(snprintf(dut.Tail(), dut.TailSpace(), "hello "));
13  dut.HaveEnqueued(chars);
14  chars = static_cast<size_t>(snprintf(dut.Tail(), dut.TailSpace(), "world"));
15  dut.HaveEnqueued(chars);
16  EXPECT_EQ(dut.Size(), strlen("hello world"));
17 
18  EXPECT_EQ(std::string(dut.Head(), dut.Size()), "hello world");
19  dut.Consume(3);
20  EXPECT_EQ(std::string(dut.Head(), dut.Size()), "lo world");
21 }
22 
23 #ifndef __NO_MAIN__
24 int main(int argc, char **argv) {
25  ::testing::InitGoogleTest(&argc, argv);
26  return RUN_ALL_TESTS();
27 }
28 #endif
DequeueBuffer::Tail
char * Tail()
A pointer to the next place to write data to.
Definition: dequeue_buffer.cc:32
DequeueBuffer::Consume
void Consume(size_t bytes)
Called after bytes have been read from Head().
Definition: dequeue_buffer.cc:16
DequeueBuffer::Size
size_t Size() const
The number of elements that are valid (have been written) after Head()
Definition: dequeue_buffer.cc:11
DequeueBuffer::TailSpace
size_t TailSpace()
The number of bytes beyond Tail() that are allocated and may be written to.
Definition: dequeue_buffer.cc:38
DequeueBuffer
A dequeue based on a contiguous buffer in memory.
Definition: dequeue_buffer.h:11
DequeueBuffer::Head
char * Head()
A pointer to the first element that has not been Consumed().
Definition: dequeue_buffer.cc:6
DequeueBuffer::HaveEnqueued
void HaveEnqueued(size_t bytes)
Call to indicate that bytes have been written in the range Tail() ...
Definition: dequeue_buffer.cc:43