DF - Test IOCTL aléatoire Fuzz (Fiabilité)
Pendant les tests aléatoires, le test Fuzz émet une série d’appels à la fonction DeviceIoControl avec des codes de fonction, des types d’appareils, des méthodes de transfert de données et des exigences d’accès qui sont sélectionnés au hasard à partir d’une plage de valeurs spécifiée. Les appels incluent des mémoires tampons d’entrée et de sortie avec des pointeurs et des longueurs de mémoire tampon valides et non valides, ainsi que du contenu généré de manière aléatoire.
Le test Fuzz effectue les tests aléatoires sur tous les appareils ouverts pendant le test ouvert de base et des tests ouverts supplémentaires. Vous pouvez personnaliser ce test à l’aide des paramètres suivants :
- Utilisez MinFunctionCode et MaxFunctionCode pour spécifier la plage de codes de fonction IOCTL ou FSCTL utilisés dans les appels
- Utilisez MinDeviceType et MaxDeviceType pour spécifier la plage de types d’appareils utilisés dans les appels
- Utilisez SeedNumber pour spécifier un numéro de départ pour la routine de génération de nombres aléatoires.
La fonction utilisée par le test Fuzz pour générer des nombres aléatoires pour le test utilise un nombre initial, un nombre de départ pour l’algorithme de génération de nombres aléatoires. Pour reproduire les conditions de test, utilisez le paramètre de numéro de départ pour spécifier le numéro de départ utilisé dans l’essai d’origine.
Un test aléatoire personnalisé est inclus dans le cadre du test aléatoire. Le test aléatoire personnalisé utilise les résultats du test aléatoire pour examiner plus en détail la réponse des conducteurs aux demandes FSCTL. Les sondes de test aléatoire personnalisées ont manqué le test aléatoire et celles sur lesquelles le conducteur n’a pas répondu comme prévu en fonction des status retournées par les appels de test aléatoires.
Binaire de test : Devfund_FuzzTest.dll Méthodes de test : DoRandomFSCTLTest
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érencer 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 de balises de pool et de listes de lookaside. Cette option surveille également les modifications du nombre d’exceptions gérées, ce qui peut indiquer des erreurs dans la gestion des exceptions. |
DoSync | True ou False. Ouvre également les descripteurs 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 dont le vérificateur de pilotes doit être activé |
DriverVerifierExcludedFlags | Espace réservé pour les indicateurs du vérificateur de pilote 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 déterminé comme obligatoire, 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 pilote |
MinDeviceType | Spécifie la valeur minimale du champ DeviceType dans les IOCTL. La valeur minimale possible est 0. Utilisez -1 pour la détection automatique de type (par défaut). |
MaxDeviceType | Spécifie la valeur maximale du champ DeviceType dans les IOCTL. La valeur maximale possible est 65535. Utilisez -1 pour la détection automatique de type (par défaut). |
MinFunctionCode | Spécifie la valeur minimale du champ FunctionCode dans les IOCTL. La valeur minimale possible est 0. |
MaxFunctionCode | Spécifie la valeur maximale du champ FunctionCode dans les IOCTL. La valeur maximale possible est 4095. |
MinInBuffer | Spécifie la taille minimale, en octets, des mémoires tampons d’entrée que le test transmet au pilote dans IOCTL. |
MaxInBuffer | Spécifie la taille maximale, en octets, des mémoires tampons d’entrée que le test transmet au pilote dans IOCTL. |
MinOutBuffer | Spécifie la taille minimale, en octets, des mémoires tampons de sortie que le test transmet au pilote dans IOCTL. |
MaxOutBuffer | Spécifie la taille maximale, en octets, des mémoires tampons de sortie que le test transmet au pilote dans IOCTL. |
MaxRandomCalls | Spécifie le nombre maximal d’appels que le test émet. |
MaxTailoredCalls | Spécifie le nombre maximal d’appels que le test émet pendant le test aléatoire personnalisé. |
SeedNumber | Spécifie le numéro de départ utilisé pour générer des IOCTL aléatoires. |