1 parent
41599fa82f
commit
0dd6bef715
12 files changed
+161
-64
No files matched your search
+8
-7
@@ -70,13 +70,14 @@ CMake, тесты появятся в панели «Тесты».
|
||||
|
||||
## Как тесты изолированы
|
||||
|
||||
**Файлы.** `LauncherPaths` строит пути от `QDir::homePath()`. Общий `main` тестов
|
||||
(`tests/common/testenv.h`) до создания приложения подменяет `HOME` на временную папку, и каждый
|
||||
процесс работает в своей. Если путь лаунчера всё же оказался вне песочницы, процесс сразу
|
||||
завершается. На Windows `QDir::homePath()` переменные окружения не читает, поэтому там тесты идут
|
||||
в настоящей `%APPDATA%\BiLauncher` учётной записи раннера, строго по одному, а за собой папку
|
||||
стирают. Если папка уже есть и создана не тестами (нет метки `.bilauncher-test-sandbox`), тесты
|
||||
отказываются запускаться.
|
||||
**Файлы.** `LauncherPaths` строит пути от домашней папки. Общий `main` тестов
|
||||
(`tests/common/testenv.h`) до создания приложения направляет `BILAUNCHER_HOME` (а заодно `HOME`
|
||||
и `USERPROFILE`) на временную папку, и каждый процесс работает в своей, на всех ОС, параллельно.
|
||||
`BILAUNCHER_HOME` нужна ради Windows: там `QDir::homePath()` берёт профиль у системы и `HOME`
|
||||
с `USERPROFILE` не читает. Дочерние процессы наследуют переменную. Если папка лаунчера или папка
|
||||
игры по умолчанию всё же оказалась вне песочницы, процесс сразу завершается с кодом 2 и ничего не
|
||||
трогает. Дымовая проверка установленной сборки на Windows (`smoke_installed.ps1`) тоже запускает
|
||||
лаунчер с `BILAUNCHER_HOME` на временную папку.
|
||||
|
||||
**Сеть.** Адреса серверов в сервисах зашиты константами, а свои `QNetworkAccessManager` они
|
||||
создают сами. Зато прокси и SSL-настройки у Qt общие на процесс, и код лаунчера их не трогает.
|
||||
|
||||
Reference in new issue
Block a user