From d0ac1367a3f98e2eb6f7075f2829e696aa41913c Mon Sep 17 00:00:00 2001 From: Ben Deane Date: Mon, 26 Oct 2026 14:11:23 -0600 Subject: [PATCH] :art: Use `stdx::with_name` in interrupt test Problem: - The interrupt policy test still uses manual naming. Solution: - Use `stdx::with_name`. --- test/interrupt/policies.cpp | 66 ++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 38 deletions(-) diff --git a/test/interrupt/policies.cpp b/test/interrupt/policies.cpp index 4fb4420d..b7a55feb 100644 --- a/test/interrupt/policies.cpp +++ b/test/interrupt/policies.cpp @@ -55,45 +55,34 @@ using P = interrupt::dynamic_enable_policy; template struct flow; template struct resource; -struct grandchild { - constexpr static auto name = stdx::ct_string{"gc"}; - using name_t = stdx::cts_t; - +struct grandchild : stdx::with_name<"gc"> { constexpr static auto children = stdx::tuple{}; using resources_t = interrupt::resource_list>; using flows_t = stdx::type_list>; }; -struct child_a { - constexpr static auto name = stdx::ct_string{"ca"}; - using name_t = stdx::cts_t; - +struct child_a : stdx::with_name<"ca"> { constexpr static auto children = stdx::tuple{grandchild{}}; using resources_t = interrupt::resource_list, resource<"ca2">>; using flows_t = stdx::type_list>; }; -struct child_b { - constexpr static auto name = stdx::ct_string{"cb"}; - using name_t = stdx::cts_t; - +struct child_b : stdx::with_name<"cb"> { constexpr static auto children = stdx::tuple{}; using resources_t = interrupt::resource_list>; using flows_t = stdx::type_list, flow<"cb2">>; }; -struct parent { - constexpr static auto name = stdx::ct_string{"p"}; - using name_t = stdx::cts_t; - +struct parent : stdx::with_name<"p"> { constexpr static auto children = stdx::tuple{child_a{}, child_b{}}; using resources_t = interrupt::resource_list>; using flows_t = stdx::type_list>; }; -using name_enables_t = stdx::type_bitset; +using name_enables_t = stdx::type_bitset< + stdx::constant_name_of_t, stdx::constant_name_of_t, + stdx::constant_name_of_t, stdx::constant_name_of_t>; using flow_enables_t = boost::mp11::mp_apply< stdx::type_bitset, boost::mp11::mp_append{}}; + name_enables_t{stdx::type_list, + stdx::constant_name_of_t, + stdx::constant_name_of_t>{}}; constexpr auto rsrc_enables = resource_enables_t{stdx::all_bits}; constexpr auto flow_enables = flow_enables_t{stdx::all_bits}; STATIC_CHECK( @@ -142,7 +132,7 @@ TEST_CASE("dynamic_enable_policy: is_on (turned off by resource)", TEST_CASE("dynamic_enable_policy: is_on (by flows)", "[policies]") { // only parent name enabled; children off constexpr auto name_enables = - name_enables_t{stdx::type_list{}}; + name_enables_t{stdx::type_list>{}}; constexpr auto rsrc_enables = resource_enables_t{stdx::all_bits}; constexpr auto flow_enables = flow_enables_t{stdx::all_bits}; STATIC_CHECK(P::is_on(name_enables, rsrc_enables, flow_enables)); @@ -151,7 +141,7 @@ TEST_CASE("dynamic_enable_policy: is_on (by flows)", "[policies]") { TEST_CASE("dynamic_enable_policy: is_on (by one flow)", "[policies]") { // only child_b enabled constexpr auto name_enables = - name_enables_t{stdx::type_list{}}; + name_enables_t{stdx::type_list>{}}; constexpr auto rsrc_enables = resource_enables_t{stdx::all_bits}; // only one of child_b's flows enabled constexpr auto flow_enables = @@ -160,8 +150,10 @@ TEST_CASE("dynamic_enable_policy: is_on (by one flow)", "[policies]") { } TEST_CASE("dynamic_enable_policy: is_on (by children)", "[policies]") { - constexpr auto name_enables = name_enables_t{ - stdx::type_list{}}; + constexpr auto name_enables = + name_enables_t{stdx::type_list, + stdx::constant_name_of_t, + stdx::constant_name_of_t>{}}; constexpr auto rsrc_enables = resource_enables_t{stdx::all_bits}; // parent flow not enabled, but children are constexpr auto flow_enables = @@ -171,7 +163,8 @@ TEST_CASE("dynamic_enable_policy: is_on (by children)", "[policies]") { TEST_CASE("dynamic_enable_policy: is_on (by one child)", "[policies]") { constexpr auto name_enables = - name_enables_t{stdx::type_list{}}; + name_enables_t{stdx::type_list, + stdx::constant_name_of_t>{}}; constexpr auto rsrc_enables = resource_enables_t{stdx::all_bits}; // parent flow not enabled, but child_a's is constexpr auto flow_enables = flow_enables_t{stdx::type_list>{}}; @@ -179,8 +172,10 @@ TEST_CASE("dynamic_enable_policy: is_on (by one child)", "[policies]") { } TEST_CASE("dynamic_enable_policy: is_on (by grandchild)", "[policies]") { - constexpr auto name_enables = name_enables_t{ - stdx::type_list{}}; + constexpr auto name_enables = + name_enables_t{stdx::type_list, + stdx::constant_name_of_t, + stdx::constant_name_of_t>{}}; constexpr auto rsrc_enables = resource_enables_t{stdx::all_bits}; // grandchild on => child_a on => parent on constexpr auto flow_enables = flow_enables_t{stdx::type_list>{}}; @@ -189,10 +184,7 @@ TEST_CASE("dynamic_enable_policy: is_on (by grandchild)", "[policies]") { } namespace { -struct alt_grandchild { - constexpr static auto name = stdx::ct_string{"gc"}; - using name_t = stdx::cts_t; - +struct alt_grandchild : stdx::with_name<"gc"> { constexpr static auto children = stdx::tuple{}; using resources_t = interrupt::resource_list<>; using flows_t = stdx::type_list>; @@ -200,8 +192,8 @@ struct alt_grandchild { } // namespace TEST_CASE("dynamic_enable_policy: is_on (no resources)", "[policies]") { - constexpr auto name_enables = - name_enables_t{stdx::type_list{}}; + constexpr auto name_enables = name_enables_t{ + stdx::type_list>{}}; constexpr auto rsrc_enables = resource_enables_t{}; constexpr auto flow_enables = flow_enables_t{stdx::type_list>{}}; STATIC_CHECK( @@ -209,10 +201,7 @@ TEST_CASE("dynamic_enable_policy: is_on (no resources)", "[policies]") { } namespace { -struct alt_parent { - constexpr static auto name = stdx::ct_string{"p"}; - using name_t = stdx::cts_t; - +struct alt_parent : stdx::with_name<"p"> { constexpr static auto children = stdx::tuple{child_a{}}; using resources_t = interrupt::resource_list<>; using flows_t = stdx::type_list<>; @@ -222,7 +211,8 @@ struct alt_parent { TEST_CASE("dynamic_enable_policy: is_on (parent with no resources/flows)", "[policies]") { constexpr auto name_enables = - name_enables_t{stdx::type_list{}}; + name_enables_t{stdx::type_list, + stdx::constant_name_of_t>{}}; constexpr auto rsrc_enables = resource_enables_t{stdx::type_list, resource<"ca2">>{}}; constexpr auto flow_enables = flow_enables_t{stdx::type_list>{}};