mirror of
https://github.com/ETLCPP/etl.git
synced 2026-10-28 18:07:10 +08:00
Merged new tests from PR #1625
This commit is contained in:
parent
ac50a71cea
commit
fb367487e5
@ -2570,6 +2570,40 @@ namespace
|
||||
}
|
||||
};
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_variant_visit_dispatches_every_alternative)
|
||||
{
|
||||
etl::variant<int8_t, uint8_t, int16_t> 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<int8_t, uint8_t> 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<int8_t, uint8_t> variant1;
|
||||
etl::variant<int8_t, uint16_t, uint8_t> variant2(etl::private_variant::valueless_t{});
|
||||
|
||||
CHECK_THROW(etl::visit<int16_t>(test_variant_multiple_visit_helper{}, variant1, variant2), etl::bad_variant_access);
|
||||
}
|
||||
|
||||
TEST(test_variant_multiple_visit)
|
||||
{
|
||||
etl::variant<int8_t, uint8_t> variant1;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user