Chromium Chronicle #14: como adicionar testes à cascata

Episódio 14:de Zhaoyang Li na MTV e Eric Aleshire na TOK (outubro de 2020)
Episódios anteriores

Quer detectar regressões para seu novo recurso no Chrome? Adicione seus testes à hierarquia (a infraestrutura de teste e build contínuos do Chrome).

Há muitos builders na hierarquia do Chrome que executam testes em várias plataformas. Neste artigo, descrevemos como adicionar um pacote de testes a um builder existente. Antes de continuar, considere estas perguntas:

Os novos testes devem ficar em um pacote novo ou apenas ser adicionados a um que já existe?

  • Os testes são organizados em conjuntos de testes pela proximidade do local e do tema de origem. Se os novos testes não puderem se encaixar logicamente em um pacote atual, você provavelmente vai precisar de um novo pacote.

Os testes devem ser executados em um builder público ou interno?

  • Use um criador interno se o código estiver em um repositório interno ou se os testes envolverem dados confidenciais.

Os testes devem ser executados em CI, CI principal ou fila de confirmação(CQ)?

  • A CI precisa de automonitoramento e é usada para refinamento ou experimentação de testes.
  • Os principais testes de CI são monitorados regularmente por xerifes.
  • A CQ bloqueia o envio do CL em caso de falha, mas usa mais recursos de infraestrutura. Um novo pacote precisa sempre começar na CI antes de ser promovido para CQ.
  • Se você não tiver certeza, a equipe de EngProd da sua plataforma pode ajudar na sua decisão.

Já tenho um pacote de testes em execução no CI, como faço para adicioná-lo à CQ? / E se eu precisar de um novo criador?

Como adicionar um pacote de testes a um builder existente.

Para adicionar um pacote de testes a um builder existente, é necessário configurar alguns arquivos em //src/testing/buildbot/:

  1. Crie uma chave em gn_isolate_map.pyl para o novo pacote de testes com o rótulo de destino do teste e as informações de tipo.
  2. Adicione essa chave a um grupo de teste em test_suites.pyl. É possível encontrar o mapeamento do nome do builder para os grupos de teste no builder em waterfalls.pyl.

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. Mais ajustes

    • mixins.pyl contém argumentos que podem ser aplicados a um grupo de testes em vários níveis de grupo.
    • variants.pyl ajuda a executar um pacote em várias instâncias com argumentos diferentes.
  4. Gere os arquivos de configuração novamente executando generate_buildbot_json.py.

Depois disso, é uma questão de verificar as mudanças de configuração. Os builders que executam esse pacote vão selecionar os novos testes automaticamente, e os resultados vão começar a aparecer na interface da Web para o builder na hierarquia, com muitas informações de depuração em caso de falhas.