Forums » Все о С++TESK »
Опция компиляции CPPTESK_DESERIALIZE_UNEXPECTED_REACTION
Added by Alexander Kamkin about 13 years ago
В С++TESK версии 1.0.13 появилась возможность вывода значений полей неожиданных реакций (UNEXPECTED_REACTION
). При обнаружении неожиданной реакции на выходах тестируемой RTL-модели запускается десериализатор соответствующего выходного интерфейса, ошибка регистрируется только после окончания десериализации.
Для включения этой возможности необходимо сделать две вещи:
- Добавить в сборку опцию
-DCPPTESK_DESERIALIZE_UNEXPECTED_REACTION
. - Добавить в параметры макроса
CPPTESK_DEFINE_BASIC_OUTPUT_LISTENER
имя типа выходного сообщения:CPPTESK_DEFINE_BASIC_OUTPUT_LISTENER(listener_name, output_iface, message_type, condition);
Replies (3)
RE: Опция компиляции CPPTESK_DESERIALIZE_UNEXPECTED_REACTION - Added by Sergey Smolov about 13 years ago
А если OUTPUT_LISTENER не BASIC, а самодельный? Скажем, сделан просто некоторый DEFINE_PROCESS. Будет ли вывод полей неожиданных реакций работать и в таком случае?
RE: Опция компиляции CPPTESK_DESERIALIZE_UNEXPECTED_REACTION - Added by Mikhail Chupilko about 13 years ago
Вывод полей будет работать, но будут выводиться только те данные, которые были явным образом добавлены в сообщение, посылаемое в registerReaction.
RE: Опция компиляции CPPTESK_DESERIALIZE_UNEXPECTED_REACTION - Added by Alexander Kamkin about 13 years ago
У меня (на одном из компьютеров) новый basic listener не собирается. Для того, чтобы заработало нужно в файле include/hw/media.hpp
в макросе CPPTESK_DEFINE_BASIC_OUTPUT_LISTENER()
убрать typename
:
#define CPPTESK_DEFINE_BASIC_OUTPUT_LISTENER(listener_name, output_iface, message_type, condition) \ CPPTESK_DECLARE_PROCESS(listener_name) { \ ... CPPTESK_START_PROCESS(); \ while(true) { \ CPPTESK_WAIT(condition); \ typename adapters_map_t::iterator i = _adapters.find(&iface); \ // <= вот в этой строчке ...
Тикет заведен.