изменение логических полей в нескольких структурах одновременно в specman - PullRequest
0 голосов
/ 19 мая 2019

Я хочу изменить одно поле, которое определено в нескольких классах в моем env specman (в настоящее время эти поля являются глобальными переменными в разных классах).Я хочу иметь возможность изменять эти поля в середине тестового прогона, и я хочу изменить все из них одновременно.Поскольку я не хочу получать доступ ко всем классам и менять их локально, я подумал об использовании указателей вместо глобальных.Кто-нибудь знает способ сделать это в specman?или, может быть, другое решение?

Это для среды с множеством классов, и для доступа к каждому из них требуется много кода и времени выполнения

1 Ответ

0 голосов
/ 20 мая 2019

Может ли статическое поле решить вашу проблему?Все экземпляры будут видеть одно и то же значение.

struct my_s {
    static b: bool;
};

Альтернативой может быть оболочка bool: все соответствующие экземпляры будут ссылаться на одну и ту же оболочку, и как только значение внутри изменится, все они увидятизменить:

struct bool_wrapper {
    value: bool;
};
struct my_s {
    b: bool_wrapper;
};

В 'e' нет такой вещи, как указатель на значение типа примитива.

...