9.1.2.1 Выполнение тестового пакета MySQL | Оглавление | 9.1.2.3 Отчет об ошибках в тестовом пакете MySQL |
Для создания собственных контрольных тестов можно использовать язык
mysqltest
. К сожалению, полная документация по языку пока еще не написана,
но мы планируем в скором времени это сделать. Можно, однако, обратиться к
имеющимся контрольным тестам и использовать их в качестве примера. В
качестве отправных точек должны служить следующие моменты:
mysql-test/t/*.test
;
команд и должны соответствовать вводу для клиента командной строки
mysql
. Команда по умолчанию является запросом, который предназначен
для посылки серверу MySQL, за исключением тех случаев, когда она
распознается как внутренняя команда (напр. sleep
).
SELECT
, SHOW
, EXPLAIN
и
т.д. должны предваряться @/path/to/result/file
. Файл должен содержать
ожидаемые результаты. Такой файл результатов можно легко
сгенерировать, запустив mysqltest -r < t/test-case-name.test
из
каталога mysql-test
, а затем при необходимости можно отредактировать
сгенерированные файлы результатов для подгонки вывода к ожидаемому
виду. В этом случае следует быть особенно внимательным, чтобы не
добавить или удалить каких-либо невидимых символов - внимательно
следите за тем, чтобы только изменялся текст и/или удалялись строки.
Если необходимо вставить строку, то нужно следить за тем, чтобы поля
были разделены символами жесткой табуляции, и такой же символ жесткой
табуляции должен присутствовать в конце. Для проверки того, что
текстовый редактор ничего не напутал в процессе редактирования, может
пригодиться od -c
. Мы, конечно, надеемся, что никому не придется
редактировать вывод mysqltest -r
, поскольку потребность в этом
возникает только в случае обнаружения ошибки.
mysql-test/r
и назвать их
test_name.result
. Если тест производит более одного результата,
следует использовать test_name.a.result
, test_name.b.result
и т.д.
--error error-number
. error-number может
быть списком номеров
возможных ошибок, разделенных ','
.
source include/master-slave.inc;
. Для
переключения между головным и подчиненным серверами используется
connection master;
и connection slave;
. Если что-то требуется сделать
на дополнительном соединении, то можно выполнить connection master1
;
для головного и connection slave1;
для подчиненного.
let $1=1000; while ($1) { # здесь выполняются ваши запросы dec $1; }
sleep
. Она поддерживает
десятые доли секунды, таким образом можно, например, делать sleep
1.3;
для временной задержки в 1,3 секунды.
mysql-test/t/test_name-slave.opt
. Для головного
сервера опции помещаются в mysql-test/t/test_name-master.opt
.
9.1.2.1 Выполнение тестового пакета MySQL | Оглавление | 9.1.2.3 Отчет об ошибках в тестовом пакете MySQL |