blob: 6a8fca00e5521750134e1439ccbd5a3fa754d9ac [file] [log] [blame]
// Copyright 2019 The Fuchsia 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 "imx227-test.h"
#include "imx227.h"
#include <ddk/debug.h>
#include <fbl/alloc_checker.h>
namespace camera {
namespace {
constexpr uint32_t kValidSensorMode = 0;
}
Imx227Device* g_sensor_device;
void Imx227DeviceTester::SetUp() {
ASSERT_NOT_NULL(g_sensor_device);
EXPECT_EQ(ZX_OK, g_sensor_device->CameraSensorInit());
}
void Imx227DeviceTester::TearDown() {
g_sensor_device->CameraSensorDeInit();
}
TEST_F(Imx227DeviceTester, TestSetMode) {
EXPECT_EQ(ZX_OK, g_sensor_device->CameraSensorSetMode(kValidSensorMode));
EXPECT_EQ(ZX_ERR_INVALID_ARGS, g_sensor_device->CameraSensorSetMode(0xFF));
}
TEST_F(Imx227DeviceTester, TestStreaming) {
EXPECT_EQ(ZX_OK, g_sensor_device->CameraSensorStartStreaming());
// TODO(braval): Figure out a way to validate starting & stopping of streaming
EXPECT_EQ(ZX_OK, g_sensor_device->CameraSensorStopStreaming());
}
TEST_F(Imx227DeviceTester, TestDeInitState) {
TearDown();
EXPECT_NE(ZX_OK, g_sensor_device->CameraSensorSetMode(kValidSensorMode));
EXPECT_NE(ZX_OK, g_sensor_device->CameraSensorStartStreaming());
EXPECT_NE(ZX_OK, g_sensor_device->CameraSensorStopStreaming());
}
TEST_F(Imx227DeviceTester, TestStreamingOff) {
EXPECT_NE(ZX_OK, g_sensor_device->CameraSensorStopStreaming());
}
TEST_F(Imx227DeviceTester, TestStreamingOn) {
EXPECT_EQ(ZX_OK, g_sensor_device->CameraSensorStartStreaming());
EXPECT_NE(ZX_OK, g_sensor_device->CameraSensorStartStreaming());
}
zx_status_t Imx227DeviceTester::RunTests(Imx227Device* sensor) {
g_sensor_device = sensor;
const int kArgc = 1;
const char* argv[kArgc] = {"imx227-test"};
return RUN_ALL_TESTS(kArgc, const_cast<char**>(argv));
}
} // namespace camera