> NdisTest is a must know & must use tool for any one developing ndis drivers. In my opinion it is more like a secondary driver verifier for ndis drivers.
I agree
NDISTest has some great stuff, even if you’re not developing an NDIS miniport from scratch. For example MPE (the Multi-Path Exerciser) is a genius at finding race conditions and stress bugs all over the NDIS stack.
I am trying to use the edit job action in the ndistest 6.5. … Ok, How do I build this to generate the new test binary.
The very short answer: you cannot.
The way that NDISTest.NET works is that you have these .CPP files that implement the test, and (as you’ve noticed) there’s a big comment at the top that contains test parameters wrapped up in some XML-like structure. You can, for example, use the test parameters to configure the test to work on your NIC with a custom media type.
There are two confusing aspects to this:
- Although the menu option says “Edit Job” and shows you the whole test’s source code in notepad, it really means “Edit the XML parameters, or view the test’s source code”. In other words, you can party on the XML parameters, but the actual managed C++ code is effectively read-only. (I mean, you can change the C++ code if you want, but it won’t have any effect on the test, since the test runs out of a pre-compiled .DLL [aka CLR assembly]). On the other hand, NDISTest.NET will open the .CPP file and reparse the XML comment each time the test is run. So changes to the test XML parameter block WILL have an effect on the test.
- There is a, er, “feature” in the current version of the WLK (version 1.5) that will warn you if you changed the .CPP file but forgot to recompile the .DLL. This feature is useful for our hard-working testers who *create* the tests here at Microsoft, but it doesn’t do *you* much good since you can’t actually recompile any .DLLs. It’s painful, in fact, because you might want to update the XML parameters without changing the C++ code (a perfectly fine thing to do), but that tricks the timestamp comparison code into thinking you need to recompile a .DLL. The workaround is to edit the XML, then manually update the timestamp on the .DLL. (Incidentally, although Windows lacks a builtin ‘touch’ command, you can get the same effect by running “copy foo.dll+”. The + character is important.) I’ve asked the testers to remove this feature.
The historical perspective is this. Once upon a time, there was only NDISTest. Each test was written in VBScript. This is great, because it’s easy for you (the third-party developer) to crack open a test script and see what it’s trying to do. Even better, you can open the .VBS file in notepad and tweak the test to repro a specific bug, or to really exercise a new feature.
But VBScript has its limits, and we wanted to take advantage of the massive developer productivity of this new-fangled .NET stuff. So NDISTest.NET was created using managed C++. (The original NDISTest is not dead – we still suggest you run it since it tests things that NDISTest.NET does not. All new tests and most attention goes into NDISTest.NET.) However, one problem with .NET is that you can’t just pop the .DLL into notepad to tweak the script anymore. We still ship the .CPP source code so at least you can see what the test is trying to do. And of course, the classic NDISTest with editable VBScript files is still available for you.
BTW, as you have noticed, in addition to the XML parameters at the top of each script, some tests have something called “hot parameters”. These are a newer invention and probably easier to edit since the GUI supports them. But the XML blob is still there for infrequently-edited (not-so-hot) parameters.
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@gmail.com
Sent: Monday, December 06, 2010 12:25 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Edit job in ndistest 6.5
Hi Gary
NdisTest is a must know & must use tool for any one developing ndis drivers. In my opinion it is more like a secondary driver verifier for ndis drivers. It is a very extensive test tool that tests all corner cases boundary conditions etc., I have seen ndis Gurus saying start running ndis test the moment a new driver under development starts handling traffic. So in this test we tweak some hot parameters which I have tried and works wonderfully. There is an option called edit job which opens up source file for the test case. Thats what I am interested in.
Thanks
Arun
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer