28static struct OwnedArrayTest :
public UnitTest
33 virtual ~Base() =
default;
35 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Base)
42 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Derived)
47 DestructorObj (OwnedArrayTest& p,
48 OwnedArray<DestructorObj>& arr)
49 : parent (p), objectArray (arr)
56 for (
auto* o : objectArray)
58 parent.expect (o !=
nullptr);
59 parent.expect (o !=
this);
60 parent.expectEquals (o->data, 956);
64 OwnedArrayTest& parent;
65 OwnedArray<DestructorObj>& objectArray;
68 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (DestructorObj)
72 : UnitTest (
"OwnedArray", UnitTestCategories::containers)
75 void runTest()
override
77 beginTest (
"After converting move construction, ownership is transferred");
83 expectEquals (
base.size(), 3);
84 expectEquals (
derived.size(), 0);
87 beginTest (
"After converting move assignment, ownership is transferred");
93 expectEquals (
base.size(), 3);
96 beginTest (
"Iterate in destructor");
101 for (
int i = 0; i < 2; ++i)
107 for (
int i = 0; i < 1025; ++i)
110 while (!
arr.isEmpty())
113 for (
int i = 0; i < 1025; ++i)
116 arr.removeRange (1,
arr.size() - 3);
118 for (
int i = 0; i < 1025; ++i)