Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
(название проекта условно)
[pre]Небольшое отступление ...[/pre]При работе над S&M я много раз натыкался на то, что 'жесткая' программа не удовлетворяет условиям нормального тестирования. Нужно что-то которое могло бы настраиваться и меняться (относительно) произвольно. В основном это касается тестов памяти.
Вначале думал сделать некоторый набор функций, в котором можно задавать повтор/размер и прочее. Это лучше фиксированных процедур, но тоже не то.
Лучше сделать эти параметры зависимыми от чего-либо .... и тут медленно приползаем к интерпретатору. Собственно, в этом нет ничего зазорного - процедуры выполняются значительное время и небольшие задержки на обмен текстовых сообщений никого не затронет.
Следующий момент - а как быть с тестами процессора и диска? (там еще болтается 'тест БП') Хорошо бы иметь взможность их соединения между собой.
Чем больше думаю над этим безобразием, тем больше склоняюсь к этому бреду. Т.е систему передачи текстовых сообщений между функциями с центральным управляющем элементом в виде некоторого интерпретатора.
Проблемы:
- как описывать общий GUI? Вариант - через файлы .RS ... но как описывать изменяемые параметры в этих .rs?
- как описывать GUI функций? Через некоторые каналы ввода, вывода, ошибки, управления? .... а если устройство ввода не_стандартное для какого-то теста?
- как собирать программу, если она состоит из множества модулей и различного вида описателей и картинок? Вариант - в один 'большой' архив.
- .... ???
Наверно, не очень понятно, нафига надо было усложнять? ... да очень просто - пусть тесты пишут сами. В программе будет набор функций и правила их пользования. Сами тесты пишут юзеры.
Попутное свойство - программа будет относительно легко морфировать и расширять. Например, добавить тесты странных устройств или информационные/bench утилиты.
Мысли?
Пока проект в стадии 'обдумывания' и опробывания идей, решил сделать что-то осмысленное. Для проект нужен распаковщик (см. выше) и работа с строками - сделал небольшую програмку для просмотра результатов всяких марков.
Тут я пытался опробовать некоторые идеи, в тои числе управление (конфигурирование) через текстовый файл.
link Надо (самому) заполнить конфигурационный файл и (предполагаю) можно пользоваться для просмотра и сравнения результатов.
Настройка несложная и детально описана. Выглядит примерно так - (сравнение разных OS в PCMark)
#77
... без верхних кнопок. Качество картинки потерялось после пережима в gif, мелочь.
serj Я не уловил связи между вступлением и последующей программой. Можно как-нибудь конкретнее объяснить, к чему этот пост, какие мыли ожидаются от других людей?
P.S>
Для того, чтобы связать несколько тестов нужно просто сделать плагинную систему, в которой станет возможным подключение того или иного теста. Интерпритатор-то тут зачем? Он может понадобиться только для описания интерфейса. Кстати, все это можно сделать через .нет обертку, там это написать вобще расплюнуть. Она-то уже в последствии может использовать и библиотеки написанные на любом другом языке.
Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
sashar2 связь относительная - эту программу я сделал как тест некоторых идей, изложенных выше.
Плагин говоришь ... а как запустить несколько плагинов (разных) одновременно с взаимной передачей параметров и обменом данных? Например - тест чего-то и сбор/вывод информации. Далее, сами плагины должны регистрироваться в системе и как-то адаптироваться. И потом, вывод (и ввод) плагинов - кто этим будет заниматься, сами плагины? Конечно, если я тут глупости говорю, то давайте замнем вопрос.
serj Если все плагины состоят в одной системе и подчиняются ряду правил, то мы можем взаимодействовать с другими плагинами, если предоставить возможность в программе. Тесты и сбор инфорации - это могут быть два совершенно разных типа плагинов, модули сбора информации если хотят могут и между собой взаимодействовать. И хотел бы уточнить о какой взаимной передаче параметров и обмене данных идет речь, можно и примером.
P.S>
Глупостей нет, давай обсуждать, придем к истине .
Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
sashar2, давай несколько иначе. Плагин это то, что загружается снаружи и используется для расширения свойств системы. Хорошо? Да. Но можно несколько изменить принцип - давай считать, что в системе нет ничего, только одни плагины. Пока мысль прослеживается? Как 'оно' будет 'собираться' и как взаимодействовать?
Самый простой вариант - плагин=dll, способ общения - через выдачу текстовых сообщений. (бинарные, заранее определенные, сообщения резко ограничивают функционал. Передача бинарных данных - позже).
Так, кто будет выдавать сообщения друг-другу ... сами модули? Тогда это надо делать 'адресно' и тут пропадает эффект замены одной функции на другие (т.е. фильтры). Из этого вытекла мысль о том, что модули вызывают единственное средство общения - интепретатор. Например, сообщение 'у меня есть ошибки, кто это возмет?' (нормальную англ. версию не напишу, голова болит. Что-то типа "Test({его название},type=output,error=warning,data={номер/название блока данных}") ... ну и - интепретатор пытается эту строку выполнить. Т.е. берет устройство контроля и плюет в него. (в строке могут быть не только явные данные, но и названия других функций)
И вообще, есть понятие 'имя' (строка символов). Что это означает - Х3. В смысле - пишем "output = X3", причем X3 может быть просто данными (массив, буфер). Потом загружается другой модуль и перехватывает это Х3 на себя (у него имя такое).
serj То что ты хочешь сделать программу состоящую целиком из плагином я понял. И под этим словом и имел ввиду полностью модульное приложение.
А вот с остальным пока что не очень. Я не могу понять с какой целью делается это взаимодействие, зачем модули будут друг у друга перехватывать сообщения? И кто эти сообщения будут гененерировать?
Насчет того, что в системе одни плагины. Тут должен быть в любом случае главный модуль, который будет обеспечивать подключение всех остальных. При загрузке которого будет произведен анализ какого-то конфигурационного файла с целью выяснить какие модули необходимо подключить, какого типа и.т.д. Ну и после происходит активация нужных нам dll. Лично у меня нет вопросов насчет сборки такой "плагинной" программы. А вот насчет сообщений хотелось бы все же уточнить.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения