+
+TEST(PCQ, EmptyFull) {
+ folly::ProducerConsumerQueue<int> queue(3);
+ EXPECT_TRUE(queue.isEmpty());
+ EXPECT_FALSE(queue.isFull());
+
+ EXPECT_TRUE(queue.write(1));
+ EXPECT_FALSE(queue.isEmpty());
+ EXPECT_FALSE(queue.isFull());
+
+ EXPECT_TRUE(queue.write(2));
+ EXPECT_FALSE(queue.isEmpty());
+ EXPECT_TRUE(queue.isFull()); // Tricky: full after 2 writes, not 3.
+
+ EXPECT_FALSE(queue.write(3));
+ EXPECT_EQ(queue.sizeGuess(), 2);
+}
+
+TEST(PCQ, Capacity) {
+ folly::ProducerConsumerQueue<int> queue(3);
+ EXPECT_EQ(queue.capacity(), 2); // PCQ max size is buffer size - 1.
+}