180 likes | 431 Views
Print Driver Testing Tools. Ashwin Needamangala Senior Test Development Lead Documents and Printing Team ashwinn@microsoft.com. Agenda. Driver Quality Challenges Tools for the software development lifecycle Development Phase Tools walk-through Demonstration of development tools
E N D
Print Driver Testing Tools Ashwin Needamangala Senior Test Development Lead Documents and Printing Team ashwinn@microsoft.com
Agenda • Driver Quality Challenges • Tools for the software development lifecycle • Development Phase • Tools walk-through • Demonstration of development tools • Testing Phase • Tools walk-through • Demonstration of testing tools • Call to Action
Driver Quality Challenges • Print driver problems hard to find early • No native support for resource tracking in print subsystem • No print-specific tools for extended runtime checks • Numerous distribution vehicles for print-specific developer and test tools • High rate of bug discovery during Windows Logo Kit (WLK) submission runs
Tools for the Software Development Lifecycle (SDL) • Development Phase • Print Verifier • IsXps • PTConform • LooksGood • INFGate • Testing Phase • Print Verifier • Windows Logo Kit (WLK) Tests • XPS Content Library
Development Phase • Print Verifier • Runtime verification tool • Designed to catch violators in the act • Flags errors via debugger breaks • Supports both XPSDrv and GDI drivers • Ships as part of Application Verifier • Verifies print resource usage (leaks, use-after-free, etc.) • Provides runtime PrintSchema conformance verification
Development Phase • IsXps • OPC and XPS conformance validation tool • Easy-to-use command line interface • Detailed error information helps quickly isolate bugs • Ships in the WDK, WLK and SDK • PTConform • PrintSchema conformance validation tool • Easy-to-use command line interface with detailed error information • Ships in the WDK, WLK and SDK • Integrated into Print Verifier for runtime PrintSchema conformance verification
Development Phase • LooksGood • Automated rendering verification tool • Uses Windows Presentation Foundation to render XPS to TIFF • Ships in the WDK and WLK • INFGate • Syntax checker for INF files of print and imaging drivers • Easy-to-use command line interface • Ships in the WDK and WLK
Testing Phase • Print Verifier • Use for detection of incorrect print resource usage (leaked printer handles, use-after-free, thread-unsafe use, etc.) • Turn on runtime PrintSchema conformance validation for easy detection of PrintTicket/PrintCapabilities bugs • Enable fault injection to detect bugs in failure code paths within the driver
Testing Phase • Windows Logo Kit (WLK) Tests • Driver Test Manager (DTM) infrastructure for normal execution of tests • Most tests can be executed without DTM • Copy executable from controller • \\Controller_Name\Tests\<arch>fre\nttest\printscantest\printing • Enable Application Verifier • Spoolsv.exe: Basics + Printing • PrintFilterPipelineSvc.exe: Basics + Printing • Test executable: Basics + Printing • Run Spoolsv.exe and PrintFilterPipelineSvc.exe under debugger • Execute test under debugger
Testing Phase • XPS Content Library • Conformant XPS content from diverse producers • Non-conformant or invalid XPS content (Violate-One) • Corrupted XPS content
Distribution Vehicles WDK = Windows Driver Kit WLK = Windows Logo Kit SDK = Software Development Kit
Summary • Numerous easy-to-use tools available • Cover range of software development lifecycle needs • Print Verifier is critically important • Using these tools through your SDL will increase the probability of having a failure-free WLK submission run
Call To Action • Push quality assurance upstream • Get familiar with available tools • Look in WDK, WLK and SDK for these tools • Use tools through all phases of the software development lifecycle • Try out Print Verifier against your XPSDrv filters and GDI minidrivers • Integrate Print Verifier into your development and test environments • Visit the Print Verifier blog
Additional Resources • Print Verifier Blog: http://blogs.msdn.com/PrintVerifier • Newsgroup on www.msdn.com • Microsoft.public.win32.programmer.tools • Tools • Download Application Verifier: http://go.microsoft.com/fwlink/?LinkID=79601 • Application Verifier Documentation:http://msdn2.microsoft.com/en-us/library/aa480483.aspx • Print Devices on the WHDC Web Site: http://www.microsoft.com/whdc/device/print/default.mspx • XPS: http://www.microsoft.com/xps • Email: xpsinfo@microsoft.com and prninfo@microsoft.com