Skip to main content
Este guia aborda a depuração, a execução do conjunto de testes do servidor e a contribuição para o VillageSQL. Ele pressupõe uma compilação de código-fonte funcional; consulte Compilar a Partir do Código-Fonte se você ainda não fez isso.

Depuração

A depuração do servidor VillageSQL usa GDB no Linux e lldb no macOS. O GDB no macOS requer assinatura de código, o que é trabalhoso de configurar; o lldb é o depurador padrão do macOS e funciona imediatamente.

Linux (GDB)

Execute o VillageSQL sob o GDB:
Dentro do GDB:
Comandos GDB comuns:

macOS (lldb)

Execute o VillageSQL sob o lldb:
Dentro do lldb:
Comandos lldb comuns:

Executando Testes

O VillageSQL inclui tanto testes de unidade quanto testes de regressão para verificar a funcionalidade.

Testes de Unidade

Execute os testes de unidade específicos do VillageSQL (de dentro do seu diretório de compilação):
Ou execute todos os testes de unidade:

Testes de Regressão

Vá para o diretório mysql-test:
Execute o conjunto de testes completo do MySQL (lento):
Execute apenas os testes específicos do VillageSQL:
Execute os testes do VillageSQL incluindo todos os subconjuntos:
—suite vs —do-suite:
  • --suite=villagesql executa apenas os testes villagesql de nível superior
  • --do-suite=villagesql executa todos os testes, incluindo os subconjuntos (insert, select, stored_procedure, etc.)

Executando Testes Individuais

Execute um teste específico pelo nome:
Execute um teste de um subconjunto:

Atualizando Resultados de Testes

Se você alterou a funcionalidade e precisa atualizar a saída esperada dos testes:
Gravação de Testes: Sempre revise as alterações nos arquivos .result para garantir que elas reflitam o comportamento pretendido, e não bugs. A flag --record sobrescreve cegamente a saída esperada.

Portabilidade de Testes

Quando a saída de um teste inclui caminhos do diretório temporário do executor de testes, adicione esta diretiva dentro do seu arquivo .test para que os resultados gravados não contenham caminhos absolutos que quebram em outras máquinas:

Depurando Falhas de Testes

As mensagens de log específicas do VillageSQL (emitidas via LogVSQL()) são suprimidas por padrão. Para exibi-las no log de erros durante uma execução de teste:
O log de erros completo fica em mysql-test/var/log/mysqld.1.err. Para escrever testes de regressão de extensões, consulte o Desenvolvimento em C++.

Instalando Binários

Para instalar o VillageSQL em todo o sistema (requer as permissões apropriadas):
Isso instala os binários em /usr/local/mysql/ por padrão. Você pode personalizar o prefixo de instalação:

Contribuindo

Se você está contribuindo para o VillageSQL, consulte as diretrizes de contribuição para conhecer os padrões de codificação e os fluxos de trabalho de desenvolvimento.