|
|
|
|
NDIS Edge Case Testing
| |||||||||||
| Event Survival | |
| Post Event Behavior |
You need to define that for yourself. At the very least it means that the system should not crash and basic network connectivity should be normal after imposing the edge condition.
It is up to you to decide how your software should behave after the edge case event has happened. For example, how your driver's services are restarted after an edge case is up to you.
After thinking about this you may have other goals that are specific to your driver. Do at least consider how the system and your software would/should behave after the edge case is reversed.
This should be obvious.
![]()
Here are the obvious NDIS edge cases. Not all apply to all driver types.
Start up your load/stress test. Then use the Network Control Panel to uninstall your driver.
If your driver is a protocol or filter driver start up you load/stress test. Then use the Network Control Panel to disable the miniport binding.
Same as above except you uninstall the miniport while your load/stress test is running.
If your driver is a protocol or filter driver consider binding to a USB-Ethernet adapter. Then perform a surprise removal while your load stress test is running.
Start up your load/stress test. Then install some additional filter in the stack. You can use one of the WDK filter driver samples as the additional filter for the test.
If your driver is a NDIS 6 filter or protocol driver, then perform this this test with a NDIS 5 and a NDIS 6 filter. The pause/resume behavior may be different.
After installing the additional filter as described above restart your load/stress test. It should, of course, run perfectly. Then uninstall the additional filter.
Start up your load/stress test. Then cause the host to enter sleep/standby conditions and then to return to the power-on state.
![]()
If you are writing a NDIS filter or protocol driver then changes to adapter properties should also be considered to be edge cases to be considered and possibly tested.
This isn't a complete list. Just a few properties to make you think along the right lines:
Start up your load/stress test. Then change various adapter task offload properties. test.
Some adapters offer properties that allow changing the packet size (e.g., various Jumbo packet sizes). Start up your load/stress test. Then change the packet size settings.
Start up your load/stress test. Then change the locally administered MAC address.
Start up your load/stress test. Then cause IP interface settings to be changed.
Some of these conditions may not influence your driver's functionality, so ignore them.
![]()
Here the most obvious system limitation is memory.
Use Driver Verifier to introduce memory limitations. Start your load/stress test and observe behavior.
|
Topic Status |
|
| August 22, 2010 | Expanding the note a little... |
| August 18, 2010 | Initial posting. |
|
PCAUSA Home
· Privacy Statement ·
Products · Ordering · Support ·
Utilities ·
Resources
|