frame_reader_unittest.cc revision c55a96383497a772a307b346368133960b02ad03
1c55a96383497a772a307b346368133960b02ad03Eric Laurent/* 2c55a96383497a772a307b346368133960b02ad03Eric Laurent * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3c55a96383497a772a307b346368133960b02ad03Eric Laurent * 4c55a96383497a772a307b346368133960b02ad03Eric Laurent * Use of this source code is governed by a BSD-style license 5c55a96383497a772a307b346368133960b02ad03Eric Laurent * that can be found in the LICENSE file in the root of the source 6c55a96383497a772a307b346368133960b02ad03Eric Laurent * tree. An additional intellectual property rights grant can be found 7c55a96383497a772a307b346368133960b02ad03Eric Laurent * in the file PATENTS. All contributing project authors may 8c55a96383497a772a307b346368133960b02ad03Eric Laurent * be found in the AUTHORS file in the root of the source tree. 9c55a96383497a772a307b346368133960b02ad03Eric Laurent */ 10c55a96383497a772a307b346368133960b02ad03Eric Laurent 11c55a96383497a772a307b346368133960b02ad03Eric Laurent#include "testsupport/frame_reader.h" 12c55a96383497a772a307b346368133960b02ad03Eric Laurent 13c55a96383497a772a307b346368133960b02ad03Eric Laurent#include "gtest/gtest.h" 14c55a96383497a772a307b346368133960b02ad03Eric Laurent#include "testsupport/fileutils.h" 15c55a96383497a772a307b346368133960b02ad03Eric Laurent 16c55a96383497a772a307b346368133960b02ad03Eric Laurentnamespace webrtc { 17c55a96383497a772a307b346368133960b02ad03Eric Laurentnamespace test { 18c55a96383497a772a307b346368133960b02ad03Eric Laurent 19c55a96383497a772a307b346368133960b02ad03Eric Laurentconst std::string kInputFilename = "temp_inputfile.tmp"; 20c55a96383497a772a307b346368133960b02ad03Eric Laurentconst std::string kInputFileContents = "baz"; 21c55a96383497a772a307b346368133960b02ad03Eric Laurent// Setting the kFrameLength value to a value much larger than the 22c55a96383497a772a307b346368133960b02ad03Eric Laurent// file to test causes the ReadFrame test to fail on Windows. 23c55a96383497a772a307b346368133960b02ad03Eric Laurentconst int kFrameLength = 1000; 24c55a96383497a772a307b346368133960b02ad03Eric Laurent 25c55a96383497a772a307b346368133960b02ad03Eric Laurentclass FrameReaderTest: public testing::Test { 26c55a96383497a772a307b346368133960b02ad03Eric Laurent protected: 27c55a96383497a772a307b346368133960b02ad03Eric Laurent FrameReaderTest() {} 28c55a96383497a772a307b346368133960b02ad03Eric Laurent virtual ~FrameReaderTest() {} 29c55a96383497a772a307b346368133960b02ad03Eric Laurent void SetUp() { 30c55a96383497a772a307b346368133960b02ad03Eric Laurent // Cleanup any previous dummy input file. 31c55a96383497a772a307b346368133960b02ad03Eric Laurent std::remove(kInputFilename.c_str()); 32c55a96383497a772a307b346368133960b02ad03Eric Laurent 33c55a96383497a772a307b346368133960b02ad03Eric Laurent // Create a dummy input file. 34c55a96383497a772a307b346368133960b02ad03Eric Laurent FILE* dummy = fopen(kInputFilename.c_str(), "wb"); 35c55a96383497a772a307b346368133960b02ad03Eric Laurent fprintf(dummy, "%s", kInputFileContents.c_str()); 36c55a96383497a772a307b346368133960b02ad03Eric Laurent fclose(dummy); 37c55a96383497a772a307b346368133960b02ad03Eric Laurent 38c55a96383497a772a307b346368133960b02ad03Eric Laurent frame_reader_ = new FrameReaderImpl(kInputFilename, kFrameLength); 39c55a96383497a772a307b346368133960b02ad03Eric Laurent ASSERT_TRUE(frame_reader_->Init()); 40c55a96383497a772a307b346368133960b02ad03Eric Laurent } 41c55a96383497a772a307b346368133960b02ad03Eric Laurent void TearDown() { 42c55a96383497a772a307b346368133960b02ad03Eric Laurent delete frame_reader_; 43c55a96383497a772a307b346368133960b02ad03Eric Laurent // Cleanup the dummy input file. 44c55a96383497a772a307b346368133960b02ad03Eric Laurent std::remove(kInputFilename.c_str()); 45c55a96383497a772a307b346368133960b02ad03Eric Laurent } 46c55a96383497a772a307b346368133960b02ad03Eric Laurent FrameReader* frame_reader_; 47c55a96383497a772a307b346368133960b02ad03Eric Laurent}; 48c55a96383497a772a307b346368133960b02ad03Eric Laurent 49c55a96383497a772a307b346368133960b02ad03Eric LaurentTEST_F(FrameReaderTest, InitSuccess) { 50c55a96383497a772a307b346368133960b02ad03Eric Laurent FrameReaderImpl frame_reader(kInputFilename, kFrameLength); 51c55a96383497a772a307b346368133960b02ad03Eric Laurent ASSERT_TRUE(frame_reader.Init()); 52c55a96383497a772a307b346368133960b02ad03Eric Laurent ASSERT_EQ(kFrameLength, frame_reader.FrameLength()); 53c55a96383497a772a307b346368133960b02ad03Eric Laurent ASSERT_EQ(0, frame_reader.NumberOfFrames()); 54c55a96383497a772a307b346368133960b02ad03Eric Laurent} 55c55a96383497a772a307b346368133960b02ad03Eric Laurent 56c55a96383497a772a307b346368133960b02ad03Eric LaurentTEST_F(FrameReaderTest, ReadFrame) { 57c55a96383497a772a307b346368133960b02ad03Eric Laurent WebRtc_UWord8 buffer[3]; 58c55a96383497a772a307b346368133960b02ad03Eric Laurent bool result = frame_reader_->ReadFrame(buffer); 59c55a96383497a772a307b346368133960b02ad03Eric Laurent ASSERT_FALSE(result); // No more files to read. 60c55a96383497a772a307b346368133960b02ad03Eric Laurent ASSERT_EQ(kInputFileContents[0], buffer[0]); 61c55a96383497a772a307b346368133960b02ad03Eric Laurent ASSERT_EQ(kInputFileContents[1], buffer[1]); 62c55a96383497a772a307b346368133960b02ad03Eric Laurent ASSERT_EQ(kInputFileContents[2], buffer[2]); 63c55a96383497a772a307b346368133960b02ad03Eric Laurent} 64c55a96383497a772a307b346368133960b02ad03Eric Laurent 65c55a96383497a772a307b346368133960b02ad03Eric LaurentTEST_F(FrameReaderTest, ReadFrameUninitialized) { 66c55a96383497a772a307b346368133960b02ad03Eric Laurent WebRtc_UWord8 buffer[3]; 67c55a96383497a772a307b346368133960b02ad03Eric Laurent FrameReaderImpl file_reader(kInputFilename, kFrameLength); 68c55a96383497a772a307b346368133960b02ad03Eric Laurent ASSERT_FALSE(file_reader.ReadFrame(buffer)); 69c55a96383497a772a307b346368133960b02ad03Eric Laurent} 70c55a96383497a772a307b346368133960b02ad03Eric Laurent 71c55a96383497a772a307b346368133960b02ad03Eric Laurent} // namespace test 72c55a96383497a772a307b346368133960b02ad03Eric Laurent} // namespace webrtc 73