From fb367487e5cfee9f132324e11149152dafb59722 Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Mon, 12 Oct 2026 10:25:18 +0100 Subject: [PATCH] Merged new tests from PR #1625 --- test/test_variant_variadic.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/test/test_variant_variadic.cpp b/test/test_variant_variadic.cpp index 8e81a606..604f6718 100644 --- a/test/test_variant_variadic.cpp +++ b/test/test_variant_variadic.cpp @@ -2570,6 +2570,40 @@ namespace } }; + //************************************************************************* + TEST(test_variant_visit_dispatches_every_alternative) + { + etl::variant variant; + variant_test_visit_dispatcher visitor; + + variant = int8_t{}; + CHECK_EQUAL(5, etl::visit(visitor, variant)); + + variant = uint8_t{}; + CHECK_EQUAL(6, etl::visit(visitor, variant)); + + variant = int16_t{}; + CHECK_EQUAL(7, etl::visit(visitor, variant)); + } + + //************************************************************************* + TEST(test_variant_visit_rejects_valueless_variant) + { + etl::variant variant(etl::private_variant::valueless_t{}); + variant_test_visit_dispatcher visitor; + + CHECK_THROW(etl::visit(visitor, variant), etl::bad_variant_access); + } + + //************************************************************************* + TEST(test_variant_multiple_visit_rejects_valueless_later_variant) + { + etl::variant variant1; + etl::variant variant2(etl::private_variant::valueless_t{}); + + CHECK_THROW(etl::visit(test_variant_multiple_visit_helper{}, variant1, variant2), etl::bad_variant_access); + } + TEST(test_variant_multiple_visit) { etl::variant variant1;