Compartir a través de


Pruebas funcionales y de esfuerzo de GPIO WinRT

Las pruebas gpIO realizan pruebas funcionales y de esfuerzo de controladores GPIO a través de las API de WinRT. El ámbito de las pruebas incluye:

  • Compruebe que la lectura, la escritura y las interrupciones funcionan en todos los patillas mediante bucles invertidos. Consulte la descripción de Board.xml siguiente para especificar la configuración de bucle invertido.
  • Comprobación de que un pin revierte a su estado predeterminado cuando se cierra su identificador.
  • Compruebe que los pines esperados se exponen comparando los patillas enumeradas con un archivo de configuración (consulte la descripción de Board.xml a continuación).
  • Comprobación de que el estado de una patilla se puede realizar un seguimiento confiable mediante interrupciones.
  • Compruebe que los controladores se comportan correctamente en condiciones de estrés. Las pruebas de esfuerzo alternan dos conjuntos de patillas de bucle invertido en paralelo y comprueban que el valor de pin devuelto por Read() es correcto y que las interrupciones se activan en los momentos correctos.

Detalles de las pruebas

   
Especificaciones
  • Device.BusController.Gpio.WinRT.Discretional
Plataformas
    Versiones admitidas
    • Windows 10
    • Windows 10, versión 1511
    • Windows 10, versión 1607
    • Windows 10, versión 1703
    • Windows 10, versión 1709
    • Windows 10, versión 1803
    • Windows 10, versión 1809
    • Windows 10, versión 1903
    • Siguiente actualización a Windows 10
    Tiempo de ejecución esperado (en minutos) 5
    Categoría Desarrollo
    Tiempo de espera (en minutos) 10000
    Requiere reinicio false
    Requiere una configuración especial true
    Tipo automatic

     

    Documentación adicional

    Las pruebas de este á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

    Las pruebas funcionales y de esfuerzo gpIO requieren un mínimo de 4 patillas para ejecutarse. Estos números de patillas se conocen como A1, A2, B1 y B2. A1 debe estar conectado a A2 a través de un resistor de 1k y B1 debe estar conectado a B2 a través de un resistor de 1k, como se muestra en el esquema siguiente:

    Esquema de bucle invertido gpio

    Los resistores protegen el hardware frente a daños durante la contención de salida y son necesarios para que las pruebas validen los modos de unidad. Se le pedirá que proporcione los números de patillas de A1, A2, B1 y B2 cuando programe las pruebas para su ejecución. Si ejecuta las pruebas desde la línea de comandos, debe especificar los números de patilla con el parámetro en tiempo de ejecución "Pins", como se muestra en la sección Solución de problemas.

    En la configuración predeterminada de las pruebas, solo se ejecutarán los 4 pines especificados anteriormente. Aunque esto es suficiente para obtener cobertura del controlador, también es necesario validar que cada patilla expuesta se puede usar para E/S e interrupciones. Para ejecutar pruebas de bucle invertido en todos los pines, conecte cada dos patillas juntas a través de una resistencia de 1k y, a continuación, modifique %programfiles(x86)%\Windows Kits\10\Hardware Lab Kit\Tests\<arch>\iot\Board.xml de la siguiente manera:

    • En el <elemento Table Id="Pins",> agregue una <fila> para cada pin expuesto, donde DefaultDriveMode especifica el modo de unidad en el que espera que el pin esté en cuando la placa esté encendida. DefaultDriveMode debe ser uno de los valores de la enumeración Windows.Devices.Gpio.GpioPinDriveMode .

                <Table Id="Pins">
                  <Row>
                    <Parameter Name="PinNumber">0</Parameter>
                    <Parameter Name="Enabled">True</Parameter>
                    <Parameter Name="DefaultDriveMode">Input</Parameter>
                  </Row>
                  <Row>
                    <Parameter Name="PinNumber">1</Parameter>
                    <Parameter Name="Enabled">True</Parameter>
                    <Parameter Name="DefaultDriveMode">InputPullUp</Parameter>
                  </Row>
                  <!-- By setting Enabled to False, you can also assert that a pin should NOT be accessible -->
                  <Row>
                    <Parameter Name="PinNumber">2</Parameter>
                    <Parameter Name="Enabled">False</Parameter>
                  </Row>
                </Table>
      
      
    • En el <elemento Table Id="Loopbacks",> agregue una <fila> para cada par de patillas conectadas en la configuración de bucle invertido. Por ejemplo, los datos siguientes especifican que el pin 0 está conectado al pin 2 y el pin 1 está conectado al pin 3.

                <Table Id="Loopbacks">
                  <Row>
                    <Parameter Name="Pin1">0</Parameter>
                    <Parameter Name="Pin2">2</Parameter>
                  </Row>
                  <Row>
                    <Parameter Name="Pin1">1</Parameter>
                    <Parameter Name="Pin2">3</Parameter>
                  </Row>
                </Table>
      
      

    Board-rpi.xml y Board-mbm.xml se proporcionan en %programfiles(x86)%\Windows Kits\10\Hardware Lab Kit\Tests\arch>\<iot como ejemplos para las plataformas Raspberry Pi y MinnowBoardMax.

    Board.xml debe estar presente en el mismo directorio que Windows.Devices.LowLevel.UnitTests.dll cuando se ejecutan las pruebas. Si ejecuta las pruebas a través del administrador de HLK, copiará automáticamente Board.xml desde el directorio HLK a la ubicación correcta en el dispositivo. Si ejecuta las pruebas en la línea de comandos, debe implementar Board.xml usted mismo.

    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.

    Se recomienda ejecutar las pruebas en la línea de comandos para obtener información sobre los errores y para iterar rápidamente en las soluciones. A continuación se muestra cómo ejecutar las pruebas en la línea de comandos:

    1. Copiar %programfiles(x86)%\Windows Kits\10\Testing\Runtimes\TAEF\<arch>\MinTe a c:\data\minte

    2. Copie todos los archivos de %programfiles(x86)%\Windows Kits\10\Hardware Lab Kit\Tests\arch>\<iot a c:\data en el dispositivo.

    3. Telnet o ssh en el dispositivo

    4. Cambio de directorios a c:\data

    5. Ejecutar

      minte\te.exe windows.devices.lowlevel.unittests.dll /p:Pins=A1,A2,B1,B2 /name:GpioTests::*
      

    Uso de la prueba de línea de comandos:

    minte\te.exe windows.devices.lowlevel.unittests.dll [/p:Pins=pin_numbers] [/name:test_name] [/p:Duration=duration]
    
    • pin_numbers: los números de patilla que se usarán para las pruebas, de la forma A1,A2,B1,B2, donde A1 está conectado a A2 a través de una resistencia de 1k y B1 está conectado a B2 a través de un resistor de 1k. Si no se especifica, el valor predeterminado de A1 es el número de pin más bajo disponible, el valor predeterminado de A2 es el número de pin más alto disponible, el valor predeterminado B1 es el segundo número de pin disponible más bajo y el valor predeterminado B2 es el segundo número de pin disponible más alto. Ejemplo: /p:Pins=4,27,5,26
    • test_name: el nombre de la prueba que se va a ejecutar, que puede incluir caracteres comodín. Ejemplos: /name:GpioTests::*, /name:GpioTests::VerifySetDriveMode#metadataSet0
    • duration: cuánto tiempo se ejecutan las pruebas de esfuerzo. Ejemplos: /p:Duration=10s (10 segundos), /p:Duration=1m (1 minuto), /p:Duration=2h (2 horas), /p:Duration=1d (1 día)

    Para ejecutar las pruebas en la configuración predeterminada,

    minte\te.exe windows.devices.lowlevel.unittests.dll /p:Pins=0,1,2,3 /name:GpioTests::*
    

    Para ejecutar una prueba específica, pase el nombre de prueba completo al parámetro /name:

    minte\te.exe windows.devices.lowlevel.unittests.dll /p:Pins=0,1,2,3 /name:GpioTests::VerifyInterruptStateTracking
    

    Para ejecutar las pruebas de esfuerzo durante la duración recomendada de 2 horas cada una, ejecute:

    minte\te.exe windows.devices.lowlevel.unittests.dll /p:Pins=0,1,2,3 /name:GpioTests::* /p:Duration=2h
    

    Una herramienta que puede ayudar con la solución de problemas manual es GpioTestTool, una utilidad sencilla para interactuar con GPIO desde la línea de comandos.

    Más información

    Parámetros

    Nombre de parámetro Descripción de los parámetros
    Chinchetas Patillas de bucle invertido de la forma <A1,A2,B1,B2><>>><< donde A1 está conectado a A2 y B1 está conectado a B2.
    Duration Especifica cuánto tiempo se debe ejecutar cada una de las pruebas de esfuerzo. Por ejemplo, 30s, 1m, 1h, 1d