Automatisieren von Win32 Driver Testing
-
21-09-2019 - |
Frage
Wer weiß, Wege, teilweise oder vollständig zu automatisieren Treiber Testinstallation?
Ich bin neu in der Treiberentwicklung und bin mehr ein Testorientierten Ansatz in höheren Sprachen verwendet wird, so auf die Art der Umgebung zu bewegen, wo ich Test nicht leicht kann, wie ich für mich, einen Schritt zurück zu gehen hat. Ich bin mit Virtual PC für meine Testumgebung und zur Zeit es zurücksetzen müssen, offene Geräte-Manager, das Gerät auszuwählen, klicken Sie durch ein Bündel von „ Sie wirklich sicher, würden Sie nicht lieber eine dieser Systemtreiber installieren “Typ Dialoge, dann schließlich die Testumgebung zurückgesetzt, während WinDbg in der Host-Maschine neu gestartet wie die Testumgebung Boote ... argh.
Nach Wiederholung dieses Prozesses viele, schon viele Male, doch hat es eine bessere Art und Weise sein, dies zu tun? Welche Tools / Methoden / Tricks verwenden kommerzielle Treiber-Entwickler ihre Treiber in einer Testumgebung laufen?
Beachten Sie, dies ist nicht über Unit-Tests Treiber habe ich zu diesem Zeitpunkt nicht bekam noch oder wissen, ob es überhaupt möglich ist. Dies ist nur über eine Testumgebung mit WinDbg Anheizen und vergewissern Sie, dass einige kleine Änderung, die ich getan haben kann, ist das, was ich erwarte.
Lösung
Es scheint mir, dass eine Virtualisierungssoftware + a " Mock-Objekte " (Layering) Ansatz (wie von Aaron Digulla vorgeschlagen) + Skripte (wie von Sergius vorgeschlagen) können Gerätetreiberentwicklung vereinfachen.
Aber wenn Sie Visual Studio verwenden Anwendungen auf Benutzerebene zu entwickeln, können Sie es für den Kernel-Gerätetreiber Entwicklung benutzen, um mit VisualDDK (+ VirtualKD zu debuggen über eine Named Pipe, die schneller ist als über einen virtuellen COM-Port) , die speziell auf die Belästigungen, dass Sie erwähnen; von seiner Homepage:
... Dieses Projekt bringt die Einfachheit und Bequemlichkeit der Windows-Anwendung Entwicklung der Treiberentwicklung Welt. Keine manuelle Erstellung von Build-Skripte, das Kopieren des Treibers Dateien, Treiber von INF-Dateien zu installieren, Umschalten zwischen WinDbg und Source-Editor oder Warten auf Sekunden nach jedem Schritt aufgrund der extra langsam virtuell COM-Port. Erstellen Sie einfach einen Treiber projizieren eine bequeme Treiber mit Assistent, eine virtuelle Maschine aus, und Debuggen der Fahrer genießen direkt von Visual Studio. Sie möchten Test ein Veränderung? Gerade die normalerweise Drücken Umschalt-F5, Ändern Sie Ihre Fahrer, es wieder aufzubauen und erneut starten . VisualDDK wird entladen der alte Treiber, installieren Sie die neue und laden Sie es automatisch und schnell. Gebohrt mit WinDbg Laden Symboldateien für Minuten und Nachschlagen Symbole für Sekunden? Lassen Sie einfach VisualDDK optimize das für Sie eine eigene mit DIA-basierten Symbol-Engine. Verwendung von C ++ / STLPort in Ihre Fahrer? VisualDDK nativ visualisieren alle STL Behälter und Strings, so gut wie Visual Studio tut für Anwendungen im Benutzermodus. ...
Andere Tipps
Sie können einige Shell-Skripte schreiben (mit sc.exe und devcon.exe) Deployment-Aufgaben zu automatisieren (kein Öffnen Geräte-Manager, klicken Sie auf Tasten, etc). Und macht Schnappschuss des Systems bereit zu debuggen (muss nicht für den Systemstart warten).
Vergessen Sie nicht, Ihren Fahrer mit DriverVerifier zu überprüfen!
Beispiel für mein eigenes Skript:)
sc create FsFilter type= filesys binPath= c:\FSFilterDrv.sys
sc start FsFilter
pause
sc stop FsFilter
sc delete FsFilter
Beachten Sie die Hinweise Ich habe hier . Grundsätzlich Test so wenig wie möglich mit dem realen System.
In Ihrem Fall, ich habe eine andere Spitze bekommt. Virtual PC eine virtuelle Festplatte verwendet (die auf Ihrer reale Festplatte wahrscheinlich eine Datei ist)
Sie brauchen nicht Ihre Treiber zu installieren, können Sie einfach die neuen Dateien in der virtuellen Festplatte ersetzen. Dies ist oft nicht möglich, im laufenden System, sondern in einem virtuellen System, können Sie die virtuelle Festplattendatei öffnen und ändern (da Windows die Dateien nicht in das Sperren).
Ich bin nicht sicher über Virtual PC aber andere Emulatoren kommen mit Werkzeugen zur Arbeit mit virtuellem Disk-Images. Wenn VPC es nicht tun Besuche VirtualBox .
Es hängt alles ein wenig auf, welche Art von Fahrer Sie schreiben. Aber in vielen Fällen eine entsprechende Make-Datei zu schreiben (oder so ähnlich), die Griffe der Treiberinstallation, Start / Stopp und Start eines Testgeschirrs kann schon gut genug sein.
ich auch so konfigurieren, alle meine Testmaschinen zur automatischen Anmeldung (Autoadminlogon), Karte Netto-Laufwerke und starten Sie eine entsprechende Eingabeaufforderung nach dem Start. einen spezifischen Test läuft dann nur in einem einzigen Befehl eine Frage der Typisierung.
Ein Wort über VirtualPC: VirtualPC ist sehr praktisch für Kernel-Modus-Entwicklung, aber vergessen Sie nicht, dass es eine Einprozessor Maschine emuliert - nur so sicher sein, regelmäßig den Code zu testen, als auch auf einer Multi-Prozessor-Maschine. Das sei gesagt, kann der VHD Trick praktisch erscheinen, aber es etwas Bindungen Sie Virtual PC -. Schreiben entsprechende Skripte, die gleichermaßen die Arbeit an VirtualPC wie auf einer realen Maschine daher ein besserer Ansatz erscheint mir
Schließlich halte es für eine schamlose Werbung, aber wenn Sie für eine Einheit der Suche nach Windows-Kernel-Modus-Code-Test-Framework, habe ich eine geschrieben: cfix .
Ich denke, der DevCon-Dienstprogramm (beschrieben in diesem OSR Online-Artikel ) wird dir helfen. Sie sollten in der Setup-Batch-Dateien können, die auf einen Klick den Job.
Es ist kostenlos mit osronline.com zu unterzeichnen, und Sie werden wahrscheinlich zu diesem Artikel erhalten müssen sich anmelden. Und wenn Sie Treiber schreiben, WILL Sie sich anmelden. Diese Jungs haben dies zu tun für eine lange Zeit, und es gibt eine Menge wirklich guter Informationen auf dieser Website.