Implement variant type
[libside.git] / tests / unit / test.c
index f258a37eb19b31257a229e14b6189722d3eb5cd3..8c41f8bd0499e4fa86abfe514ad3fbbfe10e68ef 100644 (file)
@@ -2209,6 +2209,41 @@ void test_string_utf(void)
        );
 }
 
+static side_define_variant(myvariantdef,
+       side_type_u32(side_attr_list()),
+       side_option_list(
+               side_option_range(1, 3, side_type_u16(side_attr_list())),
+               side_option(5, side_type_string(side_attr_list())),
+       ),
+       side_attr_list()
+);
+
+side_static_event(my_provider_event_variant, "myprovider", "myeventvariant", SIDE_LOGLEVEL_DEBUG,
+       side_field_list(
+               side_field_variant("variant1", &myvariantdef),
+               side_field_variant("variant2", &myvariantdef),
+               side_field_u8("z", side_attr_list()),
+       ),
+       side_attr_list()
+);
+
+static
+void test_variant(void)
+{
+       side_event_cond(my_provider_event_variant) {
+               side_arg_define_variant(myvariant1, side_arg_u32(2), side_arg_u16(4));
+               side_arg_define_variant(myvariant2, side_arg_u32(5), side_arg_string("abc"));
+
+               side_event_call(my_provider_event_variant,
+                       side_arg_list(
+                               side_arg_variant(&myvariant1),
+                               side_arg_variant(&myvariant2),
+                               side_arg_u8(55),
+                       )
+               );
+       }
+}
+
 int main()
 {
        test_fields();
@@ -2260,5 +2295,6 @@ int main()
        test_gather_enum();
        test_gather_string();
        test_string_utf();
+       test_variant();
        return 0;
 }
This page took 0.023292 seconds and 4 git commands to generate.