Esportazione di un processo HLK non riuscito
È ora possibile esportare un processo non riuscito in modo che possa essere eseguito in un computer all'esterno dell'ambiente HLK completo. Per gli sviluppatori di driver, questa funzionalità consente l'esecuzione autonoma del test per semplificare il processo di riproduzione degli errori.
Un ambiente di test esportato simula attentamente un ambiente HLK dedicato. Ciò non garantisce tuttavia un'esecuzione di test identica. Un utente potrebbe dover gestire una delle circostanze seguenti:
- I riavvii non vengono gestiti dall'infrastruttura di test. L'utente dovrà riavviare manualmente il sistema in molti casi.
- In alcuni casi il test riavvia il sistema tramite l'infrastruttura client HLK all'interno di un'attività di test. Ad esempio, questi riavvii potrebbero non essere acquisiti nel file batch come richieste o riavvii durante l'esecuzione autonoma.
- I file di log non denominati in modo univoco scritti nello stesso percorso da attività diverse potrebbero comportare la sovrascrittura di alcuni di questi file.
- I parametri scritti nel file batch possono variare quando vengono eseguiti in sistemi diversi. Ad esempio, gli ID istanza hardware possono essere diversi per lo stesso hardware e driver quando vengono spostati in un sistema diverso e l'utente dovrà cercare il valore di destinazione corrispondente (da Gestione dispositivi, ad esempio) e aggiornare il file batch con il valore corretto.
- I test che dipendono da un processo di configurazione associato per configurare il sistema potrebbero non essere preparati correttamente perché HLK esporta solo il processo di test stesso.
Non tutti i risultati possono essere esportati. Nell'elenco seguente vengono descritti i limitazioni relativi ai test e ai risultati dei test esportabili:
- I test devono essere stati eseguiti e completati con uno stato superato, non riuscito o annullato.
- L'esecuzione del test deve restituire correttamente i log dell'infrastruttura dal sistema client. Questi file sono necessari per esportare il test.
- È possibile esportare solo singoli test del computer. I test che richiedono l'esecuzione di più computer non sono esportabili.
- I test devono essere eseguiti usando il client desktop HLK. Le esecuzioni di test nei sistemi client Windows Core o Proxy Mobile non sono esportabili.
- I test contrassegnati come non esportabili a causa di problemi di infrastruttura noti o altri motivi non sono esportabili.
- Nella scheda Risultati in HLK Studio fare clic con il pulsante destro del mouse sul risultato non riuscito e scegliere Esporta esecuzione test.
- Viene visualizzata una finestra di dialogo di salvataggio. Salvare il processo esportato in un'unità flash o in un'altra posizione esterna in modo da poter eseguire il test esportato in un altro computer. Lo stesso test non può essere esportato nella stessa posizione più di una volta. Una finestra di dialogo conferma che l'esportazione è stata completata.
- I file binari di test e un file batch necessari per eseguire il test in un sistema autonomo vengono esportati nella directory specificata. Il test esportato viene salvato in una sottodirectory con il nome e l'architettura del processo non riuscito. I componenti dell'infrastruttura che devono essere installati per eseguire il test vengono salvati in una sottodirectory denominata Infrastruttura insieme al nome dell'architettura a cui è destinata l'infrastruttura.
Nota
I componenti dell'infrastruttura devono essere installati una sola volta nel sistema di destinazione. Non è necessario reinstallare questi componenti per ogni processo non riuscito.
Ad esempio, il salvataggio di un processo x64 non riuscito denominato Imposta destinazione di rendering nella radice dell'unità E:\ esporta la cartella del processo e il programma di installazione dell'infrastruttura usando la struttura di cartelle seguente:
E:.
├───Infrastructure(X64)
└───Set_Render_Target(X64)
├───CoreClr
├───MinTe
│ └───CoreClr
├───NetFx2.0
├───NetFx4.5
├───verifysupportfiles
│ ├───CoreClr
│ ├───MinTe
│ │ └───CoreClr
│ ├───NetFx2.0
│ └───NetFx4.5
└───[windir]
└───system32
Il pacchetto di test esportato contiene diversi file e sottocartelle, tra cui:
- readme1st.txt : contiene informazioni su come eseguire il test esportato
- run.cmd : file batch usato per eseguire il test
- file binari e altri file necessari per eseguire il test
- setup(architecture).exe : installare il file eseguibile usato per installare l'infrastruttura
Eseguire la cartella di test esportata nel nuovo computer per il test. Il percorso non deve contenere spazi, in quanto ciò causerà l'esito negativo di alcuni test.
Eseguire (cartella di salvataggio)\Infrastructure(architecture)\setup(architecture).exe per installare i componenti dell'infrastruttura prima di eseguire il test. Il programma di installazione dell'infrastruttura visualizzerà una finestra di dialogo che indica se l'installazione dei componenti ha avuto esito positivo.
Nota
I componenti dell'infrastruttura devono essere installati una sola volta nel sistema di destinazione. Non è necessario reinstallare questi componenti per ogni processo non riuscito.
Nota
L'architettura del programma di installazione e del processo deve corrispondere all'architettura del sistema di destinazione in cui è installata.
- All'interno del file batch nella cartella (salva cartella)(nome processo)(architettura) è possibile apportare le modifiche necessarie al file batch da eseguire nel computer di test. Ad esempio, è possibile apportare le modifiche seguenti:
- Commento delle righe che non contribuiscono all'errore del processo
- Modifica dei valori dei parametri in modo che corrispondano al computer in cui viene eseguito il test esportato. Ad esempio, l'ID istanza dello stesso hardware è spesso diverso in due sistemi separati, quindi è necessario aggiornarlo prima di eseguire il test esportato.
- Aggiunta di comandi per connettere un debugger
Nota
Se un'attività visualizza il messaggio di errore "This test cannot be run as it might reboot the machine.", you must edit run.cmd, and append /rebootstatefile=(some_file_name) alla riga di comando dell'attività non riuscita, come illustrato nell'esempio seguente:
cmd /c TE.exe /inproc /enablewttlogging /appendwttlogging devfund_pcirootportsurpriseremovetest_wlk_certification.dll
/p:"MultiDeviceHardwareIdSdelQueryHardwareID=!MultiDeviceHardwareIdSdelQueryHardwareID!"
/p:"MultiDeviceInstanceIdSdelWDKDeviceID=!MultiDeviceInstanceIdSdelWDKDeviceID!" /p:"DQ=!DQ!"
/p:"TestCycles=!TestCycles!" /p:"IOPeriod=!IOPeriod!" /p:"WDTFREMOTESYSTEM=!WDTFREMOTESYSTEM!"
/p:"Wpa2PskAesSsid=!Wpa2PskAesSsid!"
/p:"DriverVerifierAdditionalDrivers=!DriverVerifierAdditionalDrivers!"
/p:"DriverVerifierExcludedFlags=!DriverVerifierExcludedFlags!"
/p:"DriverVerifierCustomizeConfiguration=!DriverVerifierCustomizeConfiguration!"
/rebootStateFile=rebootstatefile.xml
- Al termine delle modifiche, avviare un prompt dei comandi con privilegi amministrativi, passare alla directory di test ed eseguire run.cmd. Ogni attività nel file batch è associata a un numero di attività che può essere usato come punto di partenza durante l'esecuzione del file batch. Per impostazione predefinita, l'esecuzione viene sospesa tra le attività. Sono supportate le modalità di esecuzione seguenti:
- "Esegui" senza parametri avvia l'esecuzione all'inizio del file batch, con una pausa tra ogni attività.
- "Esegui 5" avvierà il file batch e passerà all'attività 5.
- "Esegui FAST" avvia il file batch in modalità rapida (nessuna pausa tra le attività) all'inizio.
- "Esegui 5 FAST" avvierà il file batch in modalità rapida (nessuna pausa tra le attività) all'attività 5.
- "RebootResume" avvierà il file batch dall'ultimo riavvio dall'ultima esecuzione dello script. È supportato anche il flag FAST.
- "RerunLast" avvierà il file batch dal comando in esecuzione all'ultima uscita del file batch. Questo comando può essere usato per eseguire di nuovo un'attività più volte premendo Control+C per uscire dallo script durante l'attività ed eseguendo rerunlast.cmd per eseguire nuovamente il comando precedente. È supportato anche il flag FAST.
- Dopo aver identificato e risolto il problema che causa l'esito negativo del test, è possibile distribuire la correzione e verificare che il processo abbia esito positivo nell'ambiente HLK.
Nota
Non è possibile importare risultati riusciti nell'ambiente HLK. È necessario eseguire di nuovo il processo dall'interno dell'ambiente.