Динамическая верификация без VSCode

VSCode удобен для разработки модели, медиатора, для разовых проверок трасс. Для запуска динамической верификации в автономном от пользователя режиме VSCode не годится. Чтобы настроить такой режим, нужно:

  1. подготовить окружение

  2. загрузить модель, медиатор и трассы

  3. транслировать модель

  4. транслировать трассы

  5. запустить проверку трасс

Подготовка окружения

Нужно установить следующее базовое программное обеспечение:

  1. NodeJS

  2. Python версии не ниже 3.9

Нужно распаковать расширение АНИС для VSCode, так как в нем расположены необходимые инструменты и для работы без VSCode:

unzip eventb-vscode-extension.vsix
cd extension

Загрузка исходных файлов

  1. Создать рабочую директорию:

    mkdir workspace
    
  2. Загрузить модель:

    mkdir workspace/src
    cp .......
    
  3. Загрузить класс-наследник машины и файл conftest.py (при наличии)

  4. Создать виртуальную среду и установить Python-библиотеки АНИС:

    cd workspace
    mkdir .venv
    python3 -m venv .venv
    . .venv/bin/activate
    pip3 install <wheel-file anis>
    pip3 install <wheel-file cli_anis>
    cd ..
    
  5. Загрузить медиатор в рабочую директорию

  6. Загрузить трассы:

    mkdir workspace/traces
    cp .........
    

Трансляция модели

  1. Скачать зависимости транслятора модели:

    scripts/setup_translator.sh
    
  2. Выбрать целевой компонент

  3. Странслировать целевой компонент:

    scripts/run_translator.sh workspace/src/<MACHINE>.bm workspace
    

Транслятор создаст поддиректорию workspace/anis/model и в нее поместит исходные файлы Python.

Трансляция трасс

  1. Выбрать адаптер монитора (на данный момент поддерживается всего один)

  2. Скачать зависимости выбранного адаптера монитора:

    make -C scripts/monitor_adapters -f pytest_json.mk setup
    
  3. Создать файл с форматом трассы

    vim workspace/trace.json
    ...
    
  4. Странслировать трассы, все пути должны быть абсолютными, TESTS_DIR должен быть путем внутри workspace:

    make -s -C scripts/monitor_adapters -f pytest_json.mk run \
    TRACES_DIR=/home/.../workspace/traces \
    TRACE_FORMAT=/home/.../workspace/trace.json \
    NORMALIZED_TRACES_DIR=/home/.../workspace/traces_normalized \
    TESTS_DIR=/home/.../workspace/tests
    

Проверка трасс

cd workspace
pytest -p anis.cli

Если требуется дополнительно собирать покрытие по модели, то надо создать файл workspace/settings.json с тем же содержимым, что и файл .vscode/settings.json.