// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "flutter/sky/engine/wtf/DoubleBufferedDeque.h" #include namespace { typedef testing::Test DoubleBufferedDequeTest; TEST(DoubleBufferedDequeTest, TestIsEmpty) { DoubleBufferedDeque queue; EXPECT_TRUE(queue.isEmpty()); queue.append(1); EXPECT_FALSE(queue.isEmpty()); } TEST(DoubleBufferedDequeTest, TestIsEmptyAfterSwapBuffers) { DoubleBufferedDeque queue; queue.append(1); queue.swapBuffers(); EXPECT_TRUE(queue.isEmpty()); } TEST(DoubleBufferedDequeTest, TestDoubleBuffering) { DoubleBufferedDeque queue; queue.append(1); queue.append(10); queue.append(100); { Deque& deque = queue.swapBuffers(); EXPECT_EQ(1, deque.takeFirst()); EXPECT_EQ(10, deque.takeFirst()); EXPECT_EQ(100, deque.takeFirst()); } queue.append(2); EXPECT_EQ(2, queue.swapBuffers().takeFirst()); queue.append(3); EXPECT_EQ(3, queue.swapBuffers().takeFirst()); } } // namespace