Create Your Test DLL for the CTK (Compact 7)
3/12/2014
Creating a test DLL for the Windows Embedded Compact Test Kit (CTK) is similar to creating a console application; both are subprojects of your OS design.
To create a CTK test DLL
Open your previously created OS design in Platform Builder.
In the Solution Explorer window, right-click Subprojects, and then click Add New Subproject.
In the Subproject Wizard window, click WCE TUX Dynamic-Link Library from the Available templates list.
In the Subproject name field, type DriverTUXTest, and then click Next.
Click Finish.
Your new subproject appears under Subprojects in Solution Explorer. If you expand the DriverTUXTest subproject node, you find the Source files folder. The folder contains three files: DriverTUXTest.cpp, Globals.cpp, and Test.cpp. In the next step, you will add a test to Test.cpp. Before you add the test, the code resembles the following example.
#include "main.h" #include "globals.h" TESTPROCAPI TestProc(UINT uMsg, TPPARAM tpParam, LPFUNCTION_TABLE_ENTRY lpFTE) { // The shell doesn't necessarily want us to execute the test. // Make sure first. if(uMsg != TPM_EXECUTE) { return TPR_NOT_HANDLED; } // TODO: Replace the following line with your own test code here. // Also, change the return value from TPR_SKIP to the appropriate // code. g_pKato->Log(LOG_COMMENT, TEXT("This test is not yet implemented.")); return TPR_SKIP; }
Modify Test.cpp file to include calls to ActivateDeviceEx, CreateFile, CloseHandle, and DeactivateDevice, just as you did in the console driver. You can then add any additional calls that are specifically required for testing the driver, such as WriteFile, ReadFile, and DeviceIoControl. For example, in the Test.cpp file, replace the code lines after the TODO comment with the following code.
g_pKato->Log(LOG_COMMENT, TEXT("Stream driver TUX test starting")); HANDLE hActiveDriver = NULL; HANDLE hDriver = NULL; bool bReturn = false; hActiveDriver = ActivateDeviceEx(L"\\Drivers\\Streamdriver", NULL, 0, NULL); if (hActiveDriver == INVALID_HANDLE_VALUE) { g_pKato->Log(LOG_COMMENT, TEXT("Unable to load stream driver.")); return TPR_FAIL; } // Open the driver hDriver = CreateFile (L"SDT1:", GENERIC_READ| GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hDriver == INVALID_HANDLE_VALUE) { g_pKato->Log(LOG_COMMENT, TEXT("Unable to open stream driver.")); return TPR_FAIL; } // Add test code here // Close the driver if (hDriver != INVALID_HANDLE_VALUE) { bReturn = CloseHandle(hDriver); if (bReturn == FALSE) { g_pKato->Log(LOG_COMMENT, TEXT("Unable to close stream driver.")); } } // Ask the Device Manager to unload the driver if (hActiveDriver != INVALID_HANDLE_VALUE) { bReturn = DeactivateDevice(hActiveDriver); if (bReturn == FALSE) { g_pKato->Log(LOG_COMMENT, TEXT("Unable to unload stream driver.")); } } return TPR_PASS;
In Solution Explorer, right-click the DriverTuxTest subproject, and then click Build.