On 6/9/24 23:41, Muhammad Usama Anjum wrote:
Conform the layout, informational and status messages to TAP. No functional change is intended other than the layout of output messages. Use kselftest_harness.h to conform to TAP as the number of tests depend on the available options at build time. The kselftest_harness makes the
How does converting to kselftest_harness help with available options ay build time? Can you explain?
I am not seeing any value in converting this test to the harness? I want to see a better justification.
test easy to convert and presents better maintainability.
Signed-off-by: Muhammad Usama Anjum usama.anjum@collabora.com
Changes since v1:
- Update commit message to include that kselftest_harness has been used to conform to TAP and why
.../selftests/vDSO/vdso_test_clock_getres.c | 68 +++++++++---------- 1 file changed, 33 insertions(+), 35 deletions(-)
diff --git a/tools/testing/selftests/vDSO/vdso_test_clock_getres.c b/tools/testing/selftests/vDSO/vdso_test_clock_getres.c index 38d46a8bf7cba..c1ede40521f05 100644 --- a/tools/testing/selftests/vDSO/vdso_test_clock_getres.c +++ b/tools/testing/selftests/vDSO/vdso_test_clock_getres.c @@ -25,7 +25,7 @@ #include <unistd.h> #include <sys/syscall.h> -#include "../kselftest.h" +#include "../kselftest_harness.h" static long syscall_clock_getres(clockid_t _clkid, struct timespec *_ts) { @@ -54,18 +54,8 @@ const char *vdso_clock_name[12] = { /*
- This function calls clock_getres in vdso and by system call
- with different values for clock_id.
- Example of output:
- clock_id: CLOCK_REALTIME [PASS]
- clock_id: CLOCK_BOOTTIME [PASS]
- clock_id: CLOCK_TAI [PASS]
- clock_id: CLOCK_REALTIME_COARSE [PASS]
- clock_id: CLOCK_MONOTONIC [PASS]
- clock_id: CLOCK_MONOTONIC_RAW [PASS]
*/
- clock_id: CLOCK_MONOTONIC_COARSE [PASS]
-static inline int vdso_test_clock(unsigned int clock_id) +static inline void vdso_test_clock(struct __test_metadata *_metadata, unsigned int clock_id) { struct timespec x, y; @@ -73,52 +63,60 @@ static inline int vdso_test_clock(unsigned int clock_id) clock_getres(clock_id, &x); syscall_clock_getres(clock_id, &y);
- if ((x.tv_sec != y.tv_sec) || (x.tv_nsec != y.tv_nsec)) {
printf(" [FAIL]\n");
return KSFT_FAIL;
- }
- printf(" [PASS]\n");
- return KSFT_PASS;
- ASSERT_EQ(0, ((x.tv_sec != y.tv_sec) || (x.tv_nsec != y.tv_nsec))); }
-int main(int argc, char **argv) -{
- int ret = 0;
- #if _POSIX_TIMERS > 0
#ifdef CLOCK_REALTIME
- ret += vdso_test_clock(CLOCK_REALTIME);
+TEST(clock_realtime) +{
- vdso_test_clock(_metadata, CLOCK_REALTIME);
+} #endif #ifdef CLOCK_BOOTTIME
- ret += vdso_test_clock(CLOCK_BOOTTIME);
+TEST(clock_boottime) +{
- vdso_test_clock(_metadata, CLOCK_BOOTTIME);
+} #endif #ifdef CLOCK_TAI
- ret += vdso_test_clock(CLOCK_TAI);
+TEST(clock_tai) +{
- vdso_test_clock(_metadata, CLOCK_TAI);
+} #endif #ifdef CLOCK_REALTIME_COARSE
- ret += vdso_test_clock(CLOCK_REALTIME_COARSE);
+TEST(clock_realtime_coarse) +{
- vdso_test_clock(_metadata, CLOCK_REALTIME_COARSE);
+} #endif #ifdef CLOCK_MONOTONIC
- ret += vdso_test_clock(CLOCK_MONOTONIC);
+TEST(clock_monotonic) +{
- vdso_test_clock(_metadata, CLOCK_MONOTONIC);
+} #endif #ifdef CLOCK_MONOTONIC_RAW
- ret += vdso_test_clock(CLOCK_MONOTONIC_RAW);
+TEST(clock_monotonic_raw) +{
- vdso_test_clock(_metadata, CLOCK_MONOTONIC_RAW);
+} #endif #ifdef CLOCK_MONOTONIC_COARSE
- ret += vdso_test_clock(CLOCK_MONOTONIC_COARSE);
+TEST(clock_monotonic_coarse) +{
- vdso_test_clock(_metadata, CLOCK_MONOTONIC_COARSE);
+} #endif -#endif
- if (ret > 0)
return KSFT_FAIL;
+#endif /* _POSIX_TIMERS > 0 */
- return KSFT_PASS;
-} +TEST_HARNESS_MAIN
thanks, -- Shuah