[libcamera-devel] [PATCH] test: process: Test Process::kill()
Kieran Bingham
kieran.bingham at ideasonboard.com
Mon Jul 27 15:15:14 CEST 2020
Hi Laurent,
On 27/07/2020 13:53, Laurent Pinchart wrote:
> Add a test to ensure that Process::kill() on an unstarted process is
> safe. This aims at ensuring we don't kill other processes unexpectedly.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> test/process/process_test.cpp | 4 ++++
> 1 file changed, 4 insertions(+)
>
> If you want to try this at home *without* the corresponding fix to the
> Process class ("libcamera: process: Fix killing innocent processes
> unexpectedly"), make sure to save all your work first. It's a very
> effective implementation of an ejection seat.
>
> diff --git a/test/process/process_test.cpp b/test/process/process_test.cpp
> index ce0cc7c972cd..721a7c9d46ff 100644
> --- a/test/process/process_test.cpp
> +++ b/test/process/process_test.cpp
> @@ -51,6 +51,10 @@ protected:
> args.push_back(to_string(exitCode));
> proc_.finished.connect(this, &ProcessTest::procFinished);
>
> + /* Test that kill() on an unstarted process is safe. */
> + proc_.kill();
> +
Perhaps this is one test where we should merge the fix *first* :-)
Do we need to do anything to actually make sure no other process is
killed? I presume it will become quite self evident, as probably all of
the test environment might disappear to succinctly fail the test ;-)
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
(As long as I don't have to provide a Tested-by: tag...)
> + /* Test starting the process and retrieving the exit code. */
> int ret = proc_.start("/proc/self/exe", args);
> if (ret) {
> cerr << "failed to start process" << endl;
>
--
Regards
--
Kieran
More information about the libcamera-devel
mailing list