Travis Martin, Lead Developer Adam Shapiro, Program Manager Windows Device Platform Group Microsoft Corporation.

Slides:



Advertisements
Similar presentations
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Advertisements

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Preface Demo A Quick Thank You How Did We Do It?
Feature: Identity Management - Login © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Using The Windows Device Testing Framework To Simplify Windows Driver Testing Travis Martin, Lead Developer Adam Shapiro, Program Manager Windows Device.
Feature: Reprint Outstanding Transactions Report © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
Feature: Purchase Requisitions - Requester © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
MIX 09 4/15/ :14 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
demo Default WANGPSLookup Default WANGPS.
Feature: Payroll and HR Enhancements © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
Co- location Mass Market Managed Hosting ISV Hosting.
Windows 7 Training Microsoft Confidential. Windows ® 7 Compatibility Version Checking.
Multitenant Model Request/Response General Model.
demo.
Feature: Purchase Order Prepayments II © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Announcing Demo Announcing.
Feature: OLE Notes Migration Utility
Feature: Web Client Keyboard Shortcuts © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Feature: SmartList Usability Enhancements © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
Session 1.
Built by Developers for Developers…. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
 Rico Mariani Architect Microsoft Corporation.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Assign an Item to Multiple Sites © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
WinHEC /22/2017 © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Print Remaining Documents © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
Connect with life Connect with life
NEXT: Overview – Sharing skills & code.
demo Receive Inventory Export Parse and Normalize.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Document Attachment –Replace OLE Notes © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
Feature: Suggested Item Enhancements – Sales Script and Additional Information © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows.
Feature: Customer Combiner and Modifier © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Feature: Employee Self Service Timecard Entry © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
announcing Dev Manager Do I understand what we’ve built? Developer Can I bet on using this shared component? Testers What’s changed since I last.
Ian Ellison-Taylor General Manager Microsoft Corporation PC27.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
demo Instance AInstance B Read “7” Write “8”

customer.
demo © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
demo Demo.
demo QueryForeign KeyInstance /sm:body()/x:Order/x:Delivery/y:TrackingId1Z
Feature: Suggested Item Enhancements – Analysis and Assignment © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and.
projekt202 © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
The CLR CoreCLRCoreCLR © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks.
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.

IoCompleteRequest (Irp);... p = NULL; …f(p);
Ctrl-K, X Ctrl-K, S
DataModel VisualizationExternal Assets Workbook Excel Services API BrowserRich Apps EWA JSOMBrowser REST BrowserRich Apps.
Возможности Excel 2010, о которых следует знать
Title of Presentation 11/22/2018 3:34 PM
Title of Presentation 12/2/2018 3:48 PM
1/3/2019 1:21 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
8/04/2019 9:13 PM © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Виктор Хаджийски Катедра “Металургия на желязото и металолеене”
Title of Presentation 5/12/ :53 PM
Шитманов Дархан Қаражанұлы Тарих пәнінің
Title of Presentation 5/24/2019 1:26 PM
Inside the Windows 8 driver developer workflow
日本初公開!? Vista の新機能を実演 とっちゃん わんくま同盟 7/23/2019 9:09 AM
Title of Presentation 7/24/2019 8:53 PM
Presentation transcript:

Travis Martin, Lead Developer Adam Shapiro, Program Manager Windows Device Platform Group Microsoft Corporation

Overview and framework goals Core WDTF concepts WDTF-based scenarios Demo WDTF-based tests in the WLK Demo

A set of building blocks that enable developers to build device centric automated scenarios A set of easily customized Windows Logo Kit (WLK) test scenarios built using the framework

Common Scenario Stress with IO Test (WLK) USB HID Test DMI Install/Uninstall/Upgrade/Rollback Test Simple IO Power Management Enable Disable Install Uninstall Transfer

High Quality Driver Driver Logic WDF High Quality Test Test Program Logic WDTF

Simplified Testing Generic Testing Test PnP, Power Management, and I/O in your driver/device Compatible with the WLK’s Driver Test Manager (DTM)

SimpleIO WDTF Core Object Model Target Device(s) and/or System NetAudioVolumeVideo DeviceManagement Console Legend Optionally Uses Uses Operating System or Driver API Provided with WDTF You Implement (or Modify a Sample) SimpleIOStress Scenario Written in any language that can consume COM objects (usually JScript, VBScript or C#)

Scenario writer uses WDTF to Find devices Control devices Control the system Verify functionality Log results Optionally wrap the scenario with DTM

// Instantiate WDTF var WDTF = new JScript_WDTF(); // Get collection of all network devices var Devices = WDTF.DeviceDepot.Query("class=Net"); // Loop over each device in the collection for(var idx in Devices) { // Find the DeviceManagement action for devices // Find the DeviceManagement action for devices var DevMan = Devices[idx].GetInterface("DeviceManagement"); var DevMan = Devices[idx].GetInterface("DeviceManagement"); DevMan.Disable(); // Disable device DevMan.Disable(); // Disable device WScript.Sleep(10000); // wait 10 seconds WScript.Sleep(10000); // wait 10 seconds DevMan.Enable(); // Enable the device DevMan.Enable(); // Enable the device}

A target object represents a single device or system Collections of Targets A collection of zero or more target instances Find each target by iterating through a collection A scenario can have several target collections

The IWDTF interface is the starting point JScript example: Creating a WDTF object var WDTF = new JScript_WDTF(); WDTF.SystemDepot property Provides a target that represents the system as a whole var System = WDTF.SystemDepot.ThisSystem; WDTF.DeviceDepot property Represents a collection of all the devices on the system Provides a target that represents the root device var RootDevice = WDTF.DeviceDepot.RootDevice; Query for any subset of those devices

Select a subset of targets from any collection (e.g.,: DeviceDepot) var Devices = DeviceDepot.Query(“Volume::FreeSize> ”); Query criteria System configuration data – hardware and software This data is collected by WDTF Data can be technology type specific (disk, volume…) See “WDTF Reference” in WDK documentation

// Instantiate WDTF var WDTF = new JScript_WDTF(); if (WDTF.DeviceDepot.RootDevice.Eval(“child/service=‘ftdisk’”)) { WScript.Echo(“The Root device has a direct child who’s ” + WScript.Echo(“The Root device has a direct child who’s ” + “service name is ‘ftdisk’”); “service name is ‘ftdisk’”);}else{ WScript.Echo(“The Root device does not have any direct child with a ” + WScript.Echo(“The Root device does not have any direct child with a ” + “service name of ‘ftdisk’”); “service name of ‘ftdisk’”);}

// Instantiate WDTF var WDTF = new JScript_WDTF(); var ProcArch = WDTF.SystemDepot.ThisSystem.GetValue(“ProcArch”); WScript.Echo(“We are executing on an ” + ProcArch + “ build of Windows.”);

// Instantiate WDTF var WDTF = new JScript_WDTF(); // Start with the root device PrintAll_recursive(WDTF.DeviceDepot.RootDevice); function PrintAll_recursive(Device) { WScript.Echo(“Name: ” + Device.GetValue(“FriendlyName”); WScript.Echo(“Name: ” + Device.GetValue(“FriendlyName”); WScript.Echo(“Class: ” + Device.GetValue(“Class”); WScript.Echo(“Class: ” + Device.GetValue(“Class”); WScript.Echo(“DeviceID: ” + Device.GetValue(“DeviceID”); WScript.Echo(“DeviceID: ” + Device.GetValue(“DeviceID”); WScript.Echo(“”); WScript.Echo(“”); var Devices = Device.GetRelations(“child”); var Devices = Device.GetRelations(“child”); // Recurse down for each device in the collection // Recurse down for each device in the collection for (var idx in Devices) for (var idx in Devices) { PrintAll_recursive(Devices[idx]); PrintAll_recursive(Devices[idx]); }}

WDTF Core Object Model Target Device(s) and/or System Legend Optionally Uses Uses Operating System or Driver API Provided with WDTF You Implement (or Modify a Sample) SimpleIO NetAudioVolumeVideo DeviceManagement Console SimpleIOStress Scenario Written in any language that can consume COM objects (usually JScript, VBScript or C#)

Simple control interfaces for a target Synchronous DevMan = Device.GetInterface(“DeviceManagement”); Console = WDTF.SystemDepot.ThisSystem.GetInterface(“Console”); SimpleIO Small, re-usable components that test one particular area of functionality for a target Open, exercise, and close a device Framework provides a set of device specific SimpleIO (Audio, Network, Volumes, Optical Media, and Video) Framework finds and loads the correct implementation for a target

Asynchronous SimpleIO Wrapper Start, Pause, Stop, Resume, etc Framework finds and loads the correct underlying SimpleIO implementation for a target var Stress = Device.GetInterface(“SimpleIOStress”);

ReleasedConsole Power management, reboot, shutdown, logoff, etc DeviceManagement Disable/Enable, Install/Uninstall, resources, driver packages SimpleIO Simple synchronous I/O verification for a target SimpleIOStress Implemented by WDTF as an asynchronous layer over SimpleIO Planned for V2 WMI Fuzzer

// Instantiate WDTF var WDTF = new JScript_WDTF(); // Get collection of all network devices var Devices = WDTF.DeviceDepot.Query(“class=Net”); // Loop over each device in the collection for(var idx in Devices) { // Find the DeviceManagement action for devices // Find the DeviceManagement action for devices var DevMan = Devices[idx].GetInterface(“DeviceManagement”); var DevMan = Devices[idx].GetInterface(“DeviceManagement”); DevMan.Disable(); // Disable device DevMan.Disable(); // Disable device WScript.Sleep(10000); // wait 10 seconds WScript.Sleep(10000); // wait 10 seconds DevMan.Enable(); // Enable the device DevMan.Enable(); // Enable the device}

WDTF Core Object Model Target Device(s) and/or System Legend Optionally Uses Uses Operating System or Driver API Provided with WDTF You Implement (or Modify a Sample) SimpleIO NetAudioVolumeVideo DeviceManagement Console SimpleIOStress You Implement Your Own Action Interface … Scenario Written in any language that can consume COM objects (usually JScript, VBScript or C#) You Implement an Existing Interface …

Travis Martin SDE Windows Device Platform Group

Basic_SimpleIO.wsfDisable_Enable_With_IO.wsfSleep_Stress_With_IO.wsfCommon_Scenario_Stress_With_IO.wsf

Using framework tools and documentation Examining the WLK tests/samples Using TraceView

Attend the WDTF “Hands-On” Lab and Chalk Talk Run the WDTF-based scenarios in the WLK against your device/driver Create new WDTF-based scenarios Create SimpleIO Actions for your devices Optionally, create new Actions Use your new Actions in your scenarios

Documentation “Other Tools” section of the WDK Docs Related Sessions DVR-T388 Building USB Device Simulations with DSF DVR-C451 Chalk Talk Hands-on Lab questions to: microsoft.com microsoft.com

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.