Próximo: , Anterior: , Acima: Contribuindo   [Conteúdo][Índice]


22.3 Executando o conjunto de testes

Depois que um configure e make bem-sucedido forem executados, é uma boa ideia executar o conjunto de testes. Ele pode ajudar a detectar problemas com a configuração ou o ambiente, ou com bugs no próprio Guix – e realmente, relatar falhas de teste é uma boa maneira de ajudar a melhorar o software. Para executar o conjunto de testes, digite:

make check

Os casos de teste podem ser executados em paralelo: você pode usar a opção -j do GNU make para acelerar as coisas. A primeira execução pode levar alguns minutos em uma máquina recente; as execuções subsequentes serão mais rápidas porque o armazém criado para fins de teste já terá vários itens no cache.

Também é possível executar um subconjunto dos testes definindo a variável makefile TESTS como neste exemplo:

make check TESTS="tests/store.scm tests/cpio.scm"

Por padrão, os resultados dos testes são exibidos em um nível de arquivo. Para ver os detalhes de cada caso de teste individual, é possível definir a variável makefile SCM_LOG_DRIVER_FLAGS como neste exemplo:

make check TESTS="tests/base64.scm" SCM_LOG_DRIVER_FLAGS="--brief=no"

O driver de teste Automake personalizado SRFI 64 subjacente usado para o conjunto de testes ’check’ (localizado em build-aux/test-driver.scm) também permite selecionar quais casos de teste executar em um nível mais fino, por meio de suas opções --select e --exclude. Aqui está um exemplo, para executar todos os casos de teste do arquivo de teste tests/packages.scm cujos nomes começam com “transaction-upgrade-entry”:

export SCM_LOG_DRIVER_FLAGS="--select=^transaction-upgrade-entry"
make check TESTS="tests/packages.scm"

Aqueles que desejam inspecionar os resultados de testes com falha diretamente da linha de comando podem adicionar a opção --errors-only=yes à variável makefile SCM_LOG_DRIVER_FLAGS e definir a variável makefile do Automake VERBOSE, como em:

make check SCM_LOG_DRIVER_FLAGS="--brief=no --errors-only=yes" VERBOSE=1

A opção --show-duration=yes pode ser usada para imprimir a duração dos casos de teste individuais, quando usada em combinação com --brief=no:

make check SCM_LOG_DRIVER_FLAGS="--brief=no --show-duration=yes"

Veja Parallel Test Harness em GNU Automake para mais informações sobre o Automake Parallel Test Harness.

Em caso de falha, envie um e-mail para bug-guix@gnu.org e anexe o arquivo test-suite.log. Por favor, especifique a versão do Guix que está sendo usada, bem como os números de versão das dependências (veja Requisitos) em sua mensagem.

O Guix também vem com um conjunto de testes de sistema completo que testa instâncias completas do Guix System. Ele só pode ser executado em sistemas nos quais o Guix já está instalado, usando:

make check-system

ou, novamente, definindo TESTS para selecionar um subconjunto de testes a serem executados:

make check-system TESTS="basic mcron"

Esses testes de sistema são definidos nos módulos (gnu tests …). Eles trabalham executando os sistemas operacionais em teste com instrumentação leve em uma máquina virtual (VM). Eles podem ser computacionalmente intensivos ou bastante baratos, dependendo se os substitutos estão disponíveis para suas dependências (veja Substitutos). Alguns deles exigem muito espaço de armazenamento para armazenar imagens de VM.

Se você encontrar um erro como:

Compilando módulos do Scheme...
ice-9/eval.scm:142:16: No procedimento compile-top-call:
erro: all-system-tests: variável não vinculada
dica: Você esqueceu `(use-modules (gnu tests))'?

pode haver inconsistências na árvore de trabalho de compilações anteriores. Para resolver isso, tente executar make clean-go seguido por make.

Novamente, em caso de falhas nos testes, por favor envie bug-guix@gnu.org todos os detalhes.


Próximo: Executando guix antes dele ser instalado, Anterior: Compilando do git, Acima: Contribuindo   [Conteúdo][Índice]