Просмотр исходного кода

test: context aware meta pointers (dereferencing picks the type from the right context)

Michele Caini 3 лет назад
Родитель
Сommit
7bee969ebf
1 измененных файлов с 15 добавлено и 1 удалено
  1. 15 1
      test/entt/meta/meta_context.cpp

+ 15 - 1
test/entt/meta/meta_context.cpp

@@ -327,7 +327,21 @@ TEST_F(MetaContext, MetaTemplate) {
 }
 
 TEST_F(MetaContext, MetaPointer) {
-    // TODO
+    using namespace entt::literals;
+
+    int value = 42;
+
+    const entt::meta_any global{&value};
+    const entt::meta_any local{context, &value};
+
+    ASSERT_TRUE(global.type().is_pointer());
+    ASSERT_TRUE(local.type().is_pointer());
+
+    ASSERT_TRUE(global.type().is_pointer_like());
+    ASSERT_TRUE(local.type().is_pointer_like());
+
+    ASSERT_EQ((*global).type().data("marker"_hs).get({}).cast<int>(), global_marker);
+    ASSERT_EQ((*local).type().data("marker"_hs).get({}).cast<int>(), local_marker);
 }
 
 TEST_F(MetaContext, MetaAssociativeContainer) {