summaryrefslogtreecommitdiff
path: root/pstl/test/std/algorithms/alg.merge/inplace_merge.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pstl/test/std/algorithms/alg.merge/inplace_merge.pass.cpp')
-rw-r--r--pstl/test/std/algorithms/alg.merge/inplace_merge.pass.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/pstl/test/std/algorithms/alg.merge/inplace_merge.pass.cpp b/pstl/test/std/algorithms/alg.merge/inplace_merge.pass.cpp
index 74ecc0c5a706..f2cc4040bb1e 100644
--- a/pstl/test/std/algorithms/alg.merge/inplace_merge.pass.cpp
+++ b/pstl/test/std/algorithms/alg.merge/inplace_merge.pass.cpp
@@ -147,6 +147,13 @@ main()
test_algo_basic_single<int32_t>(run_for_rnd_bi<test_non_const<int32_t>>());
+ test_by_type<MemoryChecker>(
+ [](std::size_t idx){ return MemoryChecker{std::int32_t(idx * 2)}; },
+ [](std::size_t idx){ return MemoryChecker{std::int32_t(idx * 2 + 1)}; },
+ [](const MemoryChecker& val1, const MemoryChecker& val2){ return val1.value() == val2.value(); });
+ EXPECT_FALSE(MemoryChecker::alive_objects() < 0, "wrong effect from inplace_merge: number of ctors calls < num of dtors calls");
+ EXPECT_FALSE(MemoryChecker::alive_objects() > 0, "wrong effect from inplace_merge: number of ctors calls > num of dtors calls");
+
std::cout << done() << std::endl;
return 0;
}