GoGPT Best VPN GoSearch

Значок OnWorks

tesh - Интернет в облаке

Запустите tesh в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда tesh, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


теш - тестовая оболочка

СИНТАКСИС


теш [ВАРИАНТ] ... [ФАЙЛОВ] ...

ОПИСАНИЕ


Это инструмент TESH. Он представляет собой тестовую оболочку, то есть своего рода оболочку, специализирующуюся на
запустить тесты. Список действий, которые необходимо выполнить, извлекается из файлов, называемых testsuite.

ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ


--cd some / directory: попросить tesh переключить рабочий каталог перед
запуск тестов
--setenv var = value: установить конкретную переменную среды
--cfg arg: добавить параметр --cfg = arg в каждую командную строку
--enable-охват: игнорировать выходные строки, начинающиеся с "profiling:"

ТЕШ ФАЙЛОВ СИНТАКСИС


Вот синтаксис этих файлов:

Тип каждой строки задается первым символом (второй символ должен быть пустым и
игнорируется):

Команда `$ 'для запуска на переднем плане
Команда `& 'для запуска в фоновом режиме
`<'ввод для передачи команде
`> 'ожидается вывод команды
`! ' метакоманда, которая может быть одной из:
`тайм-аут ' | нет
"ожидать сигнала"
`ожидать возврата '
`вывод '
`setenv знак равно '
`p 'строка для печати
`P 'строка для печати на КРИТИЧЕСКОМ уровне (упрощение регистрации в журнале)

Если ожидаемый результат не соответствует тому, что выдает команда, TESH выдаст ошибку
показывая разницу (см. ВЫВОД ниже).

IO ЗАКАЗАТЬ


Строки <и> добавляют ввод-вывод к команде, определенной в текущем блоке (блоки разделяются
пустыми строками). Эти строки можно разместить как после команды, так и перед ней.
Разница между двумя следующими блоками в ваших тестовых наборах носит в основном косметический характер.
TESH пофиг. (см. IO-orders.tesh)

$ кошка
<ТОТО
> ТОТО

> ТОТО
$ кошка
<ТОТО

Тем не менее, в одном блоке может быть несколько команд, но ни одна из них
может иметь любой выход. Это может показаться немного ограничительным, поскольку можно сказать, что команда получает
все операции ввода-вывода до следующей команды, но я боюсь таких ошибок, как следующие:

$ компакт-диск тото
> ТОТО
$ mkfile файл

TOTO будет передан команде cd, где пользователь явно хочет передать его команде
Встроенная команда mkfile (см. ниже).

STREAM ПЕРЕНАПРАВЛЕНИЕ


Перенаправления потоков (конструкции ">", "<" и "|" в sh) пока не реализованы в tesh.
Это немного ограничивает, но что ж, патч приветствуется ...

Ситуация, при которой в основном проблематична, - это создание временного файла. В
решение - использовать встроенную команду «mkfile», как в следующем примере: $ mkfile
myFile> некоторый контент> в файл

Это создаст файл с именем myFile (первый аргумент команды mkfile). Его содержание
будет весь ввод, предоставленный команде.

ВЕРНУТЬ КОД


TESH выдает соответствующее сообщение об ошибке, если дочерний элемент не возвращает 0 в качестве кода возврата (см.
catch-return.tesh) и сам возвращает код + 40.

Также можно указать, что данная команда должна возвращать другое значение. Для этого,
используйте метакоманду «ожидать возврата», которая принимает в качестве аргумента целое число. Только изменение
применить к следующей команде (см. set-return.tesh).

СИГНАЛЫ


TESH обнаруживает, когда ребенок убит сигналом (например, при segfaults), и выплевывает
соответствующее сообщение об ошибке (см. catch-signal.tesh).

Также можно указать, что данная команда должна вызывать данный сигнал. Для этого,
используйте метакоманду "ожидать сигнала". В качестве аргумента он принимает имя сигнала. Только изменение
применить к следующей команде (см. set-signal.tesh).

ТАЙМ-АУТЫ


По умолчанию всем командам дается 5 секунд на выполнение (см. Catch-timeout.tesh). Вы можете
измените это с помощью «тайм-аута», который принимает целое число в качестве аргумента. Только изменение применяется
к следующей команде (см. set-timeout.tesh). Если вы передадите в качестве аргумента «нет», команда
не может тайм-аут.

ВЫВОД


По умолчанию вывод команд сопоставляется с ожидаемым, и возникает ошибка.
поднят по неточности. Метакоманды, чтобы изменить это:
"игнорировать вывод" -> вывод полностью исключен
"отображение вывода" -> вывод отображается (но не проверяется)
"сортировка вывода" -> сортирует отображение перед проверкой (см. ниже)

СОРТИРОВКА ВЫВОД


Сортировка вывода кажется странной идеей, но в SimGrid она обязательна, поскольку
процессы выходят из строя в любой точке планирования (т. е. все процессы готовы к запуску в
смоделированное время t запускается параллельно). Чтобы гарантировать совпадение результатов симулятора, мы
необходимо отсортировать вывод, прежде чем сравнивать его.

Мы ожидаем, что симуляторы будут работать с этим аргументом форматирования журнала:
--log = root.fmt: [% 10.6r]% e (% i:% P @% h)% e% m% n Затем tesh сортирует строку по 19 первым символам
только и стабильна, когда начала строк совпадают. Это должно гарантировать, что:
(1) теш эффективен (нет ложных срабатываний, нет ложных отрицательных результатов)
(2) точки планирования отделены друг от друга
(3) в каждой точке планирования процессы отделены друг от друга
(4) порядок того, что данный процесс говорит при заданном расписании.
точка сохраняется.

Это, конечно, очень ориентировано на SimGrid, нарушая универсальность tesh, но кого это волнует,
фактически?

Если вы хотите изменить длину префикса, используемого для сортировки, просто укажите его после
директива сортировки вывода, например:

! сортировка вывода 22

ОКРУЖАЮЩАЯ СРЕДА


Вы можете добавить контент в среду тестируемых процессов с помощью метакоманды setenv.
Работает как положено. Например:
"setenv ПУТЬ =/ бен"

Используйте tesh онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad




×
Реклама
❤️Совершайте покупки, бронируйте или заказывайте здесь — никаких затрат, что помогает поддерживать бесплатность услуг.