DF - Fuzz open and close test (Fiabilité)
Ce test effectue des milliers de séquences de création,d’ouverture et de fermeture et utilise plusieurs méthodes différentes pour ouvrir et fermer des instances de l’appareil ou des appareils spécifiés : Opérations d’ouverture de base, Opérations d’ouverture directes de l’appareil et test de contrainte Ouvrir et Fermer.
Opérations d’ouverture de base
Pendant les opérations d’ouverture de base, le test Fuzz ouvre (crée) à plusieurs reprises les instances des appareils spécifiés ou des appareils exportés par le pilote spécifié à l’aide de différentes méthodes et options.
Le test Fuzz effectue toujours les opérations d’ouverture de base. Vous n’avez pas besoin de les sélectionner et vous ne pouvez pas les exclure d’une session de test.
Le test Fuzz effectue toutes les opérations ouvertes en mode utilisateur en appelant les services système (ZwXxx Routines) appropriés à l’appareil. Si un appel ouvert retourne un handle à l’appareil, le test Fuzz utilise le handle pour effectuer les autres tests d’appareil sélectionnés pour la session de test.
Il existe cinq types d’opérations ouvertes de base :
Ouverture standard : le test Fuzz ouvre l’appareil de manière asynchrone et spécifie uniquement le nom de l’appareil natif.
Ouvrir avec une barre oblique inverse ajoutée : le test Fuzz émet un appel ouvert pour le nom de l’appareil suivi d’une barre oblique inverse (), comme \device\cdrom\, comme si l’appel devait ouvrir un répertoire racine au sein de l’appareil.
Cette opération détermine comment le pilote ou le système de fichiers gère les requêtes ouvertes dans son espace de noms. En particulier, si l’appareil ne prend pas en charge les demandes ouvertes dans son espace de noms, le pilote doit empêcher l’accès non autorisé, soit en échouant les demandes, soit en définissant la caractéristique d’appareil FILE_DEVICE_SECURE_OPEN lorsqu’il appelle IoCreateDevice ou IoCreateDeviceSecure pour créer l’objet d’appareil.
Ouvrir en tant que canal nommé : le test Fuzz ouvre l’appareil et établit un canal nommé vers l’appareil. Le paramètre d’accès (ShareAccess) est initialement défini sur lecture et écriture, mais est ajusté en cas d’échec de la requête. Si l’appareil ne prend pas en charge les canaux nommés, la demande doit échouer.
Ouvrir en tant que maillot : le test Fuzz ouvre l’appareil en tant que maillot. Si l’appareil ne prend pas en charge ce type de connexion, la demande doit échouer.
Ouvrir en tant que connexion d’arborescence : le test Fuzz ouvre l’appareil en tant que connexion d’arborescence à utiliser dans l’accès réseau à distance. Le paramètre d’accès (ShareAccess) est initialement défini sur lecture et écriture, mais est ajusté en cas d’échec de la requête. Si l’appareil ne prend pas en charge ce type de connexion, la demande doit échouer.
Les paramètres utilisés dans les appels ouverts varient pour tenir compte des caractéristiques de l’appareil et rendre probable la réussite des appels. Par exemple, si une opération d’ouverture de base échoue parce que l’appel ne répond pas aux exigences de sécurité de l’appareil, le test Fuzz répète l’opération d’ouverture avec une demande d’accès inférieur. Par exemple, si une opération d’ouverture qui a demandé un accès en écriture renvoie une erreur de violation de sécurité, l’ouverture est répétée avec une demande d’accès en lecture.
Opérations directes d’ouverture d’appareil
Pendant les opérations d’ouverture d’appareil directes, le test Fuzz ouvre l’appareil directement, en tant qu’appareil, et non en tant que fichier dans un système de fichiers. Les opérations d’ouverture d’appareil directes sont toujours synchrones. Si l’appel réussit, le test Fuzz utilise le handle fourni pour effectuer d’autres tests sélectionnés.
Ouvrir et fermer le test
Pendant le test Ouvrir et Fermer, le test Fuzz crée plusieurs threads, chacun d’entre eux effectuant des milliers de séquences de création, d’ouverture et de fermeture. Cela teste la capacité du pilote à gérer un volume extraordinaire d’appels autrement simples et anticipés.
Les tests Ouvrir et Fermer utilisent les mêmes options que celles utilisées dans les tests Opération d’ouverture de base et Ouvrir avec barre oblique inverse ajoutée et sont effectués juste avant ces tests.
Binaire de test : Devfund_FuzzTest.dll Méthode de test : DoOpenCloseTest
Détails du test
Spécifications |
|
Plateformes |
|
Versions prises en charge |
|
Durée d’exécution attendue (en minutes) | 15 |
Catégorie | Scénario |
Délai d’expiration (en minutes) | 180 |
Nécessite un redémarrage | false |
Nécessite une configuration spéciale | true |
Type | automatique |
Documentation supplémentaire
Les tests de cette zone de fonctionnalité peuvent avoir une documentation supplémentaire, y compris les conditions préalables, l’installation et les informations de résolution des problèmes, que vous trouverez dans les rubriques suivantes :
Exécution du test
Avant d’exécuter le test, effectuez la configuration du test comme décrit dans les conditions requises pour le test : Device.Fundamentals Reliability Testing Prerequisites.
Dépannage
Pour la résolution des problèmes génériques des échecs de test HLK, consultez Résolution des échecs de test HLK Windows.
Pour plus d’informations sur la résolution des problèmes spécifiques aux tests De base de l’appareil dans HLK et WDK, consultez la documentation supplémentaire Device.DevFund.
Plus d’informations
Paramètres
Nom du paramètre | Description des paramètres |
---|---|
DQ | Une requête WDTF SDEL utilisée pour identifier le ou les appareils cibles : https://go.microsoft.com/fwlink/?LinkId=232678 |
Wpa2PskAesSsid | Obligatoire UNIQUEMENT si DUT ou l’un de ses appareils enfants est un adaptateur Wi-Fi. Fournissez le SSID d’un réseau Wi-Fi WPA2 AES que le test peut utiliser pour tester l’adaptateur Wi-Fi. La valeur par défaut est « kitstestssid ». |
Wpa2PskPassword | Obligatoire UNIQUEMENT si DUT ou l’un de ses appareils enfants est un adaptateur Wi-Fi. Indiquez le mot de passe du réseau Wi-Fi WPA2 AES spécifié à l’aide du paramètre Wpa2PskAesSsid. La valeur par défaut est « password ». |
ChangeBufferProtectionFlags | True ou False. Modifie les indicateurs de protection de la mémoire des mémoires tampons passées à l’appareil testé. Les indicateurs de protection de la mémoire alternent entre aucun accès, lecture seule et lecture seule avec protection de page. |
Impersonate | True ou False. Exécute le test en tant qu’utilisateur non administratif. |
FillZeroPageWithNull | True ou False. Mappe la page zéro et la remplit avec des valeurs NULL. Ce test identifie les pilotes qui ne vérifient pas une référence de pointeur avant de déréférencement d’un pointeur. |
DoPoolCheck | True ou False. Surveille l’utilisation par le pilote des pools de mémoire système paginés et non paginés à l’aide d’étiquettes de pool et de listes de recherche. Cette option surveille également les modifications apportées au nombre d’exceptions gérées, ce qui peut indiquer des erreurs dans la gestion des exceptions. |
DoSync | True ou False. Ouvre également les handles d’appareil en mode SYNC (FILE_SYNCHRONOUS_IO_ALERT). Les opérations de lecture et d’écriture aléatoires sont ignorées. |
TestCycles | Nombre de cycles de test. |
DriverVerifierAdditionalDrivers | Pilotes supplémentaires auxquels le vérificateur de pilotes doit être activé |
DriverVerifierExcludedFlags | Espace réservé pour les indicateurs du vérificateur de pilotes qui peuvent être exclus manuellement pour la série de tests |
WDKDeviceID | ID d’appareil de l’appareil en cours de test |
QueryHardwareID | ID matériel de l’appareil en cours de test |
WDTFREMOTESYSTEM | Obligatoire UNIQUEMENT si DUT ou l’un de ses appareils enfants est une carte réseau câblée qui n’a pas d’adresse de passerelle IPv6. S’il est jugé nécessaire, indiquez une adresse IPv6 que la carte réseau de test peut effectuer un test ping pour tester les E/S réseau. Par exemple : fe80::78b6:810:9c12:46cd |
DriverVerifierCustomizeConfiguration | Spécifie que ce test peut vouloir mettre à jour automatiquement les paramètres du vérificateur de pilotes |