From 3ea83364cefbeccd47cda1bc6ea58966cd308c94 Mon Sep 17 00:00:00 2001 From: robot-piglet Date: Tue, 16 Apr 2024 21:36:37 +0300 Subject: Intermediate changes --- tools/enum_parser/parse_enum/ut/enums.cpp | 8 ++++++++ tools/enum_parser/parse_enum/ut/enums_with_header.h | 15 +++++++++++++++ 2 files changed, 23 insertions(+) (limited to 'tools/enum_parser') diff --git a/tools/enum_parser/parse_enum/ut/enums.cpp b/tools/enum_parser/parse_enum/ut/enums.cpp index 92e54706800..3a9df14f5ef 100644 --- a/tools/enum_parser/parse_enum/ut/enums.cpp +++ b/tools/enum_parser/parse_enum/ut/enums.cpp @@ -8,6 +8,7 @@ #include #include +#include #include #include @@ -197,4 +198,11 @@ Y_UNIT_TEST_SUITE(TEnumGeneratorTest) { Y_UNIT_TEST(EnumSerializerDestructionPriority) { Singleton()->Init(); } + + Y_UNIT_TEST(ValuesSortTest) { + const auto& allValues = GetEnumAllValues(); + UNIT_ASSERT_VALUES_EQUAL(allValues.size(), 4u); + UNIT_ASSERT(IsSorted(allValues.begin(), allValues.end())); + } + }; diff --git a/tools/enum_parser/parse_enum/ut/enums_with_header.h b/tools/enum_parser/parse_enum/ut/enums_with_header.h index 26fe5565a92..91edf615321 100644 --- a/tools/enum_parser/parse_enum/ut/enums_with_header.h +++ b/tools/enum_parser/parse_enum/ut/enums_with_header.h @@ -6,3 +6,18 @@ enum EWithHeader { HThree, }; + +constexpr unsigned EvalValue(unsigned r, unsigned d) { + while (r >= 50) { + r *= d; + } + return r; +} + +// enumeration with values that depend on the preprocessor, architecture and constexpr function evaluation +enum class ENontrivialValues { + A = __LINE__, + B = EvalValue(1522858842, 13), + C, + D = sizeof(int*[A][C]), +}; -- cgit v1.3