-
Notifications
You must be signed in to change notification settings - Fork 7
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
X11vnc sys tests #4
Conversation
tests/test_x11vnc.py
Outdated
assert ret | ||
|
||
|
||
# TODO: parametrization with a passwd for |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh wait i already did this.
tests/test_x11vnc.py
Outdated
'localhost', | ||
port=port, | ||
force_video_mode=force_vid, | ||
# TODO: show this is broken |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
already done.
@barneygale any thoughts on this suite? |
Firstly, thanks tons, these looks brilliant. I'm strapped for time right now but will have a look at the weekend! |
@barneygale no rush amigo, I just want to make sure we're starting on common ground for integration with existing server impls 🏄🏼 This way I don't have to prove my problems in issues I can just have you see them in person 😂 Also on another note, I think it might be pretty slick to check out |
@barneygale added an actions run that takes care of everything to get your existing test suite and these new tests running. Feel free to to make suggestions on config changes, I just picked what I'm currently using as defaults (eg. py3.10). |
asyncvnc.py
Outdated
mode_data[2] &= 1 # set big endian flag to 0 or 1 | ||
mode_data[3] &= 1 # set true colour flag to 0 or 1 | ||
mode = video_modes.get(bytes(mode_data)) | ||
|
||
# # allow user to force a ``mode: str`` if they know it works. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will drop the history that brought in this patch set if you're happy with the test suite @barneygale.
So in other words I'll drop the history from #3 before you merge this.
There dropped the history from #3 so this is only the tests and CI now. |
First run on our fork is here: |
CI run testing here: I think we need to install an X framebuffer emulator as well. |
This is a small starter test suite which verifies basic connection and auth with a local `x11vnc` server run in a sub-process. Obviously the `x11vnc` program need to be installed locally for this suite to run. At the time of writing this test suite exemplifies the following issues: - barneygale#1 - barneygale#2 Further work to put this into CI is not included here but is highly recommended ;)
Installs `asyncvnc`, `x11vnc` and runs the test suite on Python 3.10 Resolves barneygale#5
Use `shell=True` to `Popen`, wait for specific stderr output pattern instead or arbitrary sleep.
7411a97
to
b682e3d
Compare
@barneygale well it took a little more tweaking then I anticipated 😂 but there's a clean run here: Gonna add a badge to the readme and I think this should be good to land 🏄🏼 |
Thanks so much! |
Now that we have working client auth thanks to: barneygale/asyncvnc#4 and related issue, we can use a pw for the vnc server, though we should eventually auto-generate a random one from a docker super obviously. Add logic to the data reset hack loop to do a connection reset after 2 failed/timeout attempts at the regular data reset. We need to also add this logic around reconnectionn events that are due to the host network connection: aka roaming that's faster then timing logic builtin to the gateway.
Now that we have working client auth thanks to: barneygale/asyncvnc#4 and related issue, we can use a pw for the vnc server, though we should eventually auto-generate a random one from a docker super obviously. Add logic to the data reset hack loop to do a connection reset after 2 failed/timeout attempts at the regular data reset. We need to also add this logic around reconnectionn events that are due to the host network connection: aka roaming that's faster then timing logic builtin to the gateway.
Now that we have working client auth thanks to: barneygale/asyncvnc#4 and related issue, we can use a pw for the vnc server, though we should eventually auto-generate a random one from a docker super obviously. Add logic to the data reset hack loop to do a connection reset after 2 failed/timeout attempts at the regular data reset. We need to also add this logic around reconnectionn events that are due to the host network connection: aka roaming that's faster then timing logic builtin to the gateway.
We helped drive a bunch of fixes in barneygale/asyncvnc#4 This pins to our forked but matched `main` branch to get those fixes until such a time as upstream makes another release.
As promised a small suite that demonstrates both #1, #2.
Test suite results for me are this on linux:
Note that this obviously builds on PR #3 so only this test module file should be reviewed here.
Further TODOs
haven't looked at how to getsee Addx11vnc
on ac actions instance yet but i'm sure it's been donex11vnc
to actions instance #5, and solution is already implemented in new CI run here!b' \x18\x00\xff\x00\xff\x00\xff\x00\xff\x10\x08\x00'
#2x11vnc-docker
project image looks like a good fit (maybe defer this for now yah?)