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

Allow bypassing handler spawning logic #755

Open
TotempaaltJ opened this issue Mar 20, 2017 · 1 comment
Open

Allow bypassing handler spawning logic #755

TotempaaltJ opened this issue Mar 20, 2017 · 1 comment

Comments

@TotempaaltJ
Copy link

@TotempaaltJ TotempaaltJ commented Mar 20, 2017

Hey, it'd be super sweet if there was a native solution for #748. Maybe null could be an argument to language? The spawnHandler and terminateHandler calls could just be bypassed in this case, and that should solve the issue entirely.

@honzajavorek honzajavorek added this to the Dredd in Docker milestone Oct 4, 2018
@honzajavorek honzajavorek mentioned this issue Nov 27, 2018
2 of 3 tasks complete
@honzajavorek honzajavorek mentioned this issue Dec 28, 2018
7 of 11 tasks complete
honzajavorek added a commit that referenced this issue Jan 3, 2019
@honzajavorek honzajavorek mentioned this issue Jan 3, 2019
2 of 3 tasks complete
honzajavorek added a commit that referenced this issue Jan 3, 2019
honzajavorek added a commit that referenced this issue Jan 3, 2019
@honzajavorek
Copy link
Contributor

@honzajavorek honzajavorek commented Oct 22, 2019

We did some work around how Dredd is friendly to the Docker setup, but this hasn't been resolved yet. It needs internal refactoring of how the hooks are done in Dredd. The discussion in #748 completely describes the original problem this is trying to solve.

This is also related to #1101 - when re-thinking the --language option and its friends, we should think about this use case, when we want Dredd to just try to connect to a hook handler on a certain port, without starting up any processes itself.


Current behavior:

When using Dredd with non-JS hooks, Dredd needs a hooks handler process. By default, Dredd spawns it as a subprocess and connects to it on a default port over TCP, then Dredd does its job and then kills the hooks handler process before the end of the testing.

The problem:

When used with Docker, people want to run the hooks handler process in a separate container. Dredd supports an option for specifying a non-default port, that's OK, but it requires a --language option and insists on trying to spawn its own hooks handler process. Users with Docker would like to opt-out from the spawning and handle running the hooks handler process by their Docker setup. That's not currently possible.

The workaround:

It's possible to call Dredd with --language set to a dummy shell script, which does nothing forever, and with a port pointing to the actual Docker container with the hooks handler. Dredd spawns the dummy script and thinks it's handling the hooks handler process (although it is not), but connects to the given port and the TCP connection is done with the correct Docker process containing the real hooks handler.

The solution:

This issue can be closed if Dredd provides a way to opt-out from spawning the hooks handler process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants