Open-Source Projects: Issueshttps://forge.ispras.ru/https://forge.ispras.ru/favicon.ico?16490126692010-07-06T15:24:05ZOpen-Source Projects
Redmine Aspectrace - Task #290 (New): Аспект FSM: трассировка переходовhttps://forge.ispras.ru/issues/2902010-07-06T15:24:05ZAlexander Kamkinaskamkin@gmail.com
<p>Предлагается сделать в функции aspect_fsm_traceTransitionStart() два параметра (вместо одного):</p>
<p>1. Идентификатор перехода - строка, уникально идентифицирующая переход.<br />2. Класс перехода - строка, содержащая тип перехода (имя сценарной функции).</p> Aspectrace - Task #289 (New): Кодировка по умолчаниюhttps://forge.ispras.ru/issues/2892010-07-06T15:13:54ZAlexander Kamkinaskamkin@gmail.com
<p>Предлагается изменить кодировку по умолчанию с windows-1251 на что-нибудь более универсальное (utf-8 или т.п.).</p> CTESK - Task #288 (Closed): Модификация функции getTTFileName()https://forge.ispras.ru/issues/2882010-07-06T15:12:14ZAlexander Kamkinaskamkin@gmail.com
<p>Предлагается добавить в функцию getTTFileName() параметр - расширение файла трассы.</p>
<p>Данная возможность полезна при добавлении новых типов трассировки в CTESK - разнотипные трассы удобно различать по расширению.</p> CTESK - Task #280 (Closed): Функция отключения проверки постусловийhttps://forge.ispras.ru/issues/2802010-06-29T06:41:05ZAlexander Kamkinaskamkin@gmail.com
<p>Для целей отладки тестовых сценариев (проверки того, что графы детерминированы и сильно-связны) удобно иметь функцию отключения постусловий setCheckPostcondition(bool enable).</p> CTESK - Task #279 (New): Библиотека рандомизацииhttps://forge.ispras.ru/issues/2792010-06-28T07:26:02ZAlexander Kamkinaskamkin@gmail.com
<p>Предлагается добавить в CTESK библиотеку рандомизации. Нужные сейчас функции с их реализацией можно посмотреть во вложении.</p> CTESK - Feature #209 (Closed): Выделение предусловия реакции в отдельную функцию при трансляцииhttps://forge.ispras.ru/issues/2092010-05-24T10:01:32ZAlexander Kamkinaskamkin@gmail.com
<p>Было бы полезно при трансляции спецификации отложенной реакции, ее предусловие оформлять в виде отдельной функции, которую можно вызывать из кода спецификаций. Например, можно разместить указатель на предусловие функции в структуре SpecificationDesc.</p>
<p>Такая возможность возникает при тестировании моделей аппаратуры.</p> CTESK - Task #229 (Closed): Выделение предусловия стимула в отдельную функцию при трансляцииhttps://forge.ispras.ru/issues/2292010-05-24T10:01:32ZAlexander Kamkinaskamkin@gmail.com
<p>Было бы полезно при трансляции спецификации, ее предусловие оформлять в виде отдельной функции, которую можно вызывать из кода спецификаций. Например, можно разместить указатель на предусловие функции в структуре SpecificationDesc.</p>
<p>Такая необходимость возникает при тестировании моделей аппаратуры.</p> CTESK - Feature #208 (Closed): Возможность отключения проверки предусловия реакцийhttps://forge.ispras.ru/issues/2082010-05-24T09:54:06ZAlexander Kamkinaskamkin@gmail.com
<p>Необходима возможность отключения проверки предусловий реакций в оракуле.</p>
<p>Такая возможность крайне желательна при тестировании моделей аппаратуры. Предусловие реакции имеет смысл охранного предиката, который проверяется на такт раньше постусловия.</p> CTESK - Task #230 (Closed): Возможность отключения проверки предусловия стимуловhttps://forge.ispras.ru/issues/2302010-05-24T09:54:06ZAlexander Kamkinaskamkin@gmail.com
<p>Реализовать возможность отключения проверки предусловий стимулов в оракуле.<br />Поскольку предусловие накладывает ограничения на тестовую последовательность, а не на целевую систему, после отладки теста проверка предусловий может быть отключена для повышения производительности.</p> CTESK - Bug #206 (Closed): Ошибка в генерируемой функции callhttps://forge.ispras.ru/issues/2062010-05-21T14:12:00ZAlexander Kamkinaskamkin@gmail.com
<p>Функция next:<br /><em>tmp_par->flags |= 2;<br /></em>_scen0_0_call( r(_tmp_par) );<br />_tmp_par->flags &= ~2;</p>
<p>Функция call:<br />if(_tmp_par->flags & 2) // TODO: нужно if(!(_tmp_par->flags & 2))
{<br />// call<br />}</p> CTESK - Bug #204 (Closed): Не поддерживается совместная работа функций next() и call()https://forge.ispras.ru/issues/2042010-05-20T14:11:51ZAlexander Kamkinaskamkin@gmail.com
<p>В существующей схеме трансляции сценарных функций для структур итерационных переменных генерируются две функции next и call. Функция next реализована через call (сначала инкрементируется index, затем вызывается call). Если index неположителен call-блок не вызывается.</p>
<p>Это означает, что методы next и call нельзя использовать вместе (либо делается next, и call-блок не вызывает; либо делается call, и call-блок вызывается).</p>
<p>Иногда перед вызовом call необходимо сделать несколько "холостых" итераций (например, когда значений итерационных переменных нет в кэше, и их еще нужно вычислить). Сейчас такой возможности нет.</p> CTESK - Task #203 (Closed): Итерация значений итерационных переменныхhttps://forge.ispras.ru/issues/2032010-05-14T15:34:41ZAlexander Kamkinaskamkin@gmail.com
<p>Существующая версия CTESK не поддерживает итерацию значений итерационных переменных без вызова спецификационных функции и другого кода. Указанная возможность необходима для того, чтобы занумеровать дуги, выходящие из текущей вершины (с тем, чтобы разные обходчики выбирали по возможности разные дуги).</p> CTESK - Bug #169 (Closed): CTESK не может создать трассы размера > 2Gbhttps://forge.ispras.ru/issues/1692010-03-19T11:52:05ZAlexander Kamkinaskamkin@gmail.com
<p>CTESK не может создать трассы размера > 2Gb (по крайней, мере на некоторых платформах). Похоже, это связано с использованием функций stdlib (fopen, fprintf и др.).</p> CTESK - Bug #168 (Closed): Выход за границу стека в функции find_nonfinished_state()https://forge.ispras.ru/issues/1682010-03-10T09:36:03ZAlexander Kamkinaskamkin@gmail.com
<p>Обходчик ndfsm для поиска не до конца пройденных состояний использует структуру данных PathFinderData (см. функцию find_nonfinished_state, файл ndfsm.c). Проблема в том, что эта структура имеет достаточно большой размер (она содержит внутри себя хэш-таблицу), поэтому не всегда помещается в стеке вызова функции. При инициализации структуры вызывается memset(...), который может обнулять память за пределами стека со всеми вытекающими последствиями.</p>
<p>Проблема (если понять, в чем именно дело) решается уменьшением константы NDFSM_HASH_MAP_SIZE. Предлагается одно из следующих решений: либо создавать структуру PathFinderData динамически (а не размещать ее в стеке), либо поставить assertion, который проверяет, что структура в стек влезает.</p> CTESK - Bug #155 (Rejected): Переименование функции clone()https://forge.ispras.ru/issues/1552010-02-18T12:53:25ZAlexander Kamkinaskamkin@gmail.com
<p>Если тестовую систему, разработанную с помощью CTESK, скомпилировать под Linux как разделяемую библиотеку (.so), то при запуске теста возникает Segmentation fault.</p>
<p>Анализ проблемы показал, что дело в следующем.</p>
<p>В CTESK для клонирования объектов спецификационных типов используется функция clone (object.h). Проблема в том, что в Linux есть системный вызов clone, используемый для создания потоков:</p>
<p>#include <sched.h><br />int clone (int (*fn) (void *), void *child_stack, int flags, void *arg);</p>
<p>Если тестовая система компилируется как динамическая библиотека, линкер сопоставляет символу clone адрес системного вызова, то есть при клонировании объекта вызывается функция создания нового потока, которая завершается с ошибкой, возвращая -1, который потом присваивается указателю на копию объекта. Дальнейшее понятно.</p>
<p>Не знаю, можно ли эту проблему решить флажками линковки. Мне было проще написать в файле object.h:</p>
<p>#define clone myClone</p>
<p>Предлагается изменить название функции clone на что-то более уникальное.</p>