1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "config.h" 6#include "wtf/DoubleBufferedDeque.h" 7 8#include <gtest/gtest.h> 9 10namespace { 11 12typedef testing::Test DoubleBufferedDequeTest; 13 14TEST(DoubleBufferedDequeTest, TestIsEmpty) 15{ 16 DoubleBufferedDeque<int> queue; 17 18 EXPECT_TRUE(queue.isEmpty()); 19 queue.append(1); 20 EXPECT_FALSE(queue.isEmpty()); 21} 22 23TEST(DoubleBufferedDequeTest, TestIsEmptyAfterSwapBuffers) 24{ 25 DoubleBufferedDeque<int> queue; 26 queue.append(1); 27 28 queue.swapBuffers(); 29 EXPECT_TRUE(queue.isEmpty()); 30} 31 32TEST(DoubleBufferedDequeTest, TestDoubleBuffering) 33{ 34 DoubleBufferedDeque<int> queue; 35 queue.append(1); 36 queue.append(10); 37 queue.append(100); 38 39 { 40 Deque<int>& deque = queue.swapBuffers(); 41 EXPECT_EQ(1, deque.takeFirst()); 42 EXPECT_EQ(10, deque.takeFirst()); 43 EXPECT_EQ(100, deque.takeFirst()); 44 } 45 queue.append(2); 46 47 EXPECT_EQ(2, queue.swapBuffers().takeFirst()); 48 queue.append(3); 49 50 EXPECT_EQ(3, queue.swapBuffers().takeFirst()); 51} 52 53} // namespace 54