Open-Source Projects: Issueshttps://forge.ispras.ru/https://forge.ispras.ru/favicon.ico?16490126692015-11-24T12:56:49ZOpen-Source Projects
Redmine Retrascope - Task #6446 (New): Promela translator to CFG representation (no buffers)https://forge.ispras.ru/issues/64462015-11-24T12:56:49ZSergey Smolovsmolov@ispras.ru
<p>Implement a translator for Promela descriptions to CFG representation.<br />First version may not support buffers.</p> Local Support Project - Bug #6394 (New): Проект HDL Retrascope: на 17-дюймовом мониторе не масшта...https://forge.ispras.ru/issues/63942015-11-04T08:18:33ZSergey Smolovsmolov@ispras.ru
<p>В проекте HDL Retrascope при заходе через браузеры Firefox, Opera, IE не масштабируется таблица Задачи.<br />В других проектах на том же мониторе такая проблема не наблюдается.</p> Retrascope IDE - Task #5702 (New): [tool] create Retrascope iconhttps://forge.ispras.ru/issues/57022015-03-11T08:35:21ZSergey Smolovsmolov@ispras.ru
<p>Create the Retrascope icon & use it instead of the default one.</p> Retrascope IDE - Bug #5547 (New): save Retrascope result not to ECLIPSE_HOME folderhttps://forge.ispras.ru/issues/55472015-01-05T19:24:18ZSergey Smolovsmolov@ispras.ru
<p>While using Retrascope IDE Configurator menu, engines that generate output file can be selected (like test-xml-printer, which generates test.xml file by default).<br />But if the full path to the output file is not specified, the Retrascope IDE saves output file to the ECLIPSE_HOME folder. Which causes an error, for example, in Windows 7 OS, where Eclipse IDE can be installed to the protected-for-writing folder like C:\Program Files.</p> Retrascope IDE - Task #5546 (New): [log] print Retrascope log to Eclipse loghttps://forge.ispras.ru/issues/55462015-01-05T19:18:15ZSergey Smolovsmolov@ispras.ru
<p>Print the Retrascope output to Eclipse IDE log panel.</p> Retrascope - Task #5504 (New): add channels between EFSMshttps://forge.ispras.ru/issues/55042014-12-16T11:45:34ZSergey Smolovsmolov@ispras.ru
<p>The EFSMs that are living in the same EfsmModel container should be able to interact with each other by messages.<br />These messages incapsulate events.</p> Retrascope IDE - Task #5251 (New): [tool][configurator] Сохранение конфигурацийhttps://forge.ispras.ru/issues/52512014-09-05T07:59:53ZSergey Smolovsmolov@ispras.ru
<p>При каждом вызове меню "Configure and Run" (в том числе в рамках одной сессии работы с IDE) введенные с его помощью параметры (задействованные Engine, аргументы командной строки) сбрасываются.<br />Нужно их сохранять (в том числе и вне сессий работы с IDE).</p> Fortress - Task #4713 (New): SMT-LIB structureshttps://forge.ispras.ru/issues/47132014-03-17T06:59:53ZSergey Smolovsmolov@ispras.ru
<p>Реализовать поддержку структур (record) как типа данных языка SMT-LIB.</p> TestBase - Task #4674 (New): Тестовые ситуацииhttps://forge.ispras.ru/issues/46742014-01-20T10:36:58ZSergey Smolovsmolov@ispras.ru
<p>Необходимо вынести функциональность тестовых ситуаций в отдельный компонент. Компонент содержит имя, описание и ограничение.</p> Retrascope - Task #4521 (New): Входной класс для генератора тестовой последовательностиhttps://forge.ispras.ru/issues/45212013-10-02T13:03:18ZSergey Smolovsmolov@ispras.ru
<p>Необходимо реализовать класс Description. Объект данного класса подается на вход генератору тестовой последовательности.</p>
<p>Класс содержит набор интерфейсов.</p>
<p>Интерфейс содержит набор входных сигналов. Каждому входному сигналу сопоставляются ограничение на данный входной сигнал и некоторая временная задержка.</p> Retrascope - Task #4363 (New): Критерий кластеризации входных сигналов, основанный на GAhttps://forge.ispras.ru/issues/43632013-07-17T12:11:05ZSergey Smolovsmolov@ispras.ru
<p>Предлагается следующий критерий разбиения входных сигналов по интерфейсам:</p>
<p>Два сигнала входят в один интерфейс <=> существует охраяемое действие, в котором используются оба этих сигнала (сигналы могут использоваться в блоке охранного предиката и в блоке действия).</p>
<p>Необходимо реализовать данный критерий в виде метода и оценить его работу посредством сбора статистики.</p> С++TESK Development Environment - Task #3756 (New): Генерация C++ кода для модели сообщенийhttps://forge.ispras.ru/issues/37562012-12-05T15:32:06ZSergey Smolovsmolov@ispras.ru
<p>Небходимо разработать метод генерации C++ кода для модели сообщений.</p>
<p>На вход методу подается несколько объектов класса Adapter. В виде какой структуры данных эти "несколько" будут подаваться - на твое усмотрение. Например, можно взять ту же, что использовалась<br />в инструменте signalsGrouper для хранения набора накликанных "интерфейсов".<br />Т.к. все адаптеры между собой различны и полных совпадений между ними быть не должно, то из самых общих соображений могу предложить использовать java.util.Set.</p>
<p>Суть метода такова: проходим по всем адаптерам и извлекаем из них объекты MessageType и помещаем их в промежуточное хранилище (возможно, тот же Set). При этом необходимо проверять, что в хранилище ещё нет такого же типа сообщений (а при разработке адаптеров для разных интерфейсов вполне реально, что они будут использовать сообщения одного типа)- делать такую проверку лучше всего посредством разработки метода сравнения equals в классе MessageType.</p>
<p><strong>Шаблон для *.h-файла</strong></p>
<pre>
#pragma once
#include <hw/message.hpp>
namespace имя_пространства_имен {
</pre> Про извлечение название пространства имен смотри <a class="issue tracker-2 status-1 priority-4 priority-default" title="Task: namespace name for test system prototypes (New)" href="https://forge.ispras.ru/issues/3755">#3755</a>
<p>Для каждого типа сообщений далее генерируем следующий код:<br /><pre>
MESSAGE(имя_типа_сообщений)
{
public:
имя_типа_сообщений();
virtual ~имя_типа_сообщений();
SUPPORT_CLONE(имя_типа_сообщений);
</pre></p>
<p>Далее для всех полей сообщения данного типа генерируем вызов соответствующего макроса. Макросы бывают следующие:<br />1) Если размер поля больше 64 бит, то нужно использовать<br /> - CPPTESK_DECLARE_FIELD_ARRAY(имя_поля, размер_массива, размер_поля); - если маска не задана<br /> - CPPTESK_DECLARE_MASKED_FIELD_ARRAY(имя_поля, размер_массива, размер_поля, маска_поля); - если маска задана</p>
<p>В силу особенностей реализации параметр размер_поля делаем равным 64, а параметр размер_массива делаем таким, чтобы удовлетворялось следующее неравенство:</p>
<p>capacity <= размер_поля*размер_массива</p>
<p>где capacity - одноименное поле соответствующего экземпляра класса MessageField.</p>
<p>2) Если размер поля меньше, или равен 64 бит, то нужно использовать<br /> - CPPTESK_DECLARE_FIELD(имя_поля, размер_поля);<br /> - CPPTESK_DECLARE_MASKED_FIELD(имя_поля, размер_поля, маска_поля);<br /> - CPPTESK_DECLARE_BIT(имя_поля); - если размер поля равен 1</p>
<pre>
};
}
</pre>
<p>Заголовочный файл называем имя_пространства_имен_msg.h</p>
<p><strong>Шаблон для .cpp файла</strong></p>
<pre>
include <имя_пространства_имен_msg.h>
namespace имя_пространства_имен {
</pre>
<p>Для каждого из типов сообщений генерируем следующий код конструктора и деструктора</p>
<pre>
имя_типа_сообщений::имя_типа_сообщений(void)
{
</pre>
<p>Для всех полей сообщения, у которых incomparable равно false (см. <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Task: флаг incomparable в полях сообщений (Closed)" href="https://forge.ispras.ru/issues/3754">#3754</a>):<br /><pre>
ADD_FIELD(имя_типа_сообщений::имя_поля);
</pre></p>
<p>Для всех полей сообщения, у которых incomparable равно true (см. <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Task: флаг incomparable в полях сообщений (Closed)" href="https://forge.ispras.ru/issues/3754">#3754</a>):<br /><pre>
ADD_INCOMPARABLE_FIELD(имя_типа_сообщений::имя_поля);
</pre></p>
<p>Рандомизируем значения полей - только если оно соответствует входному интерфейсу!<br /><pre>
RANDOMIZE_MESSAGE(*this);
}
имя_типа_сообщений::~имя_типа_сообщений(void) {}
}
</pre></p>
<p>Рекомендация - данную задачу стоить решать посредством разработки нескольких относительно простых методов в соответствующих классах, а не одного сложного.</p> С++TESK Development Environment - Task #3755 (New): namespace name for test system prototypeshttps://forge.ispras.ru/issues/37552012-12-05T14:01:12ZSergey Smolovsmolov@ispras.ru
<p>При генерации C++ кода прототипов компонентов тестовой системы необходимо использовать общее пространство имен - namespace. Его имя будем извлекать из ещё одного компонента VPI-окружения, также генерируемого инструментом Veritool. Этот компонент называется testbench.v, компонент на языке Verilog.</p>
<p>Необходимо разработать метод, который парсит файл testbench.v и извлекает из него имя для пространства имен. Будем полагать, что это имя должно совпадать с именем целевого тестируемого модуля (так зачастую и делают в промышленных проектах). Строка, в которой присутствует это имя, имеет следующий формат:</p>
<p>имя_целевого_модуля target (</p>
<p>а дальше идет код...</p>
<p>В примерах, идущих вместе с поставкой C++TesK Testing ToolKit файл testbench.v находится в папках verilog соответствующих тестовых систем.</p>
<p>Впоследствии нужно будет грамотно прикрутить этот метод к GUI инструмента. Как лучше это сделать - обсудим позже.</p> С++TESK Development Environment - Task #3659 (New): Соответствие полей классов сообщений и сигнал...https://forge.ispras.ru/issues/36592012-11-02T12:26:12ZSergey Smolovsmolov@ispras.ru
<p>Дано:</p>
<p>1) XML-файл формата Task #3653;</p>
<p>2) набор входных и выходных сигналов HDL-модели - получаем с помощью методов из проекта signalsGrouper ( Task <a class="issue tracker-2 status-1 priority-4 priority-default" title="Task: Генерация заготовки тестовой системы по информации об интерфейсе (New)" href="https://forge.ispras.ru/issues/2163">#2163</a>);</p>
<p>Требуется: <br />Разработать инструмент, позволяющий устанавливать соответствие между описанными в XML-файле полями сообщений различных типов и используемыми в них сигналами. Инструмент должен иметь графический интерфейс, язык программирования - Java. По завершении работы необходимо создавать экземпляр соответствующего класса из библиотеки tsprototype проекта C++TESK IDE (см. Task <a class="issue tracker-2 status-5 priority-5 priority-high3 closed" title="Task: source code refactoring (Closed)" href="https://forge.ispras.ru/issues/3654">#3654</a> п.3).</p> CTESK - Bug #2494 (New): warning at build loghttps://forge.ispras.ru/issues/24942012-02-24T06:40:28ZSergey Smolovsmolov@ispras.ru
<p>При сборке возникает следующее предупреждение:</p>
<p>gcc -I. -g -ggdb -O0 -fno-inline -D_GLIBCXX_DEBUG -O -DATL_CLONE_DISABLE -DUSE_FOPEN64 -c c_tracer/c_tracer.c -o c_tracer/c_tracer.o<br />c_tracer/c_tracer.c: In function ‘addTraceToFile’:<br />c_tracer/c_tracer.c:117:7: warning: assignment makes pointer from integer without a cast</p>
<p>Сборка завершается корректно, так что это скорее небольшой досадный недочет.</p>