[PATCH 3/3] selftests: sync: add test that closes the fd before fence signal
Gustavo Padovan
gustavo at padovan.org
Sat Jul 29 15:22:17 UTC 2017
From: Gustavo Padovan <gustavo.padovan at collabora.com>
We found this bug in the sw_sync so adding a test case to prevent it to
happen in the future.
Cc: Shuah Khan <shuahkh at osg.samsung.com>
Cc: linux-kselftest at vger.kernel.org
Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.com>
---
To be applied after the TAP13 convertion patches.
---
tools/testing/selftests/sync/sync_fence.c | 23 +++++++++++++++++++++++
tools/testing/selftests/sync/sync_test.c | 1 +
tools/testing/selftests/sync/synctest.h | 1 +
3 files changed, 25 insertions(+)
diff --git a/tools/testing/selftests/sync/sync_fence.c b/tools/testing/selftests/sync/sync_fence.c
index 13f1752..70cfa61 100644
--- a/tools/testing/selftests/sync/sync_fence.c
+++ b/tools/testing/selftests/sync/sync_fence.c
@@ -29,6 +29,29 @@
#include "sw_sync.h"
#include "synctest.h"
+int test_close_fence_fd_before_inc(void)
+{
+ int fence, valid, ret;
+ int timeline = sw_sync_timeline_create();
+
+ valid = sw_sync_timeline_is_valid(timeline);
+ ASSERT(valid, "Failure allocating timeline\n");
+
+ fence = sw_sync_fence_create(timeline, "allocFence", 1);
+ valid = sw_sync_fence_is_valid(fence);
+ ASSERT(valid, "Failure allocating fence\n");
+
+ sw_sync_fence_destroy(fence);
+
+ /* Advance timeline from 0 -> 1 */
+ ret = sw_sync_timeline_inc(timeline, 1);
+ ASSERT(ret == 0, "Failure advancing timeline\n");
+
+ sw_sync_timeline_destroy(timeline);
+
+ return 0;
+}
+
int test_fence_one_timeline_wait(void)
{
int fence, valid, ret;
diff --git a/tools/testing/selftests/sync/sync_test.c b/tools/testing/selftests/sync/sync_test.c
index 7f79382..2f73ace 100644
--- a/tools/testing/selftests/sync/sync_test.c
+++ b/tools/testing/selftests/sync/sync_test.c
@@ -95,6 +95,7 @@ int main(void)
RUN_TEST(test_alloc_fence);
RUN_TEST(test_alloc_fence_negative);
+ RUN_TEST(test_close_fence_fd_before_inc);
RUN_TEST(test_fence_one_timeline_wait);
RUN_TEST(test_fence_one_timeline_merge);
RUN_TEST(test_fence_merge_same_fence);
diff --git a/tools/testing/selftests/sync/synctest.h b/tools/testing/selftests/sync/synctest.h
index 90a8e53..86a9532 100644
--- a/tools/testing/selftests/sync/synctest.h
+++ b/tools/testing/selftests/sync/synctest.h
@@ -46,6 +46,7 @@ int test_alloc_fence(void);
int test_alloc_fence_negative(void);
/* Fence tests with one timeline */
+int test_close_fence_fd_before_inc(void);
int test_fence_one_timeline_wait(void);
int test_fence_one_timeline_merge(void);
--
2.9.4
More information about the dri-devel
mailing list