blob: fb6de0d18e1e62dcc9371dbfcc1e703c1866f699 [file] [log] [blame]
#include <bufferhub/BufferHubIdGenerator.h>
#include <gtest/gtest.h>
namespace android {
namespace frameworks {
namespace bufferhub {
namespace V1_0 {
namespace implementation {
namespace {
class BufferHubIdGeneratorTest : public testing::Test {
protected:
BufferHubIdGenerator* mIdGenerator = &BufferHubIdGenerator::getInstance();
};
TEST_F(BufferHubIdGeneratorTest, TestGenerateAndFreeID) {
int id = mIdGenerator->getId();
EXPECT_GE(id, 0);
mIdGenerator->freeId(id);
}
TEST_F(BufferHubIdGeneratorTest, TestGenerateUniqueIncrementalID) {
// 10 IDs should not overflow the UniqueIdGenerator to cause a roll back to start, so the
// resulting IDs should still keep incresing.
const int kTestSize = 10;
int ids[kTestSize];
for (int i = 0; i < kTestSize; ++i) {
ids[i] = mIdGenerator->getId();
EXPECT_GE(ids[i], 0);
if (i >= 1) {
EXPECT_GT(ids[i], ids[i - 1]);
}
}
for (int i = 0; i < kTestSize; ++i) {
mIdGenerator->freeId(ids[i]);
}
}
} // namespace
} // namespace implementation
} // namespace V1_0
} // namespace bufferhub
} // namespace frameworks
} // namespace android