Chromium Chronicle n°14: ajouter des tests à la cascade d'annonces

Épisode 14:Zhaoyang Li sur MTV et Eric Aleshire dans TOK (octobre 2020)
Épisodes précédents

Vous souhaitez détecter les régressions pour votre nouvelle fonctionnalité dans Chrome ? Ajoutez vos tests à la cascade (infrastructure de compilation et de test continues de Chrome).

De nombreux compilateurs sur la cascade de Chrome exécutent des tests sur différentes plates-formes. Cet article explique comment ajouter une suite de tests à un compilateur existant. Avant de continuer, posez-vous les questions suivantes:

Les nouveaux tests doivent-ils être disponibles dans une toute nouvelle suite ou simplement être ajoutés à une suite existante ?

  • Les tests sont organisés dans des suites de tests en fonction de la proximité de l'emplacement source et du thème. Si vos nouveaux tests ne peuvent pas s'intégrer logiquement dans une suite existante, vous aurez probablement besoin d'une nouvelle suite.

Les tests doivent-ils être exécutés sur un constructeur public ou interne ?

  • Utilisez un compilateur interne si le code se trouve dans un dépôt interne ou si les tests impliquent des données confidentielles.

Les tests doivent-ils être exécutés dans l'intégration continue (CI), l'intégration principale (CI) ou dans la file d'attente des commits (CQ) ?

  • Pour information, l'intégration continue nécessite votre auto-surveillance. Elle est utilisée pour affiner les tests ou effectuer des tests.
  • Les principaux tests CI sont régulièrement surveillés par les shérifs.
  • CQ bloque l'envoi de CL en cas d'échec, mais utilise davantage de ressources d'infrastructure. Une nouvelle suite doit toujours démarrer depuis CI avant d'être promue en CQ.
  • En cas de doute, l'équipe EngProd de votre plate-forme peut vous aider.

J'ai déjà une suite de tests en cours d'exécution dans CI. Comment l'ajouter à CQ ? / Que faire si j'ai besoin d'un nouveau compilateur ?

Ajouter une suite de tests à un compilateur existant

Pour ajouter une suite de tests à un compilateur existant, vous devez configurer des fichiers dans //src/testing/buildbot/:

  1. Créez une clé dans gn_isolate_map.pyl pour la nouvelle suite de tests avec des informations sur le libellé et le type de la cible de test.
  2. Ajoutez cette clé à un groupe de test dans test_suites.pyl. (Vous trouverez le mappage entre le nom du compilateur et les groupes de test du compilateur dans waterfalls.pyl.)

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. Plus de réglages.

    • mixins.pyl contient des arguments qui peuvent être appliqués à un groupe de tests à différents niveaux.
    • variants.pyl permet d'exécuter une suite dans plusieurs instances avec des arguments différents.
  4. Générez à nouveau les fichiers de configuration en exécutant generate_buildbot_json.py.

Ensuite, il vous suffit de vérifier vos modifications de configuration. Les compilateurs qui exécutent cette suite récupèrent automatiquement les nouveaux tests, et les résultats commenceront à être transmis dans l'interface Web du compilateur sur la cascade d'annonces. Ils contiennent de nombreuses informations de débogage en cas d'échec.