| /* SPDX-License-Identifier: GPL-2.0-or-later */ |
| /* |
| * Copyright (C) 2019, Google Inc. |
| * |
| * libcamera Camera API tests |
| */ |
| |
| #include <iostream> |
| |
| #include "camera_test.h" |
| #include "test.h" |
| |
| using namespace libcamera; |
| using namespace std; |
| |
| CameraTest::CameraTest(const char *name, bool isolate) |
| { |
| cm_ = new CameraManager(); |
| |
| if (isolate) |
| setenv("LIBCAMERA_IPA_FORCE_ISOLATION", "1", 1); |
| |
| if (cm_->start()) { |
| cerr << "Failed to start camera manager" << endl; |
| status_ = TestFail; |
| return; |
| } |
| |
| camera_ = cm_->get(name); |
| if (!camera_) { |
| cerr << "Can not find '" << name << "' camera" << endl; |
| status_ = TestSkip; |
| return; |
| } |
| |
| /* Sanity check that the camera has streams. */ |
| if (camera_->streams().empty()) { |
| cerr << "Camera has no stream" << endl; |
| status_ = TestFail; |
| return; |
| } |
| |
| status_ = TestPass; |
| } |
| |
| CameraTest::~CameraTest() |
| { |
| if (camera_) { |
| camera_->release(); |
| camera_.reset(); |
| } |
| |
| cm_->stop(); |
| delete cm_; |
| } |