From 876489700f12ee608b977e959046728e56a172de Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Tue, 6 Aug 2024 10:53:04 -0400 Subject: [PATCH] xo-reader: + utest for reader [failing!] --- utest/CMakeLists.txt | 3 ++- utest/reader.test.cpp | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 utest/reader.test.cpp diff --git a/utest/CMakeLists.txt b/utest/CMakeLists.txt index b209a9c9..1f876ca1 100644 --- a/utest/CMakeLists.txt +++ b/utest/CMakeLists.txt @@ -3,7 +3,8 @@ set(UTEST_EXE utest.reader) set(UTEST_SRCS reader_utest_main.cpp - parser.test.cpp) + parser.test.cpp + reader.test.cpp) if (ENABLE_TESTING) xo_add_utest_executable(${UTEST_EXE} ${UTEST_SRCS}) diff --git a/utest/reader.test.cpp b/utest/reader.test.cpp new file mode 100644 index 00000000..376dbf05 --- /dev/null +++ b/utest/reader.test.cpp @@ -0,0 +1,38 @@ +/* @file reader.test.cpp */ + +#include "xo/reader/reader.hpp" +#include + +namespace xo { + using xo::scm::reader; + + namespace ut { + TEST_CASE("reader", "[reader]") { + for (std::size_t i_tc = 0; i_tc < 1; ++i_tc) { + reader rdr; + + constexpr bool c_debug_flag = true; + scope log(XO_DEBUG(c_debug_flag), + xtag("utest", "reader"), xtag("i_tc", i_tc)); + + rdr.begin_translation_unit(); + + try { + auto rr = rdr.read_expr(reader::span_type::from_cstr("def foo : f64 = 3.14159265"), + true /*eof*/); + + REQUIRE(rr.expr_.get()); + REQUIRE(rr.rem_.empty()); + } catch (std::exception & ex) { + log && log(ex.what()); + + INFO(ex.what()); + + REQUIRE(false); + } + } + } + } /*namespace ut*/ +} /*namespace xo*/ + +/* end reader.test.cpp */