Extendendo o Pacote de Teste do MariaDB
Você pode utilizar a linguagem mysqltest para escrever o seu próprio caso de teste. Infelizmente nós ainda não escrevemos a documentação completa para ela. Você pode, no entanto, olhar os nosso casos de teste atuais e usá-los como um exemplo. O seguintes pontos devem ajudá-lo a começar:
- Os teste estão localizados em
mysql-test/t/*.test - Um caso de teste consiste de instruções terminadas em
;e é similar a entrada do cliente de linha de comandoMariaDB. Uma instrução por padrão é uma consulta a ser enviada ao servidor MySQL, a menos que ele seja reconhecido como um comando insterno (ex.sleep). - Todas as consultas que produzem resultados¯ex.,
SELECT,SHOW,EXPLAIN, etc., devem ser precedidas com@/path/to/result/file. O arquivo deve conter os resultados esperados. Um modo fácil de gerar o arquivo resultante é executarmysqltest -r < t/test-case-name.testdo diretóriomysql-test, e então editar o arquivo resultante gerado e, se necessário, ajustá-los a saída esperada. Neste caso, tenha cuidado de não adicionar ou deletar quaisquer caracteres invisíveis - tenha certeza de apenas alterar o texto e/ou adicionar linhas deletadas. Se você tiver que inserir uma linha, esteja certo que os campos são separados com tabulação e que há uma tabulação no final. Você pode querer utilizarod -cpara ter certeza que seu editor de texto não bagunçõu nada durante a edição. Nós, é claro, esperamos que você nunca tenha que editar a saída demysqltest -rjá que você só deverá fazê-lo quando encontra um bug. - Para estar consistente com a nossa configuração, você deve colocar seus arquivos de resultados no diretório
mysql-test/re o nomeie comotest_name.result. Se o teste produzir mais de um resultado, você deve usartest_name.a.result,test_name.b.result, etc. - Se uma instrução retornar um erro, você eve espacificar na linha anterior a instrução com
--error error-number. O número do erro pode ser uma lista de números de erros possíveis separados com','. - Se você estiver escrevendo em teste de replicação, você deve coloca
source include/master-slave.inc;na primeira linha do arquivo. Para trocar entre master e slave, utilizeconnection master;econnection slave;. se você precisar fazer alguma coisa em uma conexão alternativa, você pode fazerconnection master1;para o master econnection slave1;para o slave. - Se você precisar fazer alguma coisa em um loop, você pode usar algo assim:
let $1=1000; while ($1) { # do your queries here dec $1; } - Para 'dormir' entre consultas, use o comando
sleep. Ele suporta frações de um segundo, assim você pode fazersleep 1.3;, por exemplo, para dormir 1.3 segundos. - Para executar o slave com opções adicionais para o seu caso de teste, coloque-os na formato de linha de comando
mysql-test/t/test_name-slave.opt. Para o master, coloque-os emmysql-test/t/test_name-master.opt. - Se você tiver uma questão sobre o pacote de testes, ou tiver um caso de teste para contribuir, envie um e-mail para lista de email
internals
do MariaDB. Leia "As Listas de Discussão do MariaDB". Como a lista não aceita anexos, você deve utilizar o ftp para enviar os arquivos relevantes: ftp://support.mysql.com/pub/mysql/Incoming/