Add reset shell support.
Background (details refer to attached simple doc ResetShell_LAVA_.docx):
Linaro’s philosophy on CI/CT differs a lot from some NXP team: they have almost zero tolerance for unstable platforms and tests. If a test crashes, or fails randomly, etc… they skip it until the problem is investigated and solved by developers. The idea here is to keep a super stable CI/CT, that consistently produces 100% pass rate. Then, any regression from the SW under test is easily spotted.
Some NXP team’s philosophy is: utilize the whole night to test as much as possible for one platform. So if one case encountered kernel panic or other unstable issue which make device crash, we should reboot the device with PDU to make the environment clean, skip the current case which made system crash, and continue to test the left cases to utilize the time, not wait developers to fix that block issue.
Based on above philosophy, NXP developed customized test action called “reset shell” which mainly in “reset_shell.py”, it extends from the standard TestShellAction in “shell.py”. With this way, we could still utilize the features in shell.py but add additional needed features needed by NXP.
We upstream this, because this could make us easy to be compatible with later upgraded LAVA version, not feel pain to patch with new version again and again. Meanwhile, easy to share our test with our vendors & customers.