* [bug report] kunit: test: add support for test abort
@ 2020-04-18 17:25 Dan Carpenter
2020-04-20 16:11 ` Brendan Higgins
0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2020-04-18 17:25 UTC (permalink / raw)
To: brendanhiggins; +Cc: linux-kselftest, kunit-dev
Hello Brendan Higgins,
The patch 5f3e06208920: "kunit: test: add support for test abort"
from Sep 23, 2019, leads to the following static checker warning:
lib/kunit/try-catch.c:93 kunit_try_catch_run()
misplaced newline? ' # %s: Unknown error: %d
lib/kunit/try-catch.c
58 void kunit_try_catch_run(struct kunit_try_catch *try_catch, void *context)
59 {
60 DECLARE_COMPLETION_ONSTACK(try_completion);
61 struct kunit *test = try_catch->test;
62 struct task_struct *task_struct;
63 int exit_code, time_remaining;
64
65 try_catch->context = context;
66 try_catch->try_completion = &try_completion;
67 try_catch->try_result = 0;
68 task_struct = kthread_run(kunit_generic_run_threadfn_adapter,
69 try_catch,
70 "kunit_try_catch_thread");
71 if (IS_ERR(task_struct)) {
72 try_catch->catch(try_catch->context);
73 return;
74 }
75
76 time_remaining = wait_for_completion_timeout(&try_completion,
77 kunit_test_timeout());
78 if (time_remaining == 0) {
79 kunit_err(test, "try timed out\n");
^^
The kunit_log() macro adds its own newline. Most of the callers add
a newline. It should be the callers add a newline because that's how
everything else works in the kernel.
The dev_printk() stuff will sometimes add a newline, but never a
duplicate newline. In other words, it's slightly complicated. But
basically the caller should add a newline.
80 try_catch->try_result = -ETIMEDOUT;
81 }
82
83 exit_code = try_catch->try_result;
84
85 if (!exit_code)
86 return;
87
88 if (exit_code == -EFAULT)
89 try_catch->try_result = 0;
90 else if (exit_code == -EINTR)
91 kunit_err(test, "wake_up_process() was never called\n");
^^
92 else if (exit_code)
93 kunit_err(test, "Unknown error: %d\n", exit_code);
^^
94
95 try_catch->catch(try_catch->context);
96 }
regards,
dan carpenter
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [bug report] kunit: test: add support for test abort
2020-04-18 17:25 [bug report] kunit: test: add support for test abort Dan Carpenter
@ 2020-04-20 16:11 ` Brendan Higgins
0 siblings, 0 replies; 2+ messages in thread
From: Brendan Higgins @ 2020-04-20 16:11 UTC (permalink / raw)
To: Dan Carpenter; +Cc: open list:KERNEL SELFTEST FRAMEWORK, KUnit Development
On Sat, Apr 18, 2020 at 10:26 AM Dan Carpenter <dan.carpenter@oracle.com> wrote:
>
> Hello Brendan Higgins,
>
> The patch 5f3e06208920: "kunit: test: add support for test abort"
> from Sep 23, 2019, leads to the following static checker warning:
>
> lib/kunit/try-catch.c:93 kunit_try_catch_run()
> misplaced newline? ' # %s: Unknown error: %d
>
> lib/kunit/try-catch.c
> 58 void kunit_try_catch_run(struct kunit_try_catch *try_catch, void *context)
> 59 {
> 60 DECLARE_COMPLETION_ONSTACK(try_completion);
> 61 struct kunit *test = try_catch->test;
> 62 struct task_struct *task_struct;
> 63 int exit_code, time_remaining;
> 64
> 65 try_catch->context = context;
> 66 try_catch->try_completion = &try_completion;
> 67 try_catch->try_result = 0;
> 68 task_struct = kthread_run(kunit_generic_run_threadfn_adapter,
> 69 try_catch,
> 70 "kunit_try_catch_thread");
> 71 if (IS_ERR(task_struct)) {
> 72 try_catch->catch(try_catch->context);
> 73 return;
> 74 }
> 75
> 76 time_remaining = wait_for_completion_timeout(&try_completion,
> 77 kunit_test_timeout());
> 78 if (time_remaining == 0) {
> 79 kunit_err(test, "try timed out\n");
> ^^
> The kunit_log() macro adds its own newline. Most of the callers add
> a newline. It should be the callers add a newline because that's how
> everything else works in the kernel.
Whoops, I thought I removed that extra newline.
Thanks! I will look into this.
> The dev_printk() stuff will sometimes add a newline, but never a
> duplicate newline. In other words, it's slightly complicated. But
> basically the caller should add a newline.
>
> 80 try_catch->try_result = -ETIMEDOUT;
> 81 }
> 82
> 83 exit_code = try_catch->try_result;
> 84
> 85 if (!exit_code)
> 86 return;
> 87
> 88 if (exit_code == -EFAULT)
> 89 try_catch->try_result = 0;
> 90 else if (exit_code == -EINTR)
> 91 kunit_err(test, "wake_up_process() was never called\n");
> ^^
>
> 92 else if (exit_code)
> 93 kunit_err(test, "Unknown error: %d\n", exit_code);
> ^^
>
> 94
> 95 try_catch->catch(try_catch->context);
> 96 }
>
> regards,
> dan carpenter
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-04-20 16:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-18 17:25 [bug report] kunit: test: add support for test abort Dan Carpenter
2020-04-20 16:11 ` Brendan Higgins
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.