@@ -1130,39 +1130,46 @@ TEST_CASE(
11301130 auto created_group_uri = vfs.ls (vfs_test_setup.default_storage ()).back ();
11311131 // Creates a new group at a relative backend storage location using S3 URI.
11321132 REQUIRE_NOTHROW (
1133- tiledb::create_group (ctx, created_group_uri + " /groups/relative_group " ));
1133+ tiledb::create_group (ctx, created_group_uri + " /relative_group2 " ));
11341134
1135- auto group = tiledb::Group (ctx, group_uri, TILEDB_WRITE);
1136- // Attempts to add the same array as a member with the same name.
1137- CHECK_NOTHROW (group.add_member (" relative_array" , true , " relative_array" ));
1138- CHECK_NOTHROW (
1139- group.add_member (" relative_array" , true , " relative_array_rename" ));
1140- CHECK_NOTHROW (group.add_member (" relative_group" , true , " relative_group" ));
1141- // Add the relative member we created on S3 to the parent group after creation
1135+ auto group_w1 = tiledb::Group (ctx, group_uri, TILEDB_WRITE);
1136+ // Add the relative member we created on S3 to the parent group after
1137+ // creation
11421138 CHECK_NOTHROW (
1143- group.add_member (" groups/relative_group" , true , " relative_group_nested" ));
1139+ group_w1.add_member (" relative_group2" , true , " relative_group2" ));
1140+ REQUIRE_NOTHROW (group_w1.close ());
1141+
1142+ // Attempts to add the same array as a member with the same name.
1143+ auto group_w2 = tiledb::Group (ctx, group_uri, TILEDB_WRITE);
1144+ CHECK_NOTHROW (group_w2.add_member (" relative_array" , true , " relative_array" ));
1145+ REQUIRE_THROWS (group_w2.close ());
1146+
1147+ // Attempts to add the same array as a member with a different name.
1148+ auto group_w3 = tiledb::Group (ctx, group_uri, TILEDB_WRITE);
11441149 CHECK_NOTHROW (
1145- group.add_member (" relative_group" , true , " relative_group_rename" ));
1146- REQUIRE_NOTHROW (group.close ());
1150+ group_w3.add_member (" relative_array" , true , " relative_array_rename" ));
1151+ REQUIRE_THROWS (group_w3.close ());
1152+
1153+ // Attempts to add the same group as a member with the same name.
1154+ auto group_w4 = tiledb::Group (ctx, group_uri, TILEDB_WRITE);
1155+ CHECK_NOTHROW (group_w4.add_member (" relative_group" , true , " relative_group" ));
1156+ REQUIRE_THROWS (group_w4.close ());
11471157
1148- REQUIRE_NOTHROW (group. open ( TILEDB_READ) );
1158+ auto group_r = tiledb::Group (ctx, group_uri, TILEDB_READ);
11491159 tiledb::sm::URI member_uri (array_member_uri);
1150- CHECK (group.member_count () == 5 );
1151- for (const std::string name :
1152- {" relative_array" ,
1153- " relative_array_rename" ,
1154- " relative_group" ,
1155- " relative_group_nested" ,
1156- " relative_group_rename" }) {
1157- auto member = group.member (name);
1160+ std::vector<std::string> expected_members = {
1161+ " relative_array" , " relative_group" , " relative_group2" };
1162+ CHECK (group_r.member_count () == expected_members.size ());
1163+ for (const std::string& name : expected_members) {
1164+ auto member = group_r.member (name);
11581165 auto object_type = tiledb::Object::Type::Group;
11591166 if (name.find (" array" ) != std::string::npos) {
11601167 object_type = tiledb::Object::Type::Array;
11611168 }
11621169 CHECK (member.type () == object_type);
11631170 CHECK (member.name () == name);
11641171 CHECK (member.uri () == group_uri + " /" + name);
1165- CHECK (group .is_relative (name));
1172+ CHECK (group_r .is_relative (name));
11661173 }
11671174}
11681175
0 commit comments