1 parent
41599fa82f
commit
0dd6bef715
12 files changed
+161
-64
No files matched your search
+13
-12
@@ -2,16 +2,14 @@
|
||||
|
||||
// Общая обвязка тестов: песочница для домашней папки и main для QtTest.
|
||||
//
|
||||
// LauncherPaths строит все пути от QDir::homePath(). На Linux и macOS он берёт
|
||||
// HOME, поэтому каждый тестовый процесс до создания QCoreApplication
|
||||
// подменяет HOME на свою временную папку — реальные ~/BiLauncher и .minecraft
|
||||
// машины, на которой гоняются тесты, не трогаются.
|
||||
//
|
||||
// На Windows QDir::homePath() спрашивает профиль у системы и переменные
|
||||
// окружения игнорирует. Там тесты работают в настоящей
|
||||
// %APPDATA%\BiLauncher, но только если её ещё нет либо она создана тестами
|
||||
// (в ней лежит метка .bilauncher-test-sandbox). Иначе процесс отказывается
|
||||
// запускаться, чтобы не испортить данные живого лаунчера.
|
||||
// LauncherPaths строит все пути от домашней папки. Каждый тестовый процесс до
|
||||
// создания QCoreApplication заводит свою временную папку и направляет туда
|
||||
// BILAUNCHER_HOME (её LauncherPaths читает на всех ОС), а заодно HOME и
|
||||
// USERPROFILE (их читает QDir::homePath() на Linux и macOS). На Windows
|
||||
// QDir::homePath() переменные окружения игнорирует, поэтому без BILAUNCHER_HOME
|
||||
// там не обойтись. Реальные папка лаунчера и .minecraft машины, на которой гоняются
|
||||
// тесты, не трогаются: если путь лаунчера всё же оказался вне песочницы,
|
||||
// процесс сразу завершается с кодом 2.
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QString>
|
||||
@@ -19,14 +17,17 @@
|
||||
|
||||
namespace TestEnv {
|
||||
|
||||
// До QCoreApplication: временная папка и подмена HOME/USERPROFILE.
|
||||
// До QCoreApplication: временная папка и подмена BILAUNCHER_HOME/HOME/USERPROFILE.
|
||||
void prepareSandbox();
|
||||
|
||||
// После QCoreApplication: проверка, что пути лаунчера ушли в песочницу,
|
||||
// загрузка переводов, английский язык (тексты ошибок не зависят от локали машины).
|
||||
void finishSetup();
|
||||
|
||||
// Корень песочницы — то, что сейчас возвращает QDir::homePath() в тестах.
|
||||
// Переменная окружения с путём, без потерь символов вне ANSI-кодировки на Windows.
|
||||
void setEnvPath(const char *name, const QString &path);
|
||||
|
||||
// Корень песочницы — домашняя папка, от которой LauncherPaths строит пути в тестах.
|
||||
QString homeDir();
|
||||
|
||||
// Свежая пустая папка внутри песочницы (для .minecraft, архивов и т. п.).
|
||||
|
||||
Reference in new issue
Block a user