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

Feature: Simulatenous drivers testing #57

Closed
screamerbg opened this issue Jul 6, 2017 · 5 comments
Closed

Feature: Simulatenous drivers testing #57

screamerbg opened this issue Jul 6, 2017 · 5 comments
Assignees

Comments

@screamerbg
Copy link
Contributor

It would be great if the CI test shield tests are verifying the simultaneous use of mbed OS driver APIs:

  • Low level GPIO - DigitalOut, DigitalIn, InterruptIn, AnalogIn
  • Comm APIs - I2C + SPI simultaneous use of EEPROM/I2C and SDCard/SPI.
    ** Simultaneous use in a single thread
    ** Simultaneous use in multiple threads
  • Mixed - GPIO & Comm APIs - both for single and multi-threaded scenarios

Printing the tests output would effectively test the simultaneous use of UART as well.

@BlackstoneEngineering @mbartling @bridadan @sg-

@BlackstoneEngineering
Copy link
Contributor

@mray19027 , can you comment on the feasibility of adding this?

@mray190
Copy link
Contributor

mray190 commented Jul 10, 2017

Pretty easy to do. Just would involve combining the existing EEPROM and SDCard tests. Biggest problem I can see with this would be timing. We would have to make sure the data streams for both I2C/SPI are big enough to ensure that both are actually running at the same time.

CI Test shield tests already are verifying the simultaneous usage of DigitalIn/Out with InterruptIn as the interrupts are required for the tests.

@brandonboesch

@brandonboesch
Copy link
Contributor

Yeah, I think this is a good idea too. The question is where does this fall into the certification program? Should we require this testing for a device to be mbed certified? Should this be tested in all level's of our level testing scheme?

Also as an aside note, I think that the UART testing should be expanded, because we are only really testing the UART block that is connected to the USB port when running greentea. For a more robust testing, we should really be testing all the UART hardware blocks specified in PeripheralPins.c.

@BlackstoneEngineering
Copy link
Contributor

In current tests we would add this as a new test group called simultaneous. So we would have /api, /assumptions and /simultaneous

In level testing this would go into the corner case testing of the last level. Not required for certification, but reccomended to run.

@screamerbg what do you think?

@mray190 mray190 self-assigned this Jul 13, 2017
@mray190
Copy link
Contributor

mray190 commented Aug 7, 2017

@screamerbg - implementation of this feature is in PR #62

Can you review the code in that PR to verify that is what you were requesting?

@mray190 mray190 closed this as completed Aug 7, 2017
mray190 added a commit that referenced this issue Aug 7, 2017
## Features:
2 features added: PWM separation and concurrent testing

### PWM separation
Some MCUs do not have the ability to have rising and falling edge PWM triggers. We separated the PWM test into 3 separate tests:
- Rising triggers
- Falling triggers
- Rising and falling triggers
Test results now report when a specific trigger fails

### Concurrent tests
Tests were designed to test specific implementations of mbed OS APIs. We added 3 additional tests to verify that crossover between APIs does not interfere. We test the following tests concurrently:
- Communication APIs: Mixes SPI and I2C devices
- GPI APIs: Mixes analog in/out, interrupt in, and digital in/out
- Mixed APIs: Combines everything

### Feature requests
Feature requests originally brought up here:
- PWM separation: PR #58 
- Concurrent tests: PR #57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants