mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-24 11:11:02 -07:00
72 lines
1.7 KiB
C++
72 lines
1.7 KiB
C++
#include <stdio.h>
|
|
#include <unistd.h>
|
|
#include <stdlib.h>
|
|
#include "lib/core/globals.h"
|
|
#include "lib/core/bytes.h"
|
|
#include "lib/external/ldbs.h"
|
|
|
|
static Bytes testdata{
|
|
// clang-format off
|
|
'L', 'B', 'S', 0x01, 'D', 'S', 'K', 0x02,
|
|
0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x34, 0x12, 0x00, 0x00, 'L', 'D', 'B', 0x01,
|
|
0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00,
|
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x01, 'L', 'D', 'B', 0x01, 0x00, 0x00, 0x00,
|
|
0x02, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
|
0x00, 0x14, 0x00, 0x00, 0x00, 0x02
|
|
// clang-format on
|
|
};
|
|
|
|
static void assertBytes(const Bytes& want, const Bytes& got)
|
|
{
|
|
if (want != got)
|
|
{
|
|
std::cout << "Wanted bytes:" << std::endl;
|
|
hexdump(std::cout, want);
|
|
std::cout << std::endl << "Produced bytes:" << std::endl;
|
|
hexdump(std::cout, got);
|
|
abort();
|
|
}
|
|
}
|
|
static void test_getset()
|
|
{
|
|
LDBS ldbs;
|
|
|
|
uint32_t block1 = ldbs.put(Bytes{1}, 1);
|
|
uint32_t block2 = ldbs.put(Bytes{2}, 2);
|
|
assert(block1 != block2);
|
|
|
|
assert(ldbs.get(block1) == Bytes{1});
|
|
assert(ldbs.get(block2) == Bytes{2});
|
|
}
|
|
|
|
static void test_write()
|
|
{
|
|
LDBS ldbs;
|
|
|
|
uint32_t block1 = ldbs.put(Bytes{1}, 1);
|
|
uint32_t block2 = ldbs.put(Bytes{2}, 2);
|
|
Bytes data = ldbs.write(0x1234);
|
|
|
|
assertBytes(testdata, data);
|
|
}
|
|
|
|
static void test_read()
|
|
{
|
|
LDBS ldbs;
|
|
uint32_t trackDirectory = ldbs.read(testdata);
|
|
|
|
assert(trackDirectory == 0x1234);
|
|
assert(ldbs.get(0x14) == Bytes{1});
|
|
assert(ldbs.get(0x29) == Bytes{2});
|
|
}
|
|
|
|
int main(int argc, const char* argv[])
|
|
{
|
|
test_getset();
|
|
test_write();
|
|
test_read();
|
|
return 0;
|
|
}
|