Сценарии Vue

В отличие от процедур в процедурных языках программирования блок действий в Vue не имеет выходных параметров и не возвращает значений.

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

Предикаты

Когда блоки точек тестирования должны выполняться в зависимости от определенных условий, следует использовать предикаты. Секция предиката определяется наличием ключевого слова когда сразу после секции определения теста. Предикат содержит обычное условное выражение стиля C в круглых скобках.

Формат предиката следующий:
  	when ( <условие> )
Например:
when ( __pid == 1678 )

Пример сценария Vue

Пример сценария Vue:

/* Глобальные переменные автоматически инициализируются нулем */ [1]

	int count; /[2]
	/* 
	 * Файл: count.e
	 *
	 * Подсчет числа системных вызовов read и write,
	 * сделанных процессом с ИД 400 
	 */

	@@BEGIN
	{
		printf("Запуск теста\n");
	}

	@@syscall:*:read:entry, @@syscall:*:write:entry [3]
		when (__pid == 400)[4]

	{[5]

		count++;
		/* Вывод сообщения через каждые 20 системных вызовов */
		if (count % 20 == 0)
			printf("Число вызовов read/write: %d\n", count);
		/* Выход, когда число системных вызовов превысит 100 */
		if (count > 100)
			exit();
	} [6]

	/* Вывод статистики перед выходом */
	@@END
	{
		printf("Завершение теста после %d системных вызовов.\n", count);
	}

Верхние индексы обозначают различные элементы в примере сценария Vue:

  1. Комментарии
  2. (Необязательный) Секция определений
  3. Спецификация теста
  4. (Необязательный) Предикат
  5. Начало блока действий
  6. Конец блока действий

Сценарий запускается следующей командой. Примечание: показанный вывод сценария — это только пример.

# probevue count.e
	Число вызовов read/writes: 20
	Число вызовов read/writes: 40
	Число вызовов read/writes: 60
	...
	...

Для запуска probevue требуются соответствующие права доступа. Необходимо войти в систему под учетной записью администратора или получить права на тестирование системных вызовов всех процессов системы.