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