-
Notifications
You must be signed in to change notification settings - Fork 3
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
Add regression test harness upgrade proposal. #36
Conversation
|
||
The current test harness hardcodes an initial listen port of 8888 on 127.0.0.1 | ||
and uses each port in sequence per node in the cluster for the http plugin. | ||
The revised system will take advantage of the entirety of the 127.0.0.0/8 |
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.
This many not be portable. I don't think macOS routes all of 127.0/8 by default, for example. How difficult will it be to have a fallback for such a platform that still executes sequentially?
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.
I wasn't aware macOS is not RFC 3330 compliant. macOS is not a supported platform. If and when we support it, this: sudo ifconfig lo0 alias 127.0.0.2 up
can be added to the test harness when it's running on macOS. The Python platform
module can be used to identify macOS as needed.
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.
So are you saying for macos you can use a strategy that maps all IP & ports to 127.0.0.2:x?
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.
Sorry, I wasn't clear. Variations of that sudo would be used for all IPs needed in the subnet. 127.0.0.x.
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.
What will happen when a user runs ctest
in this case?
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.
When a macOS user runs ctest
they will get one password prompt on the command line the first time any test runs which requires the loopback addresses. All tests will check for their presence and silently use them if they're available, which will avoid additional password prompts that might otherwise arise because the sudo timeout has been reached before the entire suite of tests has completed.
- Execute code coverage tests in cooperation with CMake. | ||
- Capture logs and other test artifacts into archives on commmand for upload to: | ||
- Github test results; | ||
- A status dashboard showing test results and code coverage statistics. |
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.
How/where will the dashboard be created?
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.
Ted requested it. Whether or not its data source is a Github action and where it would be hosted is yet to be determined.
I do have one special request as part of the refactor: remove usage of |
A few notes from yesterday's discussion Clarifications:
Decisions:
|
Another point that was discussed is that the framework used to spin up a node(cluster) should be usable by downstream projects like eosjs. |
Yes, good to capture that requirement. It seems like the python script/scripts/module ought to be included in either the leap or leap-dev package. |
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.
Lgtm
No description provided.