-
Notifications
You must be signed in to change notification settings - Fork 2k
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
[RFC] tests: add 'test-manual' targets #11954
Conversation
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.
Regarding semantics, what falls in to a manual tests? Are tests requiring specific hardware/drivers manual tests? Are tests requiring sudo manual tests? What happens to tests requiring a specific driver?
Would it make sense adding an tests-integration
concept as well? I'm thinking of tests like the gnrc*
ones requiring sudo, riotboot/flashwrite
, upcoming suit
tests, etc. I'm mentioning this because I feel there are more tests that should be excluded from our general make tests
target, and where the manual
qualifier doesn't apply very well.
Would it make sense adding a make test-all
that would run all available tests? Or keep our current behavior and instead add a make test-auto
that only runs on automatic tests and use make test
to run all tests.
Although I like the idea behind this, I'm not sure about the semantics, the manual
tag would apply to few of our tests. There is also the problem about tests that require hardware access, which seems to be the case in the test your provided as an example, it seems to be more about that than the "manual" side. The test could probably be adapted to load the image into the sd-card during the test-setup (I know we talked about this in IRL).
I can replace the Here I would also put the test that need The problem with going to For the automated tests that have an environment dependency == not a setup phase, like |
Create a file for setting tests targets and variables. It is a refactoring before adding new commands.
Add new 'test-manual' targets for tests that should be run manually and not through automated testing.
…al test For running the test on boards, it needs a manual setup. This however declares the "native" test as manual too.
… as manual test No need to be blacklisted as "manual test" is a manual test.
b5bfc9c
to
e78b0e6
Compare
The only I would actually like having:
The special case for native you are mentioning I don't know how to handle, or in general cases where for some boards the test ins manual and for others automatic.. Maybe native should be an exception where all tests are run no matter what? |
I agree with this classification. Maybe use |
I also meant I have no feeling for the current name at all, I just put a name to do this From the classification I think in your description you ended up mixing By thinking about it more right now, by still keeping Further steps/scalingOne idea I had about going further than this, is adding a similar things as "FEATURES" but for testing. Which could allow special handling on a dev machine/murdock/iotlab to run ethos for example with specific safe arguments only. But I will not be able to push or follow such a change. |
Sounds good
+1 |
I don't know if I agree with separating these things as automation isn't always a 1 or 0 but a gradient. Isn't the FEATURES_REQUIRED a solution to this. |
This would be fixed by #11676 because applications/tests requiring radio won't be built/run on a Nucleo that doesn't provide an on-board communication interface. |
A nucleo with a communication shield, is a different "board" in the RIOT sense. The |
To me it seems like a way to just include metadata about the tests. I don't know if this is the best way to do it though. I still see a problem of some boards being able to be run automatically in the manual tests and some boards not. Where should the tests go in this case? If you put them in manual tests don't you still need some logic to determine if they can be tested automatically depending on the board? If so doesn't that defeat the point? |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you want me to ignore this issue, please mark it with the "State: don't stale" label. Thank you for your contributions. |
I would like to revive this PR, currently when running all tests these test always fail, and its normal because they either require specific drivers or they require
The ones requiring a driver can be addressed in different ways, I had a proposal in #12952 that got no attention but that goes exactly in the direction you mention @MrKevinWeiss and there is also @aabadie approach in #11676. But tests requiring It would be better to have |
@miri64 might have thoughts on this as well |
I think manual tests and tests requiring root permissions for automation are also two distinct classes of tests. All of the sudo tests actually don't need manual intervention (maybe a started |
IMO if they require @cladmi did some previous work where he added some pytest wrappers for our tests, maybe there is also a way to integrate that and via markers get the same functionality we want here. It might avoid us from re-inventing the wheel (also thinking about the comment made by @cladmi #11954 (comment)), maybe using markers? |
Depends. For those tests that just use
Once we have
Ideally, the tests are then ported so that they automatically detect if the Just to clarify: as a manual test I see a test that requires some kind of user interaction during the test (e.g. check thermometer in room to check if temperature sensor is working correctly). |
I'd like to revamp the work that was done there. The main reason is because I'd like to be able to skip some tests in the
I agree that we can distinguish between tests that requires root permission and test that requires configuration. I would rather rename Regarding the scapy-unroot question, my opinion is that once this can be used, affected tests are likely to fall in the Regarding this PR, it's trivial to split the |
#15771 was merged, so closing this one. |
Contribution description
Add new 'test-manual' targets for tests that should be run manually and
not through automated testing.
Rationale
The goal is to separate test failures due to real test error from tests failure due to not working when run through 'make test'.
It could also be used for tests that currently need to be run as root, and for driver tests that require plugging external hardware and giving the port mapping.
Testing procedure
There is now normal
test
ispkg_fatfs_fvs
But there is
test-manual
.For native the test is automated, but the documentation still mentions manual operations that can be run.
BOARD=native make --no-print-directory -C tests/pkg_fatfs_vfs/ test-manual/available flash test-manual
TODO
TEST_DEPS
?Issues/PRs references
All automated testing on boards using
dist/tools/compile_and_test_for_board/compile_and_test_for_board.py
and release tests outputs that have these tests as failure RIOT-OS/Release-Specs#128 (comment)