tests: add test to list all cameras in the system

Add simple test which lists all cameras detected in the system. The test
fails if no camera can be found.

Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
Niklas Söderlund 2018-12-20 16:41:50 +01:00
parent 167f751701
commit 20d15d9dc4
2 changed files with 59 additions and 0 deletions

54
test/list.cpp Normal file
View file

@ -0,0 +1,54 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright (C) 2018, Google Inc.
*
* list.cpp - camera list tests
*/
#include <iostream>
#include <libcamera/camera_manager.h>
#include "test.h"
using namespace std;
using namespace libcamera;
class ListTest : public Test
{
protected:
int init()
{
cm = new CameraManager();
if (!cm)
return -ENOMEM;
cm->start();
return 0;
}
int run()
{
unsigned int count = 0;
for (auto name : cm->list()) {
cout << "- " << name << endl;
count++;
}
return count ? 0 : -ENODEV;
}
void cleanup()
{
cm->stop();
delete cm;
}
private:
CameraManager *cm;
};
TEST_REGISTER(ListTest)

View file

@ -8,4 +8,9 @@ test_init = executable('test_init', 'init.cpp',
link_with : libcamera,
include_directories : libcamera_includes)
list = executable('list', 'list.cpp',
link_with : [libcamera, libtest],
include_directories : libcamera_includes)
test('Initialisation test', test_init)
test('List Camera API tests', list)