15 #include "absl/container/internal/test_instance_tracker.h"
17 #include "gtest/gtest.h"
26 TEST(TestInstanceTracker, CopyableMovable) {
28 CopyableMovableInstance src(1);
30 CopyableMovableInstance
copy(src);
37 tracker.ResetCopiesMovesSwaps();
39 CopyableMovableInstance copy_assign(1);
41 CopyableMovableInstance move_assign(1);
48 tracker.ResetCopiesMovesSwaps();
62 TEST(TestInstanceTracker, CopyableOnly) {
64 CopyableOnlyInstance src(1);
66 CopyableOnlyInstance
copy(src);
67 CopyableOnlyInstance copy2(
std::move(src));
72 tracker.ResetCopiesMovesSwaps();
74 CopyableOnlyInstance copy_assign(1);
76 CopyableOnlyInstance copy_assign2(1);
82 tracker.ResetCopiesMovesSwaps();
96 TEST(TestInstanceTracker, MovableOnly) {
98 MovableOnlyInstance src(1);
101 MovableOnlyInstance move_assign(2);
107 tracker.ResetCopiesMovesSwaps();
111 MovableOnlyInstance other(2);
112 swap(move_assign, other);
113 swap(other, move_assign);
122 TEST(TestInstanceTracker, ExistingInstances) {
123 CopyableMovableInstance uncounted_instance(1);
124 CopyableMovableInstance uncounted_live_instance(
131 CopyableMovableInstance instance1(1);
137 InstanceTracker tracker2;
138 CopyableMovableInstance instance2(instance1);
139 CopyableMovableInstance instance3(
std::move(instance2));
160 TEST(TestInstanceTracker, Comparisons) {
162 MovableOnlyInstance one(1), two(2);
180 tracker.ResetCopiesMovesSwaps();