Eseguire i test

Test SysFund basati sui dati e file di configurazione

È possibile trovare i test SysFund basati sui dati in <la cartella principale decompressa di EWDK>\Program Files\Windows Kits\10\Testing\Tests\Additional Tests\x64\DevFund\DataDriven. Il gruppo di test guidato dai dati è costituito dai file seguenti:

  • Cinque DLL di test che usano il file di configurazione XML WDTFTest.xml:
    • Sysfund_Device_IO_DataDriven.dll
    • Sysfund_PNP_DisableEnable_With_IO_BeforeAndAfter_DataDriven.dll
    • Sysfund_PNP_RemoveAndRestartDevice_DataDriven.dll
    • Sysfund_RebootRestart_With_IO_During_DataDriven.dll
    • Sysfund_Sleep_With_IO_BeforeAndAfter_DataDriven.dll
  • Due DLL di utilità che usano il file di configurazione XML WDTFTest.xml:
    • Utility_DeviceStatusCheck_DataDriven.dll
    • Utility_EnableDisableDriverVerifier_DataDriven.dll
  • File di configurazione XML:
    • WDTFTest.xml

Sistema - Test di I/O del dispositivo

  • Binario: Sysfund_Device_IO_DataDriven.dll
  • Questo test invia I/O a tutti i dispositivi nel sistema

Sistema - PNP (disabilitare e abilitare) con I/O prima e dopo (affidabilità)

  • Binario: Sysfund_PNP_DisableEnable_With_IO_BeforeAndAfter_DataDriven.dll
  • Documentazione

System - PNP Test di Rimozione Dispositivo (Affidabilità)

  • Binario: Sysfund_PNP_RemoveAndRestartDevice_DataDriven.dll
  • Documentazione

Sistema - Riavvio con I/O durante il processo (affidabilità)

  • Binario: Sysfund_RebootRestart_With_IO_During_DataDriven.dll
  • Documentazione

Sistema - Sospensione con I/O prima e dopo (Reliability SysFund)

  • Binario: Sysfund_Sleep_With_IO_BeforeAndAfter_DataDriven.dll
  • Documentazione

Controllo dello stato del dispositivo

  • Binario: Utility_DeviceStatusCheck_DataDriven.dll
  • Questa DLL dell'utilità verifica che i codici di problema dei dispositivi di destinazione siano 0 (funzionano correttamente). Viene in genere usato prima di eseguire i test SysFund per verificare che i dispositivi di destinazione funzionino correttamente.

Abilitare/disabilitare Driver Verifier

  • Binario: Utility_EnableDisableDriverVerifier_DataDriven.dll
  • Questa utilità abilita o disabilita Driver Verifier per i driver associati ai dispositivi di destinazione.

File di configurazione del test basato sui dati

  • File: WDTFTest.xml
  • Questo file contiene tutte le informazioni di configurazione per i test SysFund basati sui dati e le utilità associate.

Configura i test

Il file di configurazione del test basato sui dati (WDTFTest.xml) contiene diversi elementi che definiscono i parametri passati ai test e alle utilità. Tutti i test e le utilità basati sui dati condividono lo stesso file di configurazione (WDTFTest.xml). Per impostazione predefinita, il file di configurazione configura i test e le utilità in modo che siano destinati a tutti i dispositivi nel sistema, ma questo può essere facilmente personalizzato in base ai requisiti del passaggio di test.

Come illustrato di seguito, il file di configurazione può essere personalizzato in modo che i test e le utilità siano destinati a qualsiasi set di dispositivi nel sistema, da un dispositivo o driver a tutti i dispositivi e driver.

I test e le utilità useranno solo gli elementi necessari e ignoreranno tutti gli altri elementi.

WDTFTest.xml descrizioni e utilizzo dei parametri

Configurazione della query SDEL

Il linguaggio SDEL viene usato per creare la query che restituisce i dispositivi di destinazione dei test e delle utilità. Riunire i parametri correlati a SDEL seguenti usando le istruzioni AND per creare la query completa:

SDEL: il valore IsDevice specifica il set completo di dispositivi nel sistema. In genere, questo parametro non viene modificato a meno che non si voglia testare solo un driver o un dispositivo specifico. I parametri correlati a SDEL successivi creeranno un subset di dispositivi da questo superset specificando driver o dispositivi che devono essere esclusi dai test, in modo che questo parametro possa essere lasciato invariato.

    <Parameter Name="SDEL">IsDevice</Parameter>

SdelExcludeVMDevnode: esclude i nodi del dispositivo critici per l'operazione della macchina virtuale e non possono essere disabilitati. Questo parametro deve essere lasciato invariato perché non ha alcun effetto se il sistema non è una macchina virtuale.

    <Parameter Name="SdelExcludeVMDevnode">(DisplayName!='Microsoft Hyper-V Virtual Machine Bus')</Parameter>

SdelExcludeDrivers: questa è la posizione consigliata per usare SDEL per escludere driver e/o dispositivi. Ad esempio, è possibile usarlo per escludere i driver con bug noti o per restringere l'ambito del test. L'esecuzione con l'impostazione predefinita di (DriverBinaryNames!='') prevede il targeting di tutti i driver di tutti i dispositivi nel sistema (ad eccezione del nodo del dispositivo "Bus di macchine virtuali Microsoft Hyper-V", come sopra indicato).

    <Parameter Name="SdelExcludeDrivers">(DriverBinaryNames!='')</Parameter>

Parametri di configurazione dei test generali

TestCycles: specifica il numero di iterazioni che il test deve eseguire.

    <Parameter Name="TestCycles">1</Parameter>

IOPeriod Specifica il numero di minuti di I/O da eseguire.

    <Parameter Name="IOPeriod">1</Parameter>

ResumeDelay: specifica il numero di secondi di attesa prima dell'invio di I/O dopo la ripresa dalla sospensione.

    <Parameter Name="ResumeDelay">10</Parameter>

Wpa2PskAesSsid: specifica il nome del punto di accesso WiFi di test.

    <Parameter Name="Wpa2PskAesSsid">WiFiRouterName</Parameter>

Wpa2PskPassword: specifica la password del punto di accesso WiFi di test.

    <Parameter Name="Wpa2PskPassword">WiFiRouterPassword</Parameter>

Parametri che si applicano solo a utility_enabledisabledriververifier_datadriven.dll

DriverVerifierLevel: il valore predefinito di 0x209BB è uguale a "flag standard" per Driver Verifier.

    <Parameter Name="DriverVerifierLevel">0x209BB</Parameter>

AddOnly: specifica che i risultati della query SDEL risultanti devono aggiungere driver a Driver Verifier senza rimuovere alcun elemento. Ciò è utile se Driver Verifier è già abilitato in un set di driver che devono essere aggiunti anziché sostituiti.

    <Parameter Name="AddOnly">false</Parameter>

NoReboot: specifica che il computer non deve essere riavviato automaticamente per abilitare le impostazioni del driver Verifier. Se il parametro NoReboot è impostato su true, le impostazioni del driver verifier aumentato non avranno effetto finché il computer non viene riavviato manualmente.

    <Parameter Name="NoReboot">false</Parameter>

Abilitare Driver Verifier

Per attivare Driver Verifier, eseguire il comando seguente:

    te.exe utility_enabledisabledriververifier_datadriven.dll /name:Utility_DriverVerifier#0::EnableDriverVerifier /rebootstatefile=state.xml

In alcuni casi, il computer potrebbe non essere riavviato. Si tratta di una limitazione tecnica nota del framework di test. Se il computer non inizia il riavvio entro 30 secondi dopo la modifica delle impostazioni di Driver Verifier con questa utilità, è necessario riavviare manualmente il computer per rendere effettive le impostazioni aggiornate di Driver Verifier.

Dopo il riavvio, aprire un prompt dei comandi ed eseguire verifier /querysettings per assicurarsi che Driver Verifier sia stato abilitato.

Verificare che i dispositivi funzionino

I test SysFund basati sui dati prevedono che tutti i dispositivi destinati ai test abbiano un codice di problema pari a 0 (funziona correttamente). Per assicurarsi che tutti i dispositivi di destinazione funzionino correttamente, usare l'utilità DeviceStatusCheck:

    te.exe Utility_DeviceStatusCheck_DataDriven.dll

Questa utilità usa le query SDEL definite in WDTFTest.xml per trovare il set di dispositivi sottoposto a test e verificare che abbiano tutti codice problema 0. Un risultato "Passato" indica che il set di dispositivi sottoposti a query funziona correttamente. Esaminare TestTextLog.log per analizzare gli errori. Per una spiegazione dei codici di problema di Gestione dispositivi, vedere Messaggi di errore di Gestione dispositivi.

Avviare un test

Per avviare uno dei test SysFund basati sui dati, usare i comandi seguenti:

    te.exe Sysfund_PNP_DisableEnable_With_IO_BeforeAndAfter_DataDriven.dll

    te.exe Sysfund_Sleep_With_IO_BeforeAndAfter_DataDriven.dll

Perfezionare il file di configurazione

È necessario eseguire il backup della copia originale di WDTFTest.xml prima di apportare modifiche.

Il file di configurazione del test (WDTFTest.xml) può essere perfezionato in base ai risultati dei test SysFund basati sui dati. Ad esempio, se un test SysFund basato sui dati viene inizialmente eseguito per tutti i dispositivi nel sistema e un determinato dispositivo o driver non riesce il test, il file di configurazione del test può essere aggiornato per filtrare il test del dispositivo mentre il bug viene analizzato. Ciò consente di continuare i test in parallelo mentre vengono esaminati i bug.

Per filtrare un dispositivo specifico, modificare l'elemento SdelExcludeDrivers in WDTFTest.xml. Il codice seguente filtra mydriver.sys, ad esempio:

<Parameter Name="SdelExcludeDrivers">(DriverBinaryNames!=’mydriver.sys’)</Parameter>

Analogamente, il codice seguente filtra un dispositivo in base al percorso dell'istanza del dispositivo:

<Parameter Name="SdelExcludeDrivers">(DeviceId!=’my\device\id’)</Parameter>

È possibile creare query SDEL complesse per escludere più dispositivi:

<Parameter Name="SdelExcludeDrivers">(DriverBinaryNames!=’mydriver1.sys’ AND DriverBinaryNames!=’mydriver2.sys’)</Parameter>

Dopo aver corretto i bug in mydriver1.sys e mydriver2.sys, è possibile reimpostare l'elemento SdelExcludeDrivers in WDTFTest.xml sul valore predefinito per includere questi driver e i dispositivi associati come destinazioni:

    <Parameter Name="SdelExcludeDrivers">(DriverBinaryNames!='')</Parameter>

Risoluzione dei problemi

Query SDEL malformata nel file di configurazione

Il messaggio di errore seguente indica una query SDEL in formato non corretto contenuta nel file di configurazione WDTFTest.xml:

    Error: Verify: SUCCEEDED(m_pDeviceDepot->Query(CComBSTR(DQ), &m_pTestTargets)) - Value (0x80070057) [File: onecore\base\tools\wdtf\tests\devfund\datadriven\sysfund_pnp_disableenable_with_io_beforeandafter_datadriven\test.cpp, Function: PNP_DisableEnable_With_IO_BeforeAndAfter::PNP_DisableEnable_With_IO_BeforeAndAfter_DataDriven_Test, Line: 231]
    EndGroup: PNP_DisableEnable_With_IO_BeforeAndAfter::PNP_DisableEnable_With_IO_BeforeAndAfter_DataDriven_Test#0 [Failed]

HRESULT '0x80070057' significa "E_INVALIDARG: uno o più argomenti non sono validi". Controllare attentamente il file di configurazione WDTFTest.xml rispetto alla documentazione SDEL e cercare una query malformata che potrebbe causare questo errore.

Il test è bloccato perché potrebbe riavviare il computer

Alcuni test SysFund possono riavviare il computer durante i test. Per eseguire un test in grado di riavviare il computer, è necessario usare il parametro "/rebootstatefile":

    te.exe <testname> /rebootstatefile=state.xml

Se il parametro /rebootstatefile non viene passato al test, verrà visualizzato il messaggio seguente e il test verrà bloccato:

    TestBlocked: TAEF: This test cannot be run as it might reboot the machine.
    EndGroup: Sysfund_RebootRestart_With_IO_During::Sysfund_RebootRestart_With_IO_During_DataDriven_Test#0 [Blocked]

Il test è bloccato perché la query SDEL contiene caratteri '&'

Quando si specifica una query SDEL destinata a un dispositivo in base al valore del percorso dell'istanza del dispositivo, i caratteri '&' nel percorso devono essere sostituiti con "&". Il messaggio seguente indica un file di configurazione WDTFTest.xml che contiene caratteri '&' nel percorso dell'istanza del dispositivo:

    TestBlocked: TAEF: [HRESULT: 0xC00CEE22] Error while getting value for 'SDEL' in table 'DataDrivenSysfundTable' in DataSource 'WDTFTest.xml' on line 24.
    EndGroup: PNP_DisableEnable_With_IO_BeforeAndAfter::PNP_DisableEnable_With_IO_BeforeAndAfter_DataDriven_Test#error [Blocked]

Si tratta del codice XML del file di configurazione WDTFTest.xml che ha generato il messaggio di errore precedente:

    <Parameter Name="SDEL">IsDevice AND deviceid='PCI\VEN_11AB&DEV_2B38&SUBSYS_045E0003&REV_00\4&91A2562&0&00E8'</Parameter>

Questo è il valore ben formato per deviceid che corregge l'errore:

    <Parameter Name="SDEL">IsDevice AND deviceid='PCI\VEN_11AB&DEV_2B38&SUBSYS_045E0003&REV_00\4&91A2562&0&00E8'</Parameter>

Altri problemi

Per informazioni sulla risoluzione di altri problemi non elencati qui, vedere La documentazione aggiuntiva di Device.DevFund.