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 um subconjunto do VillageSQL:
Execute os testes do VillageSQL incluindo todos os subconjuntos:
—suite vs —do-suite:
  • --suite=villagesql/insert executa um subconjunto
  • --do-suite=villagesql executa todos os testes, incluindo os subconjuntos (insert, select, stored_procedure, etc.)
  • --nounit-tests pula os testes de unidade que o MTR executaria junto com a suíte. Esses são testes de unidade do MySQL upstream e incluem falhas conhecidas; execute os do VillageSQL separadamente com os comandos de Testes de Unidade acima.

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 antes de cada instrução que imprime um deles, 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 gravadas no log de erros em --log-error-verbosity=3, que o MTR define por padrão. Para definir o nível em uma execução:
O log de erros completo fica em mysql-test/var/log/mysqld.1.err em uma execução com um único worker. Sob --parallel, cada worker escreve em mysql-test/var/<N>/log/mysqld.1.err em vez disso. Para escrever testes de regressão de extensões, consulte Testes 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.