ГОСТ Р ИСО/МЭК 24709-1— 2009
8.15.2.6.4 Если атрибут package присутствует, то он должен определять пакет, в котором находится
вызываемый процесс. Если вызывающий и вызываемый процессы находятся в разных пакетах, атрибут
package является обязательным. В противном случае атрибут package является необязательным.
8.15.2.6.5 Если атрибут break_on_break присутствует и имеет значение "true", а вызываемый про
цесс завершается из-за возникновения прерывания (см. 8.9.2.17). то и текущий (вызывающий) процесс
должен быть завершен.
8.15.2.7 При вызове функции должны бытьсоблюдены три условия, описанные в 8.15.2.7.1 —8.15.2.7.3.
8.15.2.7.1 Набор элементов <input> вызова должен соответствовать входным параметрам функции в
соответствии с 8.5.2.2.
8.15.2.7.2 Набор элементов <output> вызова должен соответствовать выходным параметрам функ
ции в соответствии с 8.6.2.2.
8.15.2.7.3Допускается присутствие элемента <return> (см. 8.7.2.2)
8.15.2.8 Если присутствует атрибут timoout_value. то его значение должно быть корректным пред
ставлением целого числа (см. 7.4). которое определяет максимальную допустимую продолжительность
вызова (в миллисекундах). Если присутствует атрибут timoout_var. то его значение должно быть именем
существующей переменной, а значение этой переменной должно быть корректным представлением цело го
числа (см. 7,4). которое определяет максимальную допустимую продолжительность вызова. В против ном
случае максимальную допустимую продолжительность вызова не устанавливают.
П р и м е ч а н и е — Тестируемая реализация, соответствующая требованиям настоящего стандарта, может
прекратить проведение испытания, время выполнения которого превышает установленные допустимые преде
лы. Данное действие не следует рассматривать как противоречащее требованиям, установленным в 8.15.2.8.
8.15.2.9 Вызов должен продолжаться независимо от максимальной продолжительности, даже если
она равна нулю или отрицательная. В этом случае абстрактная испытательная машина сразу же должна
определить, что максимальная допустимая продолжительность выполнения вызова превышена.
8.15.2.10 Если присутствует атрибут setvar. тодолжны быть соблюдены четыре условия, описанные
В8.15.2.10.1—8.15.2.10.4.
8.15.2.10.1 Значение атрибута setvar должно быть корректным именем глобальной или локальной
переменной (см. 7.2). Значение атрибута setvar не должно быть входным параметром обрабатываемого
утверждения (см. 8.3) и не должно начинаться с двух следующих друг за другом символов «НИЖНЕЕ
ПОДЧЕРКИВАНИЕ» («
__
»). Переменная, имя которой определяется значением атрибута setvar. может
существовать до присвоения ей значения или может быть новой переменной, созданной во время при
своения.
8.15.2.10.2 Если возврат из вызванной функции произошел после превышения максимальной допус
тимой продолжительности вызова функции, то переменнаядолжна быть создана (если она не существует), и
этой переменнойдолжно быть присвоено значение "true” .
8.15.2.10.3 Если возврат из вызванной функции произошел до превышения максимальной допусти
мой продолжительности вызова функции, то переменная должна быть создана (если она не существует), и
этой переменной должно быть присвоено значение ’’false".
8.15.2.10.4 Переменная недолжна создаваться (если она не существуетдо вызова функции) и ей не
должно присваиваться значение, кроме случаев, описанных в 8.15.2.10.2 и 8.15.2.10.3.
8.15.2.11 Когда процесс или функция вызваны, выполнение текущего процесса должно быть приоста
новлено до тех пор. пока вызванные функция или процесс не завершатся, или до тех пор. пока не будет
превышена максимальная допустимая продолжительность вызова.
8.15.2.12 До начала выполнения вызванных процесса или функции всем входным параметрам, для
которых в вызове (при их наличии) был представлен элемент <input>, должны быть присвоены значения
переменных или параметров, представленных в элементах <input> в соответствии с 8 5.2.5. Остальным
входным параметрам в качестве значения должна быть присвоена пустая строка символов.
8.15.2.13 Если вызванные процесс или функция завершаются и не превышают максимальную
допустимую продолжительность вызова, необходимо выполнить два действия, описанные в 8.15.2.13.1 и
8.15.2.13.2.
8.15.2.13.1 Значение каждого выходного параметра, для которого в вызове (в случае их наличия)
предоставлен элемент <output>. должно быть присвоено переменной, указанной в элементе <output> в
соответствии с 8.6.2.3.
8.15.2.13.2 Если осуществляется вызов функции, в котором присутствует элемент <return>. возвра
щаемое значение должно быть присвоено переменной, указанной в элементе <return>. в соответствии с
8.7.2.3.
32