summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2018-12-20 16:41:50 +0100
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2018-12-31 00:58:32 +0100
commit20d15d9dc47fcfbf1f02689cc4c882115abe507f (patch)
treedeadb8a32a52896b0b831cc1d0d45f75ccb6dbba /test
parent167f751701d838538c656b9ae2b566e005489f6c (diff)
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>
Diffstat (limited to 'test')
-rw-r--r--test/list.cpp54
-rw-r--r--test/meson.build5
2 files changed, 59 insertions, 0 deletions
diff --git a/test/list.cpp b/test/list.cpp
new file mode 100644
index 00000000..39b8a41d
--- /dev/null
+++ b/test/list.cpp
@@ -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)
diff --git a/test/meson.build b/test/meson.build
index da0aea96..a74629f8 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -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)