summaryrefslogtreecommitdiff
path: root/test/fence.cpp
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2021-12-13 15:46:59 +0100
committerJacopo Mondi <jacopo@jmondi.org>2021-12-13 19:31:19 +0100
commit5c4f9e3ae3f06d97453e18230dc55caacb0ea6fe (patch)
treed8a3a38d9242a763b4e5dbe7a9aad152cd5d1cf5 /test/fence.cpp
parenta3122eeceafae4f37346ec40f24d20706473e962 (diff)
test: fence: Signal fence once
The unit test associates a fence with a framebuffer and makes sure the fence is correctly signalled. Once a fence is correctly signalled, it is released by the core, and the underlying file descriptor closed. The unit test however tries to write on the fence file descriptor every time the designated Request is queued, an error which is now visible as the return value of the fence signalling write() is checked. Fix that by associating a fence with a framebuffer only once. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Diffstat (limited to 'test/fence.cpp')
-rw-r--r--test/fence.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/test/fence.cpp b/test/fence.cpp
index d2865398..524db2a1 100644
--- a/test/fence.cpp
+++ b/test/fence.cpp
@@ -56,6 +56,7 @@ private:
Stream *stream_;
bool expectedCompletionResult_ = true;
+ bool setFence_ = true;
unsigned int completedRequest_;
@@ -193,7 +194,7 @@ void FenceTest::requestRequeue(Request *request)
request->reuse();
- if (cookie == signalledRequestId_) {
+ if (cookie == signalledRequestId_ && setFence_) {
/*
* The second time this request is queued add a fence to it.
*
@@ -257,6 +258,7 @@ void FenceTest::signalFence()
if (ret != sizeof(value))
cerr << "Failed to signal fence" << endl;
+ setFence_ = false;
dispatcher_->processEvents();
}
@@ -316,7 +318,7 @@ int FenceTest::run()
Timer timer;
timer.start(1000);
while (timer.isRunning() && expectedCompletionResult_) {
- if (completedRequest_ == signalledRequestId_)
+ if (completedRequest_ == signalledRequestId_ && setFence_)
/*
* signalledRequestId_ has just completed and it has
* been re-queued with a fence. Start the timer to