mirror of
https://github.com/vicliu624/trail-mate.git
synced 2026-10-23 05:32:18 +00:00
WIP: checkpoint geocaching before main integration
This commit is contained in:
1 parent
d7a2f35328
commit
3d65ece83d
244 files changed
+25291
-126
No files matched your search
@@ -0,0 +1,31 @@
|
||||
#include "geocaching/protocol/discovery.h"
|
||||
#include <cassert>
|
||||
#include <vector>
|
||||
|
||||
int main()
|
||||
{
|
||||
// [1, bin16(0x11...), bin16(0x22...), uint64_max, "Node"]
|
||||
std::vector<std::uint8_t> data{0x95, 1, 0xc4, 16};
|
||||
data.insert(data.end(), 16, 0x11);
|
||||
data.insert(data.end(), {0xc4, 16});
|
||||
data.insert(data.end(), 16, 0x22);
|
||||
data.push_back(0xcf);
|
||||
data.insert(data.end(), 8, 0xff);
|
||||
data.insert(data.end(), {0xa4, 'N', 'o', 'd', 'e'});
|
||||
geocaching::Destination expected;
|
||||
expected.bytes.fill(0x11);
|
||||
geocaching::protocol::DirectoryAnnouncement out;
|
||||
using geocaching::protocol::decodeDirectoryAnnouncement;
|
||||
assert(decodeDirectoryAnnouncement({data.data(), data.size()}, expected, out));
|
||||
assert(out.sequence == UINT64_MAX && out.epoch[0] == 0x22 && out.name == "Node");
|
||||
for (std::size_t n = 0; n < data.size(); ++n)
|
||||
{
|
||||
assert(!decodeDirectoryAnnouncement({data.data(), n}, expected, out));
|
||||
assert(out.name.empty() && out.sequence == 0);
|
||||
}
|
||||
expected.bytes[0] = 0x33;
|
||||
assert(!decodeDirectoryAnnouncement({data.data(), data.size()}, expected, out));
|
||||
expected.bytes.fill(0x11);
|
||||
data.push_back(0);
|
||||
assert(!decodeDirectoryAnnouncement({data.data(), data.size()}, expected, out));
|
||||
}
|
||||
Reference in new issue
Block a user