DF: prueba FSCTL aleatoria aproximada (confiabilidad)
Durante las pruebas aleatorias, la prueba Fuzz emite una serie de llamadas a la función DeviceIoControl con códigos de función, tipos de dispositivo, métodos de transferencia de datos y requisitos de acceso seleccionados de forma aleatoria a partir de un intervalo de valores especificado. Las llamadas incluyen búferes de entrada y salida con punteros y longitudes de búfer válidos y no válidos, y contenido generado aleatoriamente.
La prueba Fuzz realiza las pruebas aleatorias en todos los dispositivos abiertos durante la prueba abierta básica y pruebas abiertas adicionales. Puede personalizar esta prueba mediante los parámetros siguientes:
- Use MinFunctionCode y MaxFunctionCode para especificar el intervalo de códigos de función IOCTL o FSCTL usados en las llamadas.
- Use MinDeviceType y MaxDeviceType para especificar el intervalo de tipos de dispositivo usados en las llamadas.
- Use SeedNumber para especificar un número de inicialización para la rutina de generación de números aleatorios.
La función que usa la prueba Fuzz para generar números aleatorios para la prueba usa un número de inicialización, un número inicial para el algoritmo de generación de números aleatorios. Para reproducir las condiciones de prueba, use el parámetro de número de inicialización para especificar el número de inicialización que se usó en la prueba de prueba original.
Se incluye una prueba aleatoria adaptada como parte de la prueba aleatoria. La prueba aleatoria adaptada utiliza los resultados de la prueba aleatoria para examinar la respuesta de los conductores a las solicitudes FSCTL con más detalle. Las áreas de sondeo de pruebas aleatorias adaptadas a las que se perdió la prueba aleatoria y aquellas en las que el controlador no respondió según lo esperado en función del estado devuelto por las llamadas de prueba aleatorias.
Binario de prueba: Devfund_FuzzTest.dll Métodos de prueba: DoRandomFSCTLTest
Detalles de las pruebas
Especificaciones |
|
Plataformas |
|
Versiones admitidas |
|
Tiempo de ejecución esperado (en minutos) | 15 |
Categoría | Escenario |
Tiempo de espera (en minutos) | 180 |
Requiere reinicio | false |
Requiere una configuración especial | true |
Tipo | automatic |
Documentación adicional
Las pruebas de esta área de características pueden tener documentación adicional, incluidos los requisitos previos, la configuración y la información de solución de problemas, que se pueden encontrar en los temas siguientes:
Ejecución de la prueba
Antes de ejecutar la prueba, complete la configuración de la prueba como se describe en requisitos de prueba: Requisitos previos de pruebas de confiabilidad de Device.Fundamentals.
Solución de problemas
Para solucionar problemas genéricos de errores de prueba de HLK, consulte Solución de problemas de errores de prueba de HLK de Windows.
Para obtener información de solución de problemas específica de las pruebas de aspectos básicos del dispositivo en HLK y WDK, consulte la documentación adicional de Device.DevFund.
Más información
Parámetros
Nombre de parámetro | Descripción de los parámetros |
---|---|
DQ | Una consulta SDEL WDTF que se usa para identificar los dispositivos de destino: https://go.microsoft.com/fwlink/?LinkId=232678 |
Wpa2PskAesSsid | Solo se requiere si DUT o uno de sus dispositivos secundarios es un adaptador WiFi. Proporcione SSID de una red WiFi AES WPA2 que la prueba pueda usar para probar el adaptador WiFi. El valor predeterminado es "kitstestssid". |
Wpa2PskPassword | Solo se requiere si DUT o uno de sus dispositivos secundarios es un adaptador WiFi. Proporcione la contraseña de la red WiFi WPA2 AES especificada mediante el parámetro Wpa2PskAesSsid. El valor predeterminado es "password". |
ChangeBufferProtectionFlags | True o False. Cambia las marcas de protección de memoria de los búferes pasados al dispositivo probado. Las marcas de protección de memoria alternan entre ningún acceso, solo lectura y solo lectura con la protección de páginas. |
Impersonate | True o False. Ejecuta la prueba como un usuario no administrativo. |
FillZeroPageWithNull | True o False. Asigna la página cero y la rellena con valores NULL. Esta prueba identifica los controladores que no comprueban una referencia de puntero antes de desreferenciar un puntero. |
DoPoolCheck | True o False. Supervisa el uso del controlador de los grupos de memoria del sistema paginados y no paginados mediante etiquetas de grupo y listas de búsqueda. Esta opción también supervisa los cambios en el número de excepciones controladas que podrían indicar errores en el control de excepciones. |
DoSync | True o False. También abre identificadores de dispositivo en modo SYNC (FILE_SYNCHRONOUS_IO_ALERT). Se omiten las operaciones aleatorias de lectura y escritura. |
TestCycles | Número de ciclos de prueba. |
DriverVerifierAdditionalDrivers | Controladores adicionales que deben tener habilitado el Comprobador de controladores |
DriverVerifierExcludedFlags | Marcador de posición para las marcas del comprobador de controladores que se pueden excluir manualmente para la ejecución de pruebas |
WDKDeviceID | Id. de dispositivo del dispositivo sometido a prueba |
QueryHardwareID | Identificador de hardware del dispositivo sometido a prueba |
WDTFREMOTESYSTEM | Solo se requiere si DUT o uno de sus dispositivos secundarios es una NIC cableada que no tiene una dirección de puerta de enlace IPv6. Si se determina que es necesario, proporcione una dirección IPv6 a la que la NIC de prueba pueda hacer ping para probar la E/S de red. Por ejemplo: fe80::78b6:810:9c12:46cd |
DriverVerifierCustomizeConfiguration | Especifica que esta prueba puede querer actualizar automáticamente la configuración del comprobador de controladores. |
MinDeviceType | Especifica el valor mínimo del campo DeviceType en las IOPS. El valor mínimo posible es 0. Use -1 para la detección automática de tipos (preferido). |
MaxDeviceType | Especifica el valor máximo del campo DeviceType en las IOPS. El valor máximo posible es 65535. Use -1 para la detección automática de tipos (preferido). |
MinFunctionCode | Especifica el valor mínimo del campo FunctionCode en los FSCTLs. El valor mínimo posible es 0. |
MaxFunctionCode | Especifica el valor máximo del campo FunctionCode en los FSCTLs. El valor máximo posible es 4095. |
MinInBuffer | Especifica el tamaño mínimo, en bytes, de los búferes de entrada que la prueba pasa al controlador en FSCTLs. |
MaxInBuffer | Especifica el tamaño máximo, en bytes, de los búferes de entrada que la prueba pasa al controlador en FSCTLs. |
MinOutBuffer | Especifica el tamaño mínimo, en bytes, de los búferes de salida que la prueba pasa al controlador en FSCTLs. |
MaxOutBuffer | Especifica el tamaño máximo, en bytes, de los búferes de salida que la prueba pasa al controlador en FSCTLs. |
MaxRandomCalls | Especifica el número máximo de llamadas que emite la prueba. |
MaxTailoredCalls | Especifica el número máximo de llamadas que emite la prueba durante la prueba aleatoria adaptada. |
SeedNumber | Se especificó el número de inicialización utilizado para generar FSCTLs aleatorios. |