Test self assignment

This commit is contained in:
Josh Holtrop 2026-02-25 08:17:18 -05:00
parent 8d0243dcde
commit 0de327d442

View File

@ -167,6 +167,17 @@ void test_copy_assignment_decrements_previous_reference()
assert(mybase_destruct == destructed_before + 2); assert(mybase_destruct == destructed_before + 2);
} }
void test_self_assignment()
{
int destructed_before = mybase_destruct;
MyB a = MyB::create(1, 2);
a = a;
assert(a);
assert(a->x == 1);
assert(a.use_count() == 1);
assert(mybase_destruct == destructed_before);
}
void test_move_constructor() void test_move_constructor()
{ {
int constructed_before = mybase_construct; int constructed_before = mybase_construct;
@ -415,6 +426,7 @@ int main(int argc, char * argv[])
test_multi_construct_from_raw_pointers(); test_multi_construct_from_raw_pointers();
test_listener_self_registration(); test_listener_self_registration();
test_copy_assignment_decrements_previous_reference(); test_copy_assignment_decrements_previous_reference();
test_self_assignment();
test_cross_type_comparison(); test_cross_type_comparison();
test_reset(); test_reset();
test_move_constructor(); test_move_constructor();