Fix some incorrect std::function tests
authorEric Fiselier <eric@efcs.ca>
Sat, 8 Jun 2019 00:45:45 +0000 (00:45 +0000)
committerEric Fiselier <eric@efcs.ca>
Sat, 8 Jun 2019 00:45:45 +0000 (00:45 +0000)
llvm-svn: 362861

libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_F.pass.cpp

index 6fa0d6f..bcc93ad 100644 (file)
@@ -64,7 +64,9 @@ void test_FreeFunction(AllocType& alloc)
     FuncType* target = &FreeFunction;
     assert(globalMemCounter.checkOutstandingNewEq(0));
     std::function<FuncType> f2(std::allocator_arg, alloc, target);
-    assert(globalMemCounter.checkOutstandingNewEq(0));
+    // The allocator may not fit in the small object buffer, if we allocated
+    // check it was done via the allocator.
+    assert(globalMemCounter.checkOutstandingNewEq(test_alloc_base::alloc_count));
     assert(f2.template target<FuncType*>());
     assert(*f2.template target<FuncType*>() == target);
     assert(f2.template target<FuncType>() == 0);
@@ -81,7 +83,7 @@ void test_MemFunClass(AllocType& alloc)
     TargetType target = &MemFunClass::foo;
     assert(globalMemCounter.checkOutstandingNewEq(0));
     std::function<FuncType> f2(std::allocator_arg, alloc, target);
-    assert(globalMemCounter.checkOutstandingNewEq(0));
+    assert(globalMemCounter.checkOutstandingNewEq(test_alloc_base::alloc_count));
     assert(f2.template target<TargetType>());
     assert(*f2.template target<TargetType>() == target);
     assert(f2.template target<FuncType*>() == 0);