summaryrefslogtreecommitdiff
path: root/src/lc-compliance/single_stream.cpp
diff options
context:
space:
mode:
authorNícolas F. R. A. Prado <nfraprado@collabora.com>2021-07-02 09:21:13 -0300
committerJacopo Mondi <jacopo@jmondi.org>2021-07-06 12:40:58 +0200
commitbc871637797ef0fa193a3c64b82389fff4ce3f44 (patch)
treeda350c19961108329d327e794abb437d7eae9527 /src/lc-compliance/single_stream.cpp
parente5c51e1fcf8cf5de6d5bce1da7a2b3d95019f06e (diff)
lc-compliance: Refactor using Googletest
Refactor lc-compliance using Googletest as the test framework. Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src/lc-compliance/single_stream.cpp')
-rw-r--r--src/lc-compliance/single_stream.cpp97
1 files changed, 0 insertions, 97 deletions
diff --git a/src/lc-compliance/single_stream.cpp b/src/lc-compliance/single_stream.cpp
deleted file mode 100644
index 8318b42f..00000000
--- a/src/lc-compliance/single_stream.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/*
- * Copyright (C) 2020, Google Inc.
- *
- * single_stream.cpp - Test a single camera stream
- */
-
-#include <iostream>
-
-#include "simple_capture.h"
-#include "tests.h"
-
-using namespace libcamera;
-
-Results::Result testRequestBalance(std::shared_ptr<Camera> camera,
- StreamRole role, unsigned int startCycles,
- unsigned int numRequests)
-{
- SimpleCaptureBalanced capture(camera);
-
- Results::Result ret = capture.configure(role);
- if (ret.first != Results::Pass)
- return ret;
-
- for (unsigned int starts = 0; starts < startCycles; starts++) {
- ret = capture.capture(numRequests);
- if (ret.first != Results::Pass)
- return ret;
- }
-
- return { Results::Pass, "Balanced capture of " +
- std::to_string(numRequests) + " requests with " +
- std::to_string(startCycles) + " start cycles" };
-}
-
-Results::Result testRequestUnbalance(std::shared_ptr<Camera> camera,
- StreamRole role, unsigned int numRequests)
-{
- SimpleCaptureUnbalanced capture(camera);
-
- Results::Result ret = capture.configure(role);
- if (ret.first != Results::Pass)
- return ret;
-
- return capture.capture(numRequests);
-}
-
-Results testSingleStream(std::shared_ptr<Camera> camera)
-{
- static const std::vector<std::pair<std::string, StreamRole>> roles = {
- { "raw", Raw },
- { "still", StillCapture },
- { "video", VideoRecording },
- { "viewfinder", Viewfinder },
- };
- static const std::vector<unsigned int> numRequests = { 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 };
-
- Results results(numRequests.size() * roles.size() * 3);
-
- for (const auto &role : roles) {
- std::cout << "= Test role " << role.first << std::endl;
- /*
- * Test single capture cycles
- *
- * Makes sure the camera completes the exact number of requests queued.
- * Example failure is a camera that needs N+M requests queued to
- * complete N requests to the application.
- */
- std::cout << "* Test single capture cycles" << std::endl;
- for (unsigned int num : numRequests)
- results.add(testRequestBalance(camera, role.second, 1, num));
-
- /*
- * Test multiple start/stop cycles
- *
- * Makes sure the camera supports multiple start/stop cycles.
- * Example failure is a camera that does not clean up correctly in its
- * error path but is only tested by single-capture applications.
- */
- std::cout << "* Test multiple start/stop cycles" << std::endl;
- for (unsigned int num : numRequests)
- results.add(testRequestBalance(camera, role.second, 3, num));
-
- /*
- * Test unbalanced stop
- *
- * Makes sure the camera supports a stop with requests queued.
- * Example failure is a camera that does not handle cancelation
- * of buffers coming back from the video device while stopping.
- */
- std::cout << "* Test unbalanced stop" << std::endl;
- for (unsigned int num : numRequests)
- results.add(testRequestUnbalance(camera, role.second, num));
- }
-
- return results;
-}