blob: e1ea390dd1395458e8a845dedbea20b49160ab9b [file] [log] [blame] [view]
# No Platform Left Behind
Starboard attempts to make bringing up new platforms as easy as possible. No
Platform Left Behind (NPLB) services this goal by providing a compliance test
suite that new platform implementations can use to determine achieved progress.
## Current State
All defined APIs are at least called by NPLB, and most are verified in one way
or another. The APIs that are most likely to just be implemented by a single
system call are not exhaustively tested. In particular, the Starboard functions
defined in `string.h` and `memory.h`.
NPLB tests must work on all Starboard implementations, so they may make no
assumptions about platform-specific details. They attempt to define a living
contract for the APIs on all platforms.
## Test Organization
The tests are broken out into files by both Starboard module and function.
src/starboard/nplb/<module>_<function>_test.cc
Each test may incidentally test other functions. There is an attempt to keep
things as self-contained within a function and module as possible, but also an
attempt to avoid testing behavior that is effectively tested as part of another
test.
For example, `SbSocketSendTo` and `SbSocketReceiveFrom` are tested together,
ensuring that the API is self-consistent on both sides of a connection.
Therefore, only one set of tests exist to cover those use cases, in
`socket_receive_from_test.cc`.