diff options
author | Bastien Montagne <bastien@blender.org> | 2022-07-27 13:09:32 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2022-07-27 16:33:29 +0300 |
commit | 58dcd2099876d679f7bc51901c82b2f04e9ce659 (patch) | |
tree | e8d501ed12d55787762dc89751a048a25d75bb85 /source/blender/blenkernel/intern/lib_id_test.cc | |
parent | 4843b161d6cc14045f05d8df76f39795d5fcc6b3 (diff) |
ID namemap: Fix more issues when changing libs.
Fix tests, and some issue when making an ID local.
There are probably a few more issues still though.
Diffstat (limited to 'source/blender/blenkernel/intern/lib_id_test.cc')
-rw-r--r-- | source/blender/blenkernel/intern/lib_id_test.cc | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/lib_id_test.cc b/source/blender/blenkernel/intern/lib_id_test.cc index 62066204227..d12e0c52870 100644 --- a/source/blender/blenkernel/intern/lib_id_test.cc +++ b/source/blender/blenkernel/intern/lib_id_test.cc @@ -65,6 +65,7 @@ static void change_lib(Main *bmain, ID *id, Library *lib) } BKE_main_namemap_remove_name(bmain, id, id->name + 2); id->lib = lib; + BKE_main_namemap_get_name(bmain, id, id->name + 2); } static void change_name(Main *bmain, ID *id, const char *name) @@ -85,25 +86,27 @@ TEST(lib_id_main_sort, linked_ids_1) ID *id_a = static_cast<ID *>(BKE_id_new(ctx.bmain, ID_OB, "OB_A")); ID *id_b = static_cast<ID *>(BKE_id_new(ctx.bmain, ID_OB, "OB_B")); - id_a->lib = lib_a; + change_lib(ctx.bmain, id_a, lib_a); id_sort_by_name(&ctx.bmain->objects, id_a, nullptr); - id_b->lib = lib_a; + change_lib(ctx.bmain, id_b, lib_a); id_sort_by_name(&ctx.bmain->objects, id_b, nullptr); EXPECT_TRUE(ctx.bmain->objects.first == id_c); EXPECT_TRUE(ctx.bmain->objects.last == id_b); test_lib_id_main_sort_check_order({id_c, id_a, id_b}); - id_a->lib = lib_b; + change_lib(ctx.bmain, id_a, lib_b); id_sort_by_name(&ctx.bmain->objects, id_a, nullptr); EXPECT_TRUE(ctx.bmain->objects.first == id_c); EXPECT_TRUE(ctx.bmain->objects.last == id_a); test_lib_id_main_sort_check_order({id_c, id_b, id_a}); - id_b->lib = lib_b; + change_lib(ctx.bmain, id_b, lib_b); id_sort_by_name(&ctx.bmain->objects, id_b, nullptr); EXPECT_TRUE(ctx.bmain->objects.first == id_c); EXPECT_TRUE(ctx.bmain->objects.last == id_b); test_lib_id_main_sort_check_order({id_c, id_a, id_b}); + + EXPECT_TRUE(BKE_main_namemap_validate(ctx.bmain)); } TEST(lib_id_main_unique_name, local_ids_1) @@ -184,9 +187,7 @@ TEST(lib_id_main_unique_name, ids_sorted_by_default) static ID *add_id_in_library(Main *bmain, const char *name, Library *lib) { ID *id = static_cast<ID *>(BKE_id_new(bmain, ID_OB, name)); - BKE_main_namemap_remove_name(bmain, id, id->name + 2); - id->lib = lib; - BKE_main_namemap_get_name(bmain, id, id->name + 2); + change_lib(bmain, id, lib); id_sort_by_name(&bmain->objects, id, nullptr); return id; } |