2014-11-27 4 views
1

В моей среде проверки под sys есть экземпляр timer_sve. Под timer_sve у меня есть 2 других экземпляров: timer и ocp_master:Specman e: Как отключить покрытие экземпляров/единиц?

extend sys { 
    timer_sve : timer_sve_u is instance; 
}; 

unit timer_sve_u { 
    timer  : timer_u is instance; 
    ocp_master : ocp_u is instance; 
}; 

мне нужно собрать покрытие только для timer. Я попробовал этот код (и многие другие вариации этого), чтобы отключить освещение ocp_master:

extend sys { 
    timer_sve : timer_sve_u is instance; 

    setup() is also { // The code to disable ocp_master's coverage 
     global.covers.set_cover_block("ocp_u", FALSE); 
    }; 
}; 

код компилируется и выполняется успешно, но он продолжает собирать покрытие для ocp_master ... Как может Я не могу снять покрытие ocp_master? Очень ценю вашу помощь.

ответ

1

Метод set_cover_block(...) не принимает устройство в качестве входа, а модуль (то есть файл), в котором определены элементы покрытия. Попробуйте изменить его, чтобы взять файл, в котором вы расширяете свои ocp_u с определениями покрытия.

Что я также делаю, чтобы отключить определенные пункты/группы покрытия и т. Д. устанавливаются в when вариант для FALSE:

extend some_struct { 
    cover some_cover using also 
    when = FALSE; 
}; 

Некоторых спекуляций с моей стороны:

Отключением покрытия с использованием set_cover_block(...), вероятно, не инструмента исключенного кода для покрытия (т.е. полностью игнорировать определение охвата) и сделать моделирование быстрее, чем отключив его, используя опцию when.

+1

Метод set_cover_block (...) не работал, когда я определил полный проход к «ocp_cover.e» - Specman скомпилирован и запущен, но просто не отвечает на set_cover_block() .. (может быть, я не использовали его должным образом). Но мне удалось исключить «ocp_master» из покрытия другим методом: set_cover («ocp *. *. *», FALSE); – Halona

+2

@Halona Рад, что он работает с 'set_cover (...)'. Если вы чувствуете себя авантюрно и хотите снова попробовать 'set_cover_block (...)', не давайте ему полный путь к файлу e, просто укажите его имя файла (без расширений .e). Это имя e-модуля. В соответствии с документацией также действуют подстановочные знаки. –