[keel] Cleanup

This commit is contained in:
Gary Talent 2023-06-09 22:01:17 -05:00
parent 952a2f153e
commit fb43c956e7
6 changed files with 64 additions and 6 deletions

View File

@ -45,3 +45,7 @@ install(
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
if(TURBINE_BUILD_TYPE STREQUAL "Native")
add_subdirectory(test)
endif()

View File

@ -18,8 +18,9 @@ ox::Result<ox::UUID> readUuidHeader(const ox::Buffer &buff) noexcept;
ox::Result<ox::UUID> readUuidHeader(const char *buff, std::size_t buffLen) noexcept;
ox::Error writeUuidHeader(ox::Writer_c auto &writer, const ox::UUID &uuid) noexcept {
const auto hdr = ox::sfmt<ox::BString<K1HdrSz>>("K1;{};", uuid.toString());
return write(writer, hdr);
oxReturnError(write(writer, "K1;"));
oxReturnError(uuid.toString(writer));
return writer.put(';');
}
template<typename T>

View File

@ -0,0 +1,11 @@
add_executable(
KeelTest
tests.cpp
)
target_link_libraries(
KeelTest
Keel
)
add_test("[keel] KeelTest writeUuidHeader" KeelTest writeUuidHeader)

40
src/keel/test/tests.cpp Normal file
View File

@ -0,0 +1,40 @@
/*
* Copyright 2016 - 2023 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#undef NDEBUG
#include <map>
#include <string>
#include <ox/std/std.hpp>
#include <keel/keel.hpp>
static std::map<std::string, ox::Error(*)()> tests = {
{
"writeUuidHeader",
[] {
constexpr ox::StringView uuidStr = "8d814442-f46e-4cc3-8edc-ca3c01cc86db";
constexpr ox::StringView hdr = "K1;8d814442-f46e-4cc3-8edc-ca3c01cc86db;";
oxRequire(uuid, ox::UUID::fromString(uuidStr));
ox::Array<char, hdr.len()> buff;
ox::CharBuffWriter bw(buff);
oxReturnError(keel::writeUuidHeader(bw, uuid));
oxExpect(ox::StringView(buff.data(), buff.size()), hdr);
return OxError(0);
}
},
};
int main(int argc, const char **args) {
int retval = -1;
if (argc > 0) {
auto testName = args[1];
if (tests.find(testName) != tests.end()) {
retval = static_cast<int>(tests[testName]());
} else {
retval = 1;
}
}
return retval;
}

View File

@ -6,6 +6,11 @@
namespace keel {
TypeStore::TypeStore(ox::FileSystem *fs, ox::String descPath) noexcept:
m_fs(fs),
m_descPath(std::move(descPath)) {
}
ox::Result<ox::UniquePtr<ox::DescriptorType>> TypeStore::loadDescriptor(ox::CRStringView typeId) noexcept {
auto path = ox::sfmt("{}/{}", m_descPath, typeId);
oxRequire(buff, m_fs->read(path));

View File

@ -16,10 +16,7 @@ class TypeStore: public ox::TypeStore {
ox::String m_descPath;
public:
constexpr explicit TypeStore(ox::FileSystem *fs, ox::String descPath = "/.keel/type_descriptors") noexcept:
m_fs(fs),
m_descPath(std::move(descPath)) {
}
explicit TypeStore(ox::FileSystem *fs, ox::String descPath) noexcept;
protected:
ox::Result<ox::UniquePtr<ox::DescriptorType>> loadDescriptor(ox::CRStringView typeId) noexcept override;