DF: prueba de apertura y cierre aproximadas (confiabilidad)
Esta prueba realiza miles de secuencias de apertura y cierre de creación y emplea varias maneras diferentes de abrir y cerrar instancias del dispositivo o dispositivos especificados: Operaciones abiertas básicas, Operaciones abiertas de dispositivo directo y prueba de esfuerzo Open y Cierre.
Operaciones abiertas básicas
Durante las operaciones abiertas básicas, la prueba Fuzz abre repetidamente (crea) instancias de los dispositivos especificados o los dispositivos exportados por el controlador especificado mediante métodos y opciones diferentes.
La prueba Fuzz siempre realiza las operaciones abiertas básicas. No es necesario seleccionarlos y no puede excluirlos de una sesión de prueba.
La prueba Fuzz realiza todas las operaciones abiertas en modo de usuario llamando a los servicios del sistema (rutinas ZwXxx) adecuadas para el dispositivo. Si una llamada abierta devuelve un identificador al dispositivo, la prueba Fuzz usa el identificador para realizar las otras pruebas de dispositivo seleccionadas para la sesión de prueba.
Hay cinco tipos de operaciones abiertas básicas:
Estándar abierto: la prueba de Fuzz abre el dispositivo de forma asincrónica y especifica solo el nombre del dispositivo nativo.
Abrir con barra diagonal inversa agregada: la prueba Fuzz emite una llamada abierta para el nombre del dispositivo seguido de una barra diagonal inversa (), como \device\cdrom\, como si la llamada fuera a abrir un directorio raíz dentro del dispositivo.
Esta operación determina cómo el controlador o el sistema de archivos administra las solicitudes abiertas en su espacio de nombres. En concreto, si el dispositivo no admite solicitudes abiertas en su espacio de nombres, el controlador debe impedir el acceso no autorizado, ya sea con errores en las solicitudes o estableciendo la característica del dispositivo FILE_DEVICE_SECURE_OPEN cuando llama a IoCreateDevice o IoCreateDeviceSecure para crear el objeto de dispositivo.
Abrir como canalización con nombre: la prueba Fuzz abre el dispositivo y establece una canalización con nombre en el dispositivo. El parámetro de acceso (ShareAccess) se establece inicialmente en lectura y escritura, pero se ajusta si se produce un error en la solicitud. Si el dispositivo no admite canalizaciones con nombre, debe producir un error en la solicitud.
Abrir como un gráfico de correo: la prueba de prueba aproximada abre el dispositivo como un mailslot. Si el dispositivo no admite este tipo de conexión, debe producir un error en la solicitud.
Abrir como una conexión de árbol: la prueba Fuzz abre el dispositivo como una conexión de árbol para su uso en el acceso a la red remota. El parámetro de acceso (ShareAccess) se establece inicialmente en lectura y escritura, pero se ajusta si se produce un error en la solicitud. Si el dispositivo no admite este tipo de conexión, debe producir un error en la solicitud.
Los parámetros usados en las llamadas abiertas varían para adaptarse a las características del dispositivo y hacer que las llamadas se realicen correctamente. Por ejemplo, si se produce un error en una operación de apertura básica porque la llamada no cumple los requisitos de seguridad del dispositivo, la prueba Fuzz repite la operación abierta con una solicitud de acceso menor. Por ejemplo, si una operación abierta que solicitó acceso de escritura devuelve un error de infracción de seguridad, la apertura se repite con una solicitud de acceso de lectura.
Operaciones directas de apertura de dispositivos
Durante las operaciones directas de apertura del dispositivo, la prueba Fuzz abre el dispositivo directamente, como un dispositivo, no como un archivo en un sistema de archivos. Las operaciones directas de apertura de dispositivos siempre son sincrónicas. Si la llamada se realiza correctamente, la prueba Fuzz usa el identificador proporcionado para realizar otras pruebas seleccionadas.
Abrir y cerrar prueba
Durante la prueba Open y Close, la prueba Fuzz crea varios subprocesos, cada uno de los cuales realiza miles de secuencias de creación y cierre abierto. Esto prueba la capacidad del conductor para controlar un volumen extraordinario de llamadas simples y anticipadas.
La prueba Abrir y cerrar usa las mismas opciones que se usan en la operación abierta básica y Abrir con pruebas de barra diagonal inversa agregadas y se realizan justo antes de estas pruebas.
Binario de prueba: Devfund_FuzzTest.dll método Test: DoOpenCloseTest
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). Las operaciones aleatorias de lectura y escritura se omiten. |
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 | Identificador 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. |