Chromium Chronicle n.o 14: Cómo agregar pruebas a Waterfall

Episodio 14: de Zhaoyang Li en MTV y Eric Aleshire en TOK (octubre de 2020)
Episodios anteriores

¿Quieres detectar regresiones en la nueva función de Chrome? Agrega tus pruebas a la cascada (la infraestructura de pruebas y compilación continua de Chrome).

Hay muchos compiladores en la cascada de Chrome que ejecutan pruebas en una variedad de plataformas. En este artículo, se describe cómo agregar un conjunto de pruebas a un compilador existente. Antes de continuar, considera estas preguntas:

¿Las pruebas nuevas deberían incluirse en un paquete completamente nuevo o simplemente agregarse a uno existente?

  • Las pruebas se organizan en paquetes de pruebas según la proximidad de la ubicación de la fuente y el tema. Si las pruebas nuevas no pueden ajustarse de forma lógica a ningún paquete existente, es probable que necesites uno nuevo.

¿Las pruebas deben ejecutarse en un compilador público o en un compilador interno?

  • Usa un compilador interno si el código está en un repositorio interno o si las pruebas involucran datos confidenciales.

¿Las pruebas deben ejecutarse en FYI CI, CI principal o cola de confirmación(CQ)?

  • Para tu información, CI necesita tu autosupervisión y se usa para el perfeccionamiento o la experimentación de pruebas.
  • Las pruebas de CI principales son supervisadas con regularidad por los alguaciles.
  • El CQ bloquea el envío de CL en caso de falla, pero toma más recursos de infraestructura. Un conjunto nuevo siempre debe comenzar desde CI antes de promoverse a CQ.
  • Si no estás seguro, el equipo de EngProd de tu plataforma puede ayudarte a tomar esta decisión.

Ya tengo un paquete de pruebas ejecutándose en CI, ¿cómo lo agrego a CQ? ¿Qué sucede si necesito un compilador nuevo?

Cómo agregar un conjunto de pruebas a un compilador existente

Para agregar un conjunto de pruebas a un compilador existente, debes configurar algunos archivos en //src/testing/buildbot/:

  1. Crea una clave en gn_isolate_map.pyl para el nuevo paquete de pruebas con información de tipo y etiqueta de destino de prueba.
  2. Agrega la clave a un grupo de prueba en test_suites.pyl. (Puedes encontrar la asignación del nombre del compilador a los grupos de prueba del compilador en waterfalls.pyl).

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. Más ajustes.

    • mixins.pyl contiene argumentos que se pueden aplicar a un grupo de pruebas en varios niveles de grupo.
    • variants.pyl ayuda a ejecutar un paquete en varias instancias con diferentes argumentos.
  4. Vuelve a generar los archivos de configuración mediante la ejecución de generate_buildbot_json.py.

Después de esto, solo debes registrar los cambios en la configuración. Los compiladores que ejecutan este paquete recogerán las pruebas nuevas automáticamente, y los resultados comenzarán a fluir en la interfaz web para el compilador en la cascada, con mucha información de depuración en caso de fallas.