Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1695103 > unrolled thread
| Started by | Shuah Khan <shuahkh@osg.samsung.com> |
|---|---|
| First post | 2017-07-24 23:10 +0200 |
| Last post | 2017-07-28 21:20 +0200 |
| Articles | 4 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH 0/3] selftests: sync test conversion to TAP13 Shuah Khan <shuahkh@osg.samsung.com> - 2017-07-24 23:10 +0200
[PATCH 3/3] selftests: sync: convert to use TAP13 ksft framework Shuah Khan <shuahkh@osg.samsung.com> - 2017-07-24 23:10 +0200
Re: [PATCH 0/3] selftests: sync test conversion to TAP13 Gustavo Padovan <gustavo.padovan@collabora.com> - 2017-07-28 20:30 +0200
Re: [PATCH 0/3] selftests: sync test conversion to TAP13 Shuah Khan <shuah@kernel.org> - 2017-07-28 21:20 +0200
| From | Shuah Khan <shuahkh@osg.samsung.com> |
|---|---|
| Date | 2017-07-24 23:10 +0200 |
| Subject | [PATCH 0/3] selftests: sync test conversion to TAP13 |
| Message-ID | <u6SM2-1Y8-9@gated-at.bofh.it> |
This patch series includes patches to convert sync test to use TAP13
ksft framework. In addition, fix to sync test to differentiate between
unsupported feature and access error when a non-root user runs it.
Updated kfst framework to return counters for sync test to use to print
the final pass or fail summary message. Updated ksft+print_cnts() to
print counters to summarize the test results.
Shuah Khan (3):
selftests: sync: differentiate between sync unsupported and access
errors
selftests: kselftest framework: add API to return pass/fail/* counts
selftests: sync: convert to use TAP13 ksft framework
tools/testing/selftests/kselftest.h | 10 +++++
tools/testing/selftests/sync/sync_test.c | 71 +++++++++++++++++++++-----------
tools/testing/selftests/sync/synctest.h | 3 +-
3 files changed, 58 insertions(+), 26 deletions(-)
--
2.11.0
[toc] | [next] | [standalone]
| From | Shuah Khan <shuahkh@osg.samsung.com> |
|---|---|
| Date | 2017-07-24 23:10 +0200 |
| Subject | [PATCH 3/3] selftests: sync: convert to use TAP13 ksft framework |
| Message-ID | <u6SM3-1Y8-51@gated-at.bofh.it> |
| In reply to | #1695103 |
Convert test to use TAP13 ksft framework. Output after conversion:
TAP version 13
# [RUN] Testing sync framework
ok 1 [RUN] test_alloc_timeline
ok 2 [RUN] test_alloc_fence
ok 3 [RUN] test_alloc_fence_negative
ok 4 [RUN] test_fence_one_timeline_wait
ok 5 [RUN] test_fence_one_timeline_merge
ok 6 [RUN] test_fence_merge_same_fence
ok 7 [RUN] test_fence_multi_timeline_wait
ok 8 [RUN] test_stress_two_threads_shared_timeline
ok 9 [RUN] test_consumer_stress_multi_producer_single_consumer
ok 10 [RUN] test_merge_stress_random_merge
Pass 10 Fail 0 Xfail 0 Xpass 0 Skip 0
1..10
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
---
tools/testing/selftests/sync/sync_test.c | 72 +++++++++++++++++---------------
tools/testing/selftests/sync/synctest.h | 3 +-
2 files changed, 41 insertions(+), 34 deletions(-)
diff --git a/tools/testing/selftests/sync/sync_test.c b/tools/testing/selftests/sync/sync_test.c
index 86ae45ad0347..7f7938263c5c 100644
--- a/tools/testing/selftests/sync/sync_test.c
+++ b/tools/testing/selftests/sync/sync_test.c
@@ -32,76 +32,82 @@
#include <sys/stat.h>
#include <sys/wait.h>
#include <errno.h>
+#include <string.h>
+#include "../kselftest.h"
#include "synctest.h"
static int run_test(int (*test)(void), char *name)
{
int result;
pid_t childpid;
+ int ret;
fflush(stdout);
childpid = fork();
if (childpid) {
waitpid(childpid, &result, 0);
- if (WIFEXITED(result))
- return WEXITSTATUS(result);
+ if (WIFEXITED(result)) {
+ ret = WEXITSTATUS(result);
+ if (!ret)
+ ksft_test_result_pass("[RUN]\t%s\n", name);
+ else
+ ksft_test_result_fail("[RUN]\t%s\n", name);
+ return ret;
+ }
return 1;
}
- printf("[RUN]\tExecuting %s\n", name);
exit(test());
}
-static int sync_api_supported(void)
+static void sync_api_supported(void)
{
struct stat sbuf;
int ret;
ret = stat("/sys/kernel/debug/sync/sw_sync", &sbuf);
if (!ret)
- return 0;
+ return;
- if (errno == ENOENT) {
- printf("SKIP: Sync framework not supported by kernel\n");
- exit(0);
- }
- if (errno == EACCES) {
- printf("SKIP: Run Sync test as root.\n");
- exit(0);
- }
+ if (errno == ENOENT)
+ ksft_exit_skip("Sync framework not supported by kernel\n");
- perror("stat");
- exit(ret);
+ if (errno == EACCES)
+ ksft_exit_skip("Run Sync test as root.\n");
+ ksft_exit_fail_msg("stat failed on /sys/kernel/debug/sync/sw_sync: %s",
+ strerror(errno));
}
int main(void)
{
- int err = 0;
+ int err;
+
+ ksft_print_header();
- if (!sync_api_supported())
- return 0;
+ sync_api_supported();
- printf("[RUN]\tTesting sync framework\n");
+ ksft_print_msg("[RUN]\tTesting sync framework\n");
- err += RUN_TEST(test_alloc_timeline);
- err += RUN_TEST(test_alloc_fence);
- err += RUN_TEST(test_alloc_fence_negative);
+ RUN_TEST(test_alloc_timeline);
+ RUN_TEST(test_alloc_fence);
+ RUN_TEST(test_alloc_fence_negative);
- err += RUN_TEST(test_fence_one_timeline_wait);
- err += RUN_TEST(test_fence_one_timeline_merge);
- err += RUN_TEST(test_fence_merge_same_fence);
- err += RUN_TEST(test_fence_multi_timeline_wait);
- err += RUN_TEST(test_stress_two_threads_shared_timeline);
- err += RUN_TEST(test_consumer_stress_multi_producer_single_consumer);
- err += RUN_TEST(test_merge_stress_random_merge);
+ RUN_TEST(test_fence_one_timeline_wait);
+ RUN_TEST(test_fence_one_timeline_merge);
+ RUN_TEST(test_fence_merge_same_fence);
+ RUN_TEST(test_fence_multi_timeline_wait);
+ RUN_TEST(test_stress_two_threads_shared_timeline);
+ RUN_TEST(test_consumer_stress_multi_producer_single_consumer);
+ RUN_TEST(test_merge_stress_random_merge);
+ err = ksft_get_fail_cnt();
if (err)
- printf("[FAIL]\tsync errors: %d\n", err);
- else
- printf("[OK]\tsync\n");
+ ksft_exit_fail_msg("%d out of %d sync tests failed\n",
+ err, ksft_test_num());
- return !!err;
+ /* need this return to keep gcc happy */
+ return ksft_exit_pass();
}
diff --git a/tools/testing/selftests/sync/synctest.h b/tools/testing/selftests/sync/synctest.h
index e7d1d57dba7a..90a8e5369914 100644
--- a/tools/testing/selftests/sync/synctest.h
+++ b/tools/testing/selftests/sync/synctest.h
@@ -29,10 +29,11 @@
#define SELFTESTS_SYNCTEST_H
#include <stdio.h>
+#include "../kselftest.h"
#define ASSERT(cond, msg) do { \
if (!(cond)) { \
- printf("[ERROR]\t%s", (msg)); \
+ ksft_print_msg("[ERROR]\t%s", (msg)); \
return 1; \
} \
} while (0)
--
2.11.0
[toc] | [prev] | [next] | [standalone]
| From | Gustavo Padovan <gustavo.padovan@collabora.com> |
|---|---|
| Date | 2017-07-28 20:30 +0200 |
| Message-ID | <u8ibn-7kQ-5@gated-at.bofh.it> |
| In reply to | #1695103 |
Hi Shuah, Thank you for your patches. On Mon, 2017-07-24 at 15:07 -0600, Shuah Khan wrote: > This patch series includes patches to convert sync test to use TAP13 > ksft framework. In addition, fix to sync test to differentiate > between > unsupported feature and access error when a non-root user runs it. > > Updated kfst framework to return counters for sync test to use to > print > the final pass or fail summary message. Updated ksft+print_cnts() to > print counters to summarize the test results. > > Shuah Khan (3): > selftests: sync: differentiate between sync unsupported and access > errors > selftests: kselftest framework: add API to return pass/fail/* > counts > selftests: sync: convert to use TAP13 ksft framework > > tools/testing/selftests/kselftest.h | 10 +++++ > tools/testing/selftests/sync/sync_test.c | 71 +++++++++++++++++++++- > ---------- > tools/testing/selftests/sync/synctest.h | 3 +- > 3 files changed, 58 insertions(+), 26 deletions(-) All looks good to me, so for the 3 patches: Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.com> Gustavo -- Gustavo Padovan Collabora Ltd.
[toc] | [prev] | [next] | [standalone]
| From | Shuah Khan <shuah@kernel.org> |
|---|---|
| Date | 2017-07-28 21:20 +0200 |
| Message-ID | <u8iXM-7RN-13@gated-at.bofh.it> |
| In reply to | #1698999 |
On 07/28/2017 12:25 PM, Gustavo Padovan wrote: > Hi Shuah, > > Thank you for your patches. > > On Mon, 2017-07-24 at 15:07 -0600, Shuah Khan wrote: >> This patch series includes patches to convert sync test to use TAP13 >> ksft framework. In addition, fix to sync test to differentiate >> between >> unsupported feature and access error when a non-root user runs it. >> >> Updated kfst framework to return counters for sync test to use to >> print >> the final pass or fail summary message. Updated ksft+print_cnts() to >> print counters to summarize the test results. >> >> Shuah Khan (3): >> selftests: sync: differentiate between sync unsupported and access >> errors >> selftests: kselftest framework: add API to return pass/fail/* >> counts >> selftests: sync: convert to use TAP13 ksft framework >> >> tools/testing/selftests/kselftest.h | 10 +++++ >> tools/testing/selftests/sync/sync_test.c | 71 +++++++++++++++++++++- >> ---------- >> tools/testing/selftests/sync/synctest.h | 3 +- >> 3 files changed, 58 insertions(+), 26 deletions(-) > > All looks good to me, so for the 3 patches: > Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.com> > > Gustavo > Thanks Gustavo. I will get them in to linux-ksefltest next for 4.14-rc1 with your Reviwed-by. -- Shuah
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web