aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/ryml/test/test_scalar_names.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2025-11-07 14:49:13 +0100
committerGitHub Enterprise <[email protected]>2025-11-07 14:49:13 +0100
commit24e43a913f29ac3b314354e8ce5175f135bcc64f (patch)
treeca442937ceeb63461012b33a4576e9835099f106 /thirdparty/ryml/test/test_scalar_names.cpp
parentget oplog attachments (#622) (diff)
downloadzen-24e43a913f29ac3b314354e8ce5175f135bcc64f.tar.xz
zen-24e43a913f29ac3b314354e8ce5175f135bcc64f.zip
switch to xmake for package management (#611)
This change removes our dependency on vcpkg for package management, in favour of bringing some code in-tree in the `thirdparty` folder as well as using the xmake build-in package management feature. For the latter, all the package definitions are maintained in the zen repo itself, in the `repo` folder. It should now also be easier to build the project as it will no longer depend on having the right version of vcpkg installed, which has been a common problem for new people coming in to the codebase. Now you should only need xmake to build. * Bumps xmake requirement on github runners to 2.9.9 to resolve an issue where xmake on Windows invokes cmake with `v144` toolchain which does not exist * BLAKE3 is now in-tree at `thirdparty/blake3` * cpr is now in-tree at `thirdparty/cpr` * cxxopts is now in-tree at `thirdparty/cxxopts` * fmt is now in-tree at `thirdparty/fmt` * robin-map is now in-tree at `thirdparty/robin-map` * ryml is now in-tree at `thirdparty/ryml` * sol2 is now in-tree at `thirdparty/sol2` * spdlog is now in-tree at `thirdparty/spdlog` * utfcpp is now in-tree at `thirdparty/utfcpp` * xmake package repo definitions is in `repo` * implemented support for sanitizers. ASAN is supported on windows, TSAN, UBSAN, MSAN etc are supported on Linux/MacOS though I have not yet tested it extensively on MacOS * the zencore encryption implementation also now supports using mbedTLS which is used on MacOS, though for now we still use openssl on Linux * crashpad * bumps libcurl to 8.11.0 (from 8.8.0) which should address a rare build upload bug
Diffstat (limited to 'thirdparty/ryml/test/test_scalar_names.cpp')
-rw-r--r--thirdparty/ryml/test/test_scalar_names.cpp94
1 files changed, 94 insertions, 0 deletions
diff --git a/thirdparty/ryml/test/test_scalar_names.cpp b/thirdparty/ryml/test/test_scalar_names.cpp
new file mode 100644
index 000000000..b0d420349
--- /dev/null
+++ b/thirdparty/ryml/test/test_scalar_names.cpp
@@ -0,0 +1,94 @@
+#include "./test_group.hpp"
+
+#if defined(_MSC_VER)
+# pragma warning(push)
+//# pragma warning(disable: 4127/*conditional expression is constant*/)
+//# pragma warning(disable: 4389/*'==': signed/unsigned mismatch*/)
+#elif defined(__clang__)
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
+#elif defined(__GNUC__)
+# pragma GCC diagnostic push
+#endif
+
+namespace c4 {
+namespace yml {
+
+#define _(name) N(#name) // makes it simpler
+#define __(name) N(#name, #name) // makes it simpler
+
+CASE_GROUP(SCALAR_NAMES)
+{
+
+ADD_CASE_TO_GROUP("funny names, seq",
+R"(
+- a
+- b:b
+- c{c
+- cc{
+- c}c
+- cc}
+- c!c
+- cc!
+- .foo
+- .
+- -a
+- +b
+- /b
+- :c
+- $g
+- "*"
+- '*'
+- >-
+ *
+- "*a"
+- '*a'
+- >-
+ *a
+)",
+L{_(a), _(b:b), _(c{c), _(cc{), _(c}c), _(cc}), _(c!c), _(cc!), _(.foo), _(.), _(-a), _(+b), _(/b), _(:c), _($g),
+ N(QV, "*"), N(QV, "*"), N(QV, "*"), N(QV, "*a"), N(QV, "*a"), N(QV, "*a")}
+);
+
+ADD_CASE_TO_GROUP("funny names, seq expl",
+R"([a, b, c, .foo, ., -a, +b, /b, :c, $g])",
+L{_(a), _(b), _(c), _(.foo), _(.), _(-a), _(+b), _(/b), _(:c), _($g)}
+);
+
+ADD_CASE_TO_GROUP("funny names, map",
+R"(
+a: a
+b: b
+c: c
+.foo: .foo
+.: .
+-a: -a
++b: +b
+/b: /b
+:c: :c
+$g: $g
+'*': '*'
+'*a': '*a'
+)",
+L{__(a), __(b), __(c), __(.foo), __(.), __(-a), __(+b), __(/b), __(:c), __($g),
+ N(QKV, "*", "*"), N(QKV, "*a", "*a")}
+);
+
+ADD_CASE_TO_GROUP("funny names, map expl",
+R"({a: a, b: b, c: c, .foo: .foo, .: ., -a: -a, +b: +b, /b: /b, :c: :c, $g: $g,
+ '*': '*', '*a':'*a'})",
+L{__(a), __(b), __(c), __(.foo), __(.), __(-a), __(+b), __(/b), __(:c), __($g),
+ N(QKV, "*", "*"), N(QKV, "*a", "*a")}
+);
+}
+
+} // namespace yml
+} // namespace c4
+
+#if defined(_MSC_VER)
+# pragma warning(pop)
+#elif defined(__clang__)
+# pragma clang diagnostic pop
+#elif defined(__GNUC__)
+# pragma GCC diagnostic pop
+#endif