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

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

¿Deseas detectar regresiones para tu nueva función en Chrome? Agrega tu pruebas a la cascada (infraestructura de prueba y compilación continuas de Chrome).

Hay muchos compiladores en la cascada de Chrome que ejecutan pruebas en una variedad de y plataformas de Google Cloud. En este artículo, se describe cómo agregar un paquete de pruebas a un generador del sitio web. Antes de continuar, considera estas preguntas:

¿Las pruebas nuevas deberían alojarse en un paquete completamente nuevo o solo se deberían agregar a uno existente?

  • Las pruebas se organizan en paquetes de pruebas por proximidad de ubicación de la fuente y tema. Si tus nuevas pruebas no pueden encajar de forma lógica en ningún paquete existente, es probable que un nuevo paquete.

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

  • Usa un compilador interno si el código se encuentra en un repositorio interno. las pruebas implican datos confidenciales.

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

  • Para tu información, CI necesita tu autosupervisión y se usa para definir mejor las pruebas o para realizar experimentos.
  • Las alguaciles supervisan con regularidad las pruebas principales de CI.
  • CQ bloquea el envío de CL en caso de error, pero toma más recursos de infraestructura. Un paquete nuevo siempre debe comenzar desde la CI antes de ascender a CQ.
  • Si no tienes certeza, el equipo de EngProd de tu plataforma puede ayudarte a tomar una decisión.

Ya tengo un paquete de pruebas que se ejecuta en CI, ¿cómo lo agrego a CQ? /¿Qué sucede si ¿necesitas un compilador nuevo?

Cómo agregar un paquete 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 etiquetas y tipo de objetivo de prueba.
  2. Agrega esa clave a un grupo de prueba en test_suites.pyl. (Puedes encontrar la asignación del nombre del compilador a los grupos de prueba en el 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 argumentos diferentes.
  4. Vuelve a generar los archivos de configuración ejecutando generate_buildbot_json.py

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