RECT/LinuxSlave
Remote Etersoft CIFS Tester - серверная часть
Описание
Linux slave for RECT - часть проекта RECT, предназначеная для тестирования реализаций сетевых протоколов в Linux.
Загрузка
На данный момент текущая версия rect slave for Linux доступна из git по адресу:
http://git.etersoft.ru/people/lbeasty/packages/rect.git/
Если Вам повезет, вы даже сможете скачать последний снапшот в .tar.gz
Состав
|
examples/ |
примеры клиентов на Python |
|
linux-srv/ |
собственно slave для linux |
|
slice/ |
описание интерфейсов (slice-файлы) |
|
python/ |
модуль питона, упрощающий работу с rect |
Зависимости
Для сборки slave вам понадобятся g++, make и Ice для разработки.
Сборка slave
cd linux-srv && make
Запуск slave
$ ./rect Starting RECT with endpoints tcp -p 13666 Description: Linux
RPM устанавливает rect в каталог /usr/bin.
Настройка
Сервер позволяет управлять своим поведением при помощи свойств. Свойства могут быть заданы в конфигурационном файле в формате:
<свойство> = <значение>
Подробнее о формате конфигурационного файла можно прочитать здесь.
Также свойства могут быть переданы из командной строки (их может быть несколько):
$ ./rect --<свойство>=<значение>
пример:
$ ./rect --RECT.Endpoints='tcp -p 13555'
Существует 2 способа задать конфигурационный файл: из командной строки
$ ./rect --Ice.Config=<путь-к-файлу>
и через переменную среды ICE_CONFIG, например в bash:
$ ICE_CONFIG=<путь к файлу> ./rect
Настройка при запуске более, чем одного слэйва в рамках одной ОС
Информация сохранена как пример конфигурации и на случай если когда нибудь такая поддержка будет реализована. На данный момент рекомендуется для таких ситуаций использовать виртуализацию, например VirtualBox.
В случае запуска тестов при более, чем одном слэйве на одном компьютере, нужно слушать разные порты.
Или создаем несколько различных конфигурационных файлов, в которых указываем нужные Endpoints, или просто запускаем RECT с нужным параметром. Например, для случая двух слэйвов, первый слэйв можно запустить по умолчанию, а в другой консоли запускаем, указывая другой порт и другую папку для монтирования шары:
$ /usr/bin/rect --RECT.Endpoints='tcp -p 13555' --Mount.Root='/tmp/rect2'
Номера портов надо учесть при конфигурации запуска тестов в клиентской части, для нашего случая, слэйвы в клиентском конфиге нужно описать примерно так:
Slave.local=LS:tcp -h localhost -p 13666 Slave.local2=LS:tcp -h localhost -p 13555
Свойства
по русски и подробнее об этом:
Mount.Root all shares are mounted to <~Mount.Root>/server/share default: /tmp/rect Mount.MkdirP command to create mount point default: mkdir -p Mount.Command command to mount share default: cifsmount another good variant: sudo mount -t cifs Mount.Suffix added to mount command after mountpoint default: -o noperm,setuids,guest RECT.Endpoints endpoint of RECT object adapter. default: tcp -p 13666 RECT.CIFS.version version of cifs: etercifs or linux-cifs. default: etercifs RECT.Description string that is returned by slave's describe(...) method. default: Linux