anchor.diff:  │
   └── platform/
       └── <implementation name>/
  -        └── include/
  -            ├── Internal header files seen only by the implementation.
  -            └── odp/
  -                ├── api/ <2>
  -                │   ├── In-line function definitions of the public API for this
  -                │   │   platform seen by the application.
  -                │   │
  -                │   └── plat/ <3>
  -                │       └── Platform specific types, enums etc as seen by the
  -                │           application but require overriding by the
  -                │           implementation.
  -                │
  -                ├── drv/ <6>
  -                │   ├── In-line function definitions of the nic driver interface
  -                │   │   for this platform seen by the application.
  -                │   │
  -                │   └── plat/ <7>
  -                │       └── Platform specific types, enums etc as seen by the
  -                │           nic driver but require overriding by the
  -                │           implementation.
  -                │
  -                └── com/
  -                    └── Things common to both interfaces are placed here.
  +	└── include/
  +	    ├── Internal header files seen only by the implementation.
  +	    └── odp/
  +		├── api/ <2>
  +		│   ├── In-line function definitions of the public API for this
  +		│   │   platform seen by the application.
  +		│   │
  +		│   └── plat/ <3>
  +		│       └── Platform specific types, enums etc as seen by the
  +		│           application but require overriding by the
  +		│           implementation.
  +		│
  +		├── drv/ <6>
  +		│   ├── In-line function definitions of the nic driver interface
  +		│   │   for this platform seen by the application.
  +		│   │
  +		│   └── plat/ <7>
  +		│       └── Platform specific types, enums etc as seen by the
  +		│           nic driver but require overriding by the
  +		│           implementation.
  +		│
  +		└── com/
  +		    └── Things common to both interfaces are placed here.
   
   ----
   <1> The specification, defining the ODP application programming interface (API)
  
positive.code: unwanted tests are still registered with the test framework to allow the fact
  that they're not being tested to be recorded.
  
  The odp_cunit_update() function is intended for this purpose, it is used to
  modify the properties of previously registered tests, for example to mark them
  as inactive. Inactive tests are registered with the test framework but aren't
  executed and will be recorded as inactive in test reports.
  
  In 'test/validation/foo/foo.c', define all tests for the 'foo' module:
  
  [source,c]
  ------------------
  
negative.code: With the exception for module pktio, all other modules testing just involves
  calling the platform agnostic <module>_main executables (in test/validation).
  
  ==== Using other languages
  
  The pktio module, above, is actually tested using a bash script. This script is
  needed to set up the interfaces used by the tests. The `pktio_run` script
  eventually calls the platform agnostic `test/validation/pktio/pktio_main` after
  setting up the interfaces needed by the tests.
  Notice that the path to the script, `pktio/pktio_run`, is pointing to a file
  within the <PLATFORM_SPECIFIC> tree so is private to this platform. Any
  languages supported by the tested platform can be used there, as it will not
  impact other platforms.
  