Fix the test
This commit is contained in:
parent
6ac903ac8f
commit
99bce82ba4
1 changed files with 25 additions and 18 deletions
|
|
@ -150,47 +150,54 @@ TEST_CASE("[Buffer] Buffer counter")
|
||||||
{
|
{
|
||||||
sfz::BufferCounter& counter = sfz::Buffer<float>::counter();
|
sfz::BufferCounter& counter = sfz::Buffer<float>::counter();
|
||||||
|
|
||||||
REQUIRE(counter.getNumBuffers() == 0);
|
// handle the eventuality that the buffer counter does not start at zero
|
||||||
REQUIRE(counter.getTotalBytes() == 0);
|
const int initialNumBuffers = counter.getNumBuffers();
|
||||||
|
const int initialTotalBytes = counter.getTotalBytes();
|
||||||
|
auto haveNumBuffers = [&](int n) -> bool {
|
||||||
|
return n == counter.getNumBuffers() - initialNumBuffers;
|
||||||
|
};
|
||||||
|
auto haveTotalAllocation = [&](int n) -> bool {
|
||||||
|
return n * static_cast<int>(sizeof(float)) == counter.getTotalBytes() - initialTotalBytes;
|
||||||
|
};
|
||||||
|
|
||||||
// create an empty buffer
|
// create an empty buffer
|
||||||
sfz::Buffer<float> b1;
|
sfz::Buffer<float> b1;
|
||||||
REQUIRE(counter.getNumBuffers() == 0);
|
REQUIRE(haveNumBuffers(0));
|
||||||
REQUIRE(counter.getTotalBytes() == 0);
|
REQUIRE(haveTotalAllocation(0));
|
||||||
|
|
||||||
// clear an empty buffer
|
// clear an empty buffer
|
||||||
b1.clear();
|
b1.clear();
|
||||||
REQUIRE(counter.getNumBuffers() == 0);
|
REQUIRE(haveNumBuffers(0));
|
||||||
REQUIRE(counter.getTotalBytes() == 0);
|
REQUIRE(haveTotalAllocation(0));
|
||||||
|
|
||||||
// create a sized buffer
|
// create a sized buffer
|
||||||
sfz::Buffer<float> b2(5);
|
sfz::Buffer<float> b2(5);
|
||||||
REQUIRE(counter.getNumBuffers() == 1);
|
REQUIRE(haveNumBuffers(1));
|
||||||
REQUIRE(counter.getTotalBytes() == (b2.allocationSize()) * sizeof(float));
|
REQUIRE(haveTotalAllocation(b2.allocationSize()));
|
||||||
|
|
||||||
// resize an empty buffer
|
// resize an empty buffer
|
||||||
b1.resize(3);
|
b1.resize(3);
|
||||||
REQUIRE(counter.getNumBuffers() == 2);
|
REQUIRE(haveNumBuffers(2));
|
||||||
REQUIRE(counter.getTotalBytes() == (b1.allocationSize() + b2.allocationSize()) * sizeof(float));
|
REQUIRE(haveTotalAllocation(b1.allocationSize() + b2.allocationSize()));
|
||||||
|
|
||||||
// resize a non-empty buffer
|
// resize a non-empty buffer
|
||||||
b1.resize(7);
|
b1.resize(7);
|
||||||
REQUIRE(counter.getNumBuffers() == 2);
|
REQUIRE(haveNumBuffers(2));
|
||||||
REQUIRE(counter.getTotalBytes() == (b1.allocationSize() + b2.allocationSize()) * sizeof(float));
|
REQUIRE(haveTotalAllocation(b1.allocationSize() + b2.allocationSize()));
|
||||||
|
|
||||||
// clear a non-empty buffer
|
// clear a non-empty buffer
|
||||||
b2.clear();
|
b2.clear();
|
||||||
REQUIRE(counter.getNumBuffers() == 1);
|
REQUIRE(haveNumBuffers(1));
|
||||||
REQUIRE(counter.getTotalBytes() == (b1.allocationSize()) * sizeof(float));
|
REQUIRE(haveTotalAllocation(b1.allocationSize()));
|
||||||
|
|
||||||
// move an empty buffer into a non-empty one
|
// move an empty buffer into a non-empty one
|
||||||
b1 = std::move(b2);
|
b1 = std::move(b2);
|
||||||
REQUIRE(counter.getNumBuffers() == 0);
|
REQUIRE(haveNumBuffers(0));
|
||||||
REQUIRE(counter.getTotalBytes() == 0);
|
REQUIRE(haveTotalAllocation(0));
|
||||||
|
|
||||||
// move a non-empty buffer into an empty one
|
// move a non-empty buffer into an empty one
|
||||||
b1.resize(3);
|
b1.resize(3);
|
||||||
b2 = std::move(b1);
|
b2 = std::move(b1);
|
||||||
REQUIRE(counter.getNumBuffers() == 1);
|
REQUIRE(haveNumBuffers(1));
|
||||||
REQUIRE(counter.getTotalBytes() == (b2.allocationSize()) * sizeof(float));
|
REQUIRE(haveTotalAllocation(b2.allocationSize()));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue