[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