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

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

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

De nombreux compilateurs de la cascade de Chrome exécutent des tests sur divers plates-formes. Cet article explique comment ajouter une suite de tests à un d'un projet. 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 en suites de tests par proximité de l'emplacement source et du thème. Si vous n'arrivez pas à intégrer logiquement vos nouveaux tests dans une suite existante, ont besoin d'une nouvelle suite.

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

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

Les tests doivent-ils être exécutés dans la CI pour information, la CI principale ou la file d'attente de validation(CQ) ?

  • À titre d'information, la CI a besoin de votre auto-surveillance. Elle est utilisée pour affiner les tests ou et l'expérimentation.
  • Les principaux tests de CI sont régulièrement surveillés par des shérifs.
  • Le contrôle qualité bloque l'envoi de la CL en cas d'échec, mais utilise plus de ressources d'infrastructure. Une nouvelle suite doit toujours commencer de la CI avant d'être promue à CQ.
  • En cas de doute, l'équipe EngProd de votre plate-forme peut vous aider à faire votre choix.

J'exécute déjà une suite de tests dans CI. Comment l'ajouter à CQ ? / Et si je avez-vous 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 certains fichiers dans //src/testing/buildbot/:

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

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

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

Il vous suffit ensuite de vérifier les modifications apportées à votre configuration. les compilateurs exécutant cette suite sélectionneront automatiquement les nouveaux tests. les résultats commenceront à arriver dans l'interface Web de l'outil de création La cascade d'annonces, avec de nombreuses informations de débogage en cas d'échec