blob: 43c2cdd41d6588b54b113d801319e5391184085b [file] [log] [blame]
/*
* Copyright 2017 The Chromium OS 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 "hal/usb/image_processor.h"
#include <sys/mman.h>
#include <base/at_exit.h>
#include <gtest/gtest.h>
#include "hal/usb/frame_buffer.h"
namespace cros {
namespace tests {
class ImageProcessorTest : public ::testing::Test {
public:
ImageProcessorTest() = default;
ImageProcessorTest(const ImageProcessorTest&) = delete;
ImageProcessorTest& operator=(const ImageProcessorTest&) = delete;
};
TEST_F(ImageProcessorTest, GetConvertedSize) {
std::unique_ptr<SharedFrameBuffer> frame(new SharedFrameBuffer(0));
std::unique_ptr<ImageProcessor> image_processor(new ImageProcessor());
// Size should be 0 if format, width, and height are not set up correctly.
EXPECT_EQ(image_processor->GetConvertedSize(*frame.get()), 0);
frame->SetFourcc(V4L2_PIX_FMT_YUV420);
EXPECT_EQ(image_processor->GetConvertedSize(*frame.get()), 0);
frame->SetWidth(1280);
EXPECT_EQ(image_processor->GetConvertedSize(*frame.get()), 0);
frame->SetHeight(720);
EXPECT_EQ(image_processor->GetConvertedSize(*frame.get()), 1280 * 720 * 1.5);
}
} // namespace tests
} // namespace cros
int main(int argc, char** argv) {
base::AtExitManager exit_manager;
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}