Параметры mariadb-test-run.pl
Синтаксис
./mariadb-test-run.pl [ OPTIONS ] [ TESTCASE ]
Где тестовый случай может быть указан как: testcase[.test] Запускает тестовый случай с именем 'testcase' из всех наборов
path-to-testcase [suite.]testcase[,combination]
Примеры
alias main.alias 'main' - это имя набора для директории 't'.
rpl.rpl_invoked_features,mix,xtradb_plugin suite/rpl/t/rpl.rpl_invoked_features
Параметры
Параметры для управления запуском движка/варианта
| Параметр | Описание |
|---|---|
--embedded-server |
Использовать встроенный сервер, т.е. без демонов mysqld. |
--ps-protocol |
Использовать бинарный протокол между клиентом и сервером. |
--cursor-protocol |
Использовать протокол курсора между клиентом и сервером (подразумевает --ps-protocol). |
--view-protocol |
Создать представление для выполнения всех не обновляющих запросов. |
--sp-protocol |
Создать хранимую процедуру для выполнения всех запросов. |
--compress |
Использовать сжатый протокол между клиентом и сервером, если оба поддерживают его. |
--ssl |
Если mariadb-test-run.pl запущен с параметром --ssl, он устанавливает безопасное соединение для всех тестовых случаев. В этом случае, если mysqld не поддерживает TLS, mariadb-test-run.pl завершается с сообщением об ошибке: Couldn´t find support for SSL. |
--skip-ssl |
Не запускать сервер с поддержкой TLS-соединений. |
--vs-config |
Конфигурация Visual Studio, используемая для создания исполняемых файлов (по умолчанию: переменная среды MTR_VS_CONFIG). |
--parallel=num |
Сколько параллельных тестов следует запускать. По умолчанию 1, используйте --parallel=auto для автоматической настройки num. |
--defaults-file=<config template> |
Использовать фиксированный шаблон конфигурации для всех тестов. |
--defaults_extra_file=<config template> |
Дополнительный шаблон конфигурации для добавления ко всем сгенерированным конфигурациям. |
--combination=<opt> |
Дополнительные параметры для передачи в mysqld. Значение должно состоять из одного или нескольких параметров mysqld, разделенных запятыми. Этот параметр аналогичен --mysqld, но должен быть задан два или более раз. mariadb-test-run.pl выполняет несколько тестовых запусков, используя параметры для каждого экземпляра --combination в последовательных запусках. Если --combination задан только один раз, он не оказывает никакого действия. Для тестовых запусков, специфичных для данного тестового набора, альтернативой использованию --combination является создание файла комбинаций в каталоге набора. Файл должен содержать раздел параметров для каждого тестового запуска. |
--dry-run |
Не запускать тесты, вывести список тестов, выбранных для выполнения. |
Параметры для управления используемыми директориями
| Параметр | Описание |
|---|---|
--tmpdir=DIR |
Каталог, где хранятся временные файлы (по умолчанию: ./var/tmp). Переменная среды MYSQL_TMP_DIR будет установлена в путь к этому каталогу, независимо от того, имеет ли он значение по умолчанию или установлено явное значение. На это можно ссылаться в тестах. |
--vardir=DIR |
Каталог, где хранятся файлы, сгенерированные во время тестового запуска (по умолчанию: ./var). Указание ramdisk или tmpfs ускорит тесты. Переменная среды MYSQLTEST_VARDIR будет установлена в путь к этому каталогу, независимо от того, имеет ли он значение по умолчанию или установлено явное значение. На это можно ссылаться в тестах. |
--mem |
Запустить набор тестов в «памяти», используя tmpfs или ramdisk. Это может значительно сократить время тестирования, особенно если вы запускаете тесты через удаленную файловую систему. Пытается найти подходящее местоположение, используя встроенный список стандартных местоположений для tmpfs (/dev/shm). Параметр также может быть установлен с помощью переменной среды MTR_MEM=[DIR]. Если DIR задан, он добавляется в начало списка местоположений для поиска, поэтому он имеет приоритет над любыми встроенными местоположениями. После того, как вы запустили тесты с --mem в директории mariadb-test, будет создана символическая ссылка var во временный каталог, и она будет использоваться при следующем запуске, пока символическая ссылка не будет удалена. Таким образом, вам не нужно повторять параметр --mem в следующий раз. |
--client-bindir=PATH |
Путь к каталогу, где расположены клиентские бинарные файлы. |
--client-libdir=PATH |
Путь к каталогу, где расположены клиентские библиотеки. |
Параметры для управления тем, какие наборы тестов или случаи запускать
| Параметр | Описание |
|---|---|
--force |
Обычно mariadb-test-run.pl завершается, если тестовый случай завершается неудачей. --force позволяет продолжить выполнение независимо от результата тестового случая. |
--with-ndbcluster-only |
Запускать только тесты, которые содержат "ndb" в имени файла. |
--skip-ndb[cluster] |
Пропускать все тесты, которым нужен кластер. По умолчанию. |
--do-test=PREFIX or REGEX |
Запускать тестовые случаи с именами, начинающимися с PREFIX или удовлетворяющими REGEX. Например, --do-test=testa соответствует тестам, которые начинаются с testa, --do-test=main.testa соответствует тестам в основном тестовом наборе, которые начинаются с testa, и --do-test=main.*testa соответствует именам тестов, которые содержат main, за которым следует testa с чем-либо между ними. В последнем случае сопоставление шаблонов не привязано к началу имени теста, поэтому оно также соответствует именам, таким как xmainytestz. |
--skip-test=PREFIX or REGEX |
Пропускать тестовые случаи с именами, начинающимися с PREFIX или удовлетворяющими REGEX. См. -do-test для примеров. |
--start-from=PREFIX |
Сортирует список имен тестовых случаев, которые будут запущены, а затем начинает с теста с префиксом PREFIX, где префикс может быть suite.testname или просто testname. |
--suite[s]=NAME1,..,NAMEN |
Список имен наборов, разделенных запятыми, которые нужно запустить. По умолчанию, начиная с MariaDB 10.4.5, это: "main-, archive-, binlog-, binlog_encryption-, csv-, compat/oracle-, encryption-, federated-, funcs_1-, funcs_2-, gcol-, handler-, heap-, innodb-, innodb_fts-, innodb_gis-, innodb_zip-, json-, maria-, mariabackup-, multi_source-, optimizer_unfixed_bugs-, parts-, perfschema-, plugins-, roles-, rpl-, sys_vars-, sql_sequence-, unit-, vcol-, versioning-,period-". |
--skip-rpl |
Пропускать тестовые случаи репликации. |
--big-test |
Разрешить запуск тестов, помеченных как "большие". Тесты могут быть помечены таким образом, включив строку --source include/big_test.inc, и они будут запущены только если указан этот параметр или если переменная среды BIG_TEST установлена в 1. Повторите этот параметр дважды, чтобы запустить только "большие" тесты. Это обычно используется для тестов, которые занимают очень много времени или используют много ресурсов, поэтому они не подходят для запуска в рамках обычного запуска набора тестов. |
--staging-run |
Запустить ограниченное количество тестов (без медленных тестов). Используется для запуска промежуточных деревьев с valgrind. |
--enable-disabled |
Игнорировать любой файл disabled.def и также запускать тесты, помеченные как отключенные. Успех или неудача этих тестов будут сообщаться так же, как и другие тесты. |
--print-testcases |
Не запускать тесты, а вывести подробную информацию о всех выбранных тестах в том порядке, в котором они будут запущены. |
--skip-test-list=FILE |
Пропускать тесты, перечисленные в FILE. Каждая строка в файле является записью и должна быть отформатирована следующим образом: <TESTNAME> : <COMMENT> |
Параметры, указывающие порты
| Параметр | Описание |
|---|---|
--[mtr-]port-base=num |
База для номеров портов. Порты с этого номера до номера+9 зарезервированы. Должно делиться на 10; в противном случае будет округлено вниз. Может быть установлено с помощью переменной среды MTR_PORT_BASE. Если это значение установлено и не равно "auto", оно переопределяет build-thread. |
--[mtr-]build-thread=num |
Укажите уникальный номер для вычисления номера(ов) порта. Может быть установлен в переменной среды MTR_BUILD_THREAD. Установите MTR_BUILD_THREAD="auto", чтобы автоматически получить идентификатор потока сборки, уникальный для текущего хоста. Более логичный --port-base поддерживается в качестве альтернативы. |
Параметры для написания тестовых случаев
| Параметр | Описание |
|---|---|
--record TESTNAME |
(Пере)генерировать файл результата для TESTNAME. |
--check-testcases |
Проверить тестовые случаи на наличие побочных эффектов. Это делается путем проверки состояния системы до и после каждого тестового случая; если есть какие-либо различия, будет выведено предупреждение об этом, но тестовый случай не будет помечен как неудачный из-за этого. Эта проверка включена по умолчанию. Используйте --nocheck-testcases для отключения. |
mark-progress |
Записать номер строки и затраченное время в <testname>.progress |
Параметры, которые передают параметры
| Параметр | Описание |
|---|---|
--mysqld=ARGS |
Указать дополнительные аргументы для "mysqld" |
--mysqltest=ARGS |
Указать дополнительные аргументы для "mariadb-test". Используйте дополнительные параметры --mysqld-env, чтобы установить более одной переменной. |
Параметры для запуска теста на запущенном сервере
| Параметр | Описание |
|---|---|
extern option=value |
Использовать уже запущенный сервер. Пара опция/значение необходима клиенту mariadb для подключения к серверу. Каждый параметр --extern может принимать только одну пару опция/значение в качестве аргумента, поэтому вам нужно повторить --extern для каждой необходимой пары. Пример: ./mariadb-test-run.pl --extern socket=var/tmp/mysqld.1.sock alias. Примечание: Если тестовый случай имеет файл .opt, который требует перезапуска сервера с определенными параметрами, файл не будет использоваться. В результате тестовый случай, скорее всего, завершится неудачей. |
Параметры для отладки продукта
В mariadb-test-run.pl существует понятие «отладчик». «Отладчик» — это инструмент, который mariadb-test-run.pl будет выполняться вместо mariadbd. Этот инструмент затем запустит mariadbd и сможет управлять его выполнением по своему усмотрению. Поддерживаются следующие «отладчики»:
Каждый «отладчик» из приведенного выше списка поддерживает следующий набор опций (замените XXX ниже именем отладчика)
| Опция | Описание |
|---|---|
--XXX |
Запустить процесс mariadbd в отладчике |
--client-XXX |
Запустить процесс mariadb-test в отладчике |
--boot-XXX |
Перед запуском тестов mariadb-test-run выполняет mariadbd для инициализации, подготовки каталога данных. Эта опция заставляет выполнение этой инициализации mariadbd процесса в отладчике. |
--manual-XXX |
Ничего не запускать, а вместо этого вывести команду, которую пользователь должен выполнить, чтобы запустить mariadbd в отладчике. Затем подождать. |
Каждая опция из вышеперечисленного принимает необязательный аргумент. Он может быть использован для задания дополнительных опций командной строки для инструмента. Или дополнительных команд, которые инструмент выполнит при запуске. Или и то, и другое. Команды разделяются друг от друга и от опций точкой с запятой. Например:
./mtr 1st --strace ./mtr 1st --client-rr=--chaos ./mtr 1st --manual-gdb='b mysql_parse;r' ./mtr 1st --boot-gdb='--quiet --tui;b mysql_parse;r'
Дополнительные опции, связанные с отладкой
| Опция | Описание |
|---|---|
--debug |
Вывод трассировочных данных для всех серверов и клиентских программ. |
--debug-common |
То же, что и --debug, но устанавливает флаги отладки 'd' в "query,info,error,enter,exit" |
--debug-server |
Использовать отладочную версию сервера, но без включения трассировки. |
--max-save-core |
Ограничить количество сохранённых core-файлов (чтобы избежать заполнения дисков при сильных сбоях сервера). По умолчанию 5, 0 — без ограничений. Устанавливается по умолчанию с помощью MTR_MAX_SAVE_CORE. |
--max-save-datadir |
Ограничить количество сохранённых каталогов данных (чтобы избежать заполнения дисков при сильных сбоях сервера). По умолчанию 20, 0 — без ограничений. Устанавливается по умолчанию с помощью MTR_MAX_SAVE_DATDIR. |
--max-test-fail |
Ограничить количество сбоев тестов перед прерыванием текущей тестовой сессии. По умолчанию 10, 0 — без ограничений. Устанавливается по умолчанию с помощью MTR_MAX_TEST_FAIL. |
Дополнительные опции
| Опция | Описание |
|---|---|
--user=USER |
Пользователь для подключения к mysqld (по умолчанию: root) |
--comment=STR |
Запись STR в выходной поток в строках, заполненных символом #, в качестве баннера. |
--timer |
Показать время выполнения тестового случая. Использовать no-timer, чтобы отключить. |
--verbose |
Более подробный вывод (используйте несколько раз для ещё большего подробного вывода). |
--verbose-restart |
Запись времени и причины перезапуска серверов между тестовыми случаями. |
--start |
Только инициализация и запуск серверов, используя параметры запуска для первого указанного тестового случая. Пример: ./mariadb-test-run.pl --start alias & start-dirty Только запуск серверов (без инициализации) для первого указанного тестового случая. |
--start-and-exit |
Аналогично --start, но mariadb-test-run завершается и оставляет только работающий сервер. |
--start-dirty |
Это аналогично --start, но пропустит фазу инициализации базы данных и предположит, что файлы базы данных уже доступны. Обычно это означает, что вы должны были запустить другой тест ранее. |
--user-args |
В сочетании с параметрами start* и без имени теста, отбрасывает аргументы mysqld, кроме тех, что указаны с помощью --mysqld (если таковые имеются). |
--wait-all |
Если используется опция --start или --start-dirty, подождать, пока все серверы завершат работу, прежде чем завершить процесс. В противном случае, процесс завершится, если один (из нескольких) серверов перезапустится. |
--fast |
Не выполнять контролируемое завершение работы, когда серверы необходимо перезапустить или по завершении выполнения теста. Это эквивалентно использованию --shutdown-timeout=0. |
--force-restart |
Всегда перезапускать серверы между тестами. |
--parallel=N |
Запуск тестов в N параллельных потоках (по умолчанию 1). Используйте parallel=auto для автоматической настройки N. |
--repeat=N |
Запуск каждого теста N раз. |
--retry=N |
Если тест завершится неудачно, он будет повторён до максимального числа запусков (по умолчанию 1). Повторные попытки также ограничены максимальным числом ошибок до остановки, задаваемым опцией --retry-failure. Эта опция не имеет эффекта, если не используется также --force; без неё выполнение теста завершится после первой неудачи. Опции --retry и --retry-failure не влияют на то, сколько раз тест, повторённый с --repeat, может завершиться неудачно в сумме, поскольку каждая попытка считается новым тестовым случаем, который в свою очередь может быть повторён, если он завершится неудачно. |
--retry-failure=N |
При использовании опции --retry для повторных попыток неудачных тестов, останавливаться, когда произошло N неудач (по умолчанию 2). Установка значения 0 или 1 фактически отключает повторные попытки. |
--reorder |
Переупорядочить тесты, чтобы уменьшить количество перезапусков серверов. Это поведение по умолчанию. Нет гарантии, что конкретный набор тестов всегда будет в одном и том же порядке. Используйте -no-reorder, чтобы отключить. |
--help |
Отображение текста справки. |
--testcase-timeout=MINUTES |
Максимальное время выполнения тестового случая в минутах (по умолчанию 15). |
--suite-timeout=MINUTES |
Максимальное время выполнения набора тестов в минутах (по умолчанию 360). |
--shutdown-timeout=SECONDS |
Максимальное время в секундах ожидания завершения сервера перед его убийством (по умолчанию 10). |
--warnings |
Просмотр файлов журналов на наличие предупреждений и отчёт о подозрительных; если такие обнаружены, тест будет помечен как неудачный. Используйте --nowarnings, чтобы отключить. |
--stop-file=file |
Если этот файл обнаружен, mariadb-test не будет запускать новые тесты до тех пор, пока файл не будет удалён (также переменная среды MTR_STOP_FILE). |
--stop-keep-alive=sec |
Работает с --stop-file, выводит сообщения каждые sec секунд, когда mariadb-test ожидает удаления файла (для buildbot) (также переменная среды MTR_STOP_KEEP_ALIVE). |
--sleep=SECONDS |
Передаётся в mariadb-test; будет использоваться как фиксированное время ожидания. |
--debug-sync-timeout=NUM |
Установить значение по умолчанию для таймаута действий синхронизации отладки WAIT_FOR. Отключить возможность с NUM=0. |
--gcov |
Собрать информацию о покрытии кода после теста. Результатом является файл dgcov на каждый файл исходного кода и заголовков и файл last_changes.dgcov в vardir с покрытием для несохранённых изменений, если таковые имеются (или последней коммита). |
--gprof |
Собрать информацию о профилировании, используя инструмент gprof для профилирования. |
--experimental=<file> |
Указать файл, содержащий список тестовых случаев, которые должны отображаться с кодом [ exp-fail ] вместо [ fail ], если они завершатся неудачно. Пример файла, который может быть указан с помощью этой опции, см. в mariadb-test/collections/default.experimental. |
--report-features |
Сначала запустить "тест", который сообщает о возможностях MariaDB, отображая вывод SHOW ENGINES и SHOW VARIABLES. Это можно использовать для проверки того, что двоичные файлы собраны со всеми необходимыми функциями. |
--timestamp |
Печать метки времени перед каждой строкой отчёта о тесте, показывая время завершения теста. |
--timediff |
Используется с --timestamp, также выводит время, прошедшее с момента запуска предыдущего теста. |
--max-connections=N |
Максимальное количество одновременных подключений к серверу, которые могут быть использованы на тест. По умолчанию 128. Минимальное значение 8, максимальное 5120. Соответствует той же опции для mariadb-test. |
--default-myisam |
Установить движок хранения по умолчанию на MyISAM для тестов, не использующих InnoDB. Это необходимо после переключения движка хранения по умолчанию на InnoDB. |
--report-times |
Отчёт о том, сколько времени было потрачено на различные фазы выполнения теста. |
--stress=ARGS |
Запуск стресс-теста, предоставляя параметры для mysql-stress-test.pl. Параметры разделены запятыми. |
xml-report=<file> |
Вывод файла jUnit xml результатов. Начиная с MariaDB 10.1.45, MariaDB 10.2.32, MariaDB 10.3.23, MariaDB 10.4.13, MariaDB 10.5.3 |
tail-lines=N |
Количество строк результата, которые следует включить в отчёт об ошибке. Начиная с MariaDB 10.3.4. |
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/mariadb-test-run-pl-options/