Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spawn a new process for the test runner #11064

Closed
wants to merge 9 commits into from
Closed

Conversation

dfandrich
Copy link
Contributor

This is optional (default disabled) and is controlled by the -j flag. It
currently supports at most 1 runner which will fork() a new process that takes
care of running curl for the actual test. This proves the groundwork to handle
tests in multiple processes has been laid.

@github-actions github-actions bot added the tests label May 2, 2023
dfandrich added a commit that referenced this pull request May 3, 2023
When the -j option is given, a new process is spawned in which the test
programs are run and from which test servers are started. Only one
process can be started at once, but this is sufficient to test that the
infrastructure can isolate those functions in a new task. There should
be no visible difference between the two modes at the moment.

Ref: #10818
Closes #11064
@dfandrich dfandrich force-pushed the dfandrich/pr11064 branch 2 times, most recently from 469baa8 to f5ece5b Compare May 3, 2023 16:35
dfandrich added a commit that referenced this pull request May 3, 2023
When the -j option is given, a new process is spawned in which the test
programs are run and from which test servers are started. Only one
process can be started at once, but this is sufficient to test that the
infrastructure can isolate those functions in a new task. There should
be no visible difference between the two modes at the moment.

Ref: #10818
Closes #11064
This will no longer be static soon.

Ref: #10818
Some recent refactoring made these export no longer necessary. Also,
stop displaying the Unix socket paths at startup since there will soon
be many of them and they're not that interesting.

Ref: #10818
There will soon be multiple log directories so the paths will no longer
be static in runtests.pl. Also, get rid of $SERVER2IN which was not
used.

Ref: #10818
This sets up the runner environment to start running tests.

Ref: #10818
This is where citest_starttest is called.

Ref: #10818
Program arguments are marshalled and then written to the end of a pipe
which is later read from and the arguments unmarshalled before the
desired function is called normally.  The function return values are
then marshalled and written into another pipe when is later read from
and unmarshalled before being returned to the caller.

The implementation is currently blocking but can be made non-blocking
without any changes to the API.  This allows calling multiple runners
without blocking in the future.

Ref: #10818
This allows it to run in a non-blocking manner.

Ref: #10818
When the -j option is given, a new process is spawned in which the test
programs are run and from which test servers are started. Only one
process can be started at once, but this is sufficient to test that the
infrastructure can isolate those functions in a new task. There should
be no visible difference between the two modes at the moment.

Ref: #10818
Closes #11064
The controller currently only creates and uses one, but more are now
possible.

Ref: #10818
@dfandrich dfandrich closed this in 38465f9 May 5, 2023
@dfandrich dfandrich deleted the dfandrich/pr11064 branch May 5, 2023 07:49
bch pushed a commit to bch/curl that referenced this pull request Jul 19, 2023
When the -j option is given, a new process is spawned in which the test
programs are run and from which test servers are started. Only one
process can be started at once, but this is sufficient to test that the
infrastructure can isolate those functions in a new task. There should
be no visible difference between the two modes at the moment.

Ref: curl#10818
Closes curl#11064
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

Successfully merging this pull request may close these issues.

None yet

1 participant