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

Write tests that only valid recovery accessors are written to the device #145

Open
3 tasks
killenb opened this issue Apr 7, 2020 · 2 comments
Open
3 tasks
Labels
redmine Issue tracked on DESY MSK Redmine

Comments

@killenb
Copy link
Member

killenb commented Apr 7, 2020

Child of #129

Only recovery accessors which have seen their initial value must be written to the device. Prepare a test scenario for this.

There are two devices. Device A is not functional yet (use exception dummy and make it throw on open), Device B is working.

  • Have an ApplicationModule which has a poll-type input from Device A. Don't connect it to the CS so no fan is involved.

  • It has a second input from the CS, which is push type (a trigger)

  • The only output is directly connected to a variable in Device B.

  • The device module main loop first assigns the value of the poll-type input to the output, then writes to the output. Afterwards it waits for the trigger, then polls the other input and cycles the loop.

  • Before starting the app, prepare the target register in Device B such that it is not 0. Prepare the source register in Device A such that it has a different value than the register in B, also not 0.

  • Check that the value in B is never overwritten with 0

  • After removing the exception state of Device A the initial value is propagated without having to send a trigger.

  • If you now change the value in A and send the trigger, the new values is propagated as usual.

Extended Scenario: You could have a second register written to B from the CS. This works even if A is still disfunctional. If you now break B, send another value from the CS, then 'repair' B, only the second value from the CS is recovered. The one that is supposed to come from A is still not touched, especially not overwritten with 0, when recovering B.

The test will only succeed if #144 is implemented.

@killenb
Copy link
Member Author

killenb commented Aug 31, 2020

I took away the umbrella child because the parent was an implementation ticket, this one is about tests.
It is part of #180

@mhier
Copy link
Member

mhier commented Jun 16, 2021

Now on redmine #8368

@mhier mhier added the redmine Issue tracked on DESY MSK Redmine label Jun 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
redmine Issue tracked on DESY MSK Redmine
Projects
None yet
Development

No branches or pull requests

2 participants