1 parent
ebf8ff7869
commit
41599fa82f
67 files changed
+8775
-4
No files matched your search
@@ -0,0 +1,60 @@
|
||||
#pragma once
|
||||
|
||||
// Фикстуры и мелкие помощники для подготовки файлов в песочнице.
|
||||
|
||||
#include <QByteArray>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
#include <QMap>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
|
||||
namespace Fixtures {
|
||||
|
||||
// Абсолютный путь к tests/fixtures/<relative>.
|
||||
QString path(const QString &relative);
|
||||
|
||||
// Содержимое фикстуры; при отсутствии файла тест падает через qFatal.
|
||||
QByteArray read(const QString &relative);
|
||||
QJsonObject readJson(const QString &relative);
|
||||
|
||||
// Фикстура-шаблон: %OS%, %OTHER%, %ARCH%, %NATIVE% заменяются на значения
|
||||
// текущей платформы (имя ОС в терминах Mojang, «чужая» ОС, архитектура,
|
||||
// классификатор нативов LWJGL) — один json годится для всех трёх ОС.
|
||||
QByteArray readTemplate(const QString &relative);
|
||||
QByteArray applyTemplate(QByteArray text);
|
||||
QString otherOsName();
|
||||
|
||||
// Пишет файл, создавая недостающие папки.
|
||||
bool write(const QString &path, const QByteArray &data);
|
||||
bool writeJson(const QString &path, const QJsonObject &object);
|
||||
QByteArray readFile(const QString &path);
|
||||
QJsonObject readJsonFile(const QString &path);
|
||||
|
||||
// Zip из пар «путь внутри архива → содержимое» (через QZipWriter, как в коде лаунчера).
|
||||
bool makeZip(const QString &zipPath, const QMap<QString, QByteArray> &entries);
|
||||
QByteArray zipBytes(const QMap<QString, QByteArray> &entries);
|
||||
// Список файлов в zip — как его видит QZipReader (ведущие «.» и «/» он срезает).
|
||||
QStringList zipEntries(const QString &zipPath);
|
||||
|
||||
// tar.gz через системный tar (есть и на Windows 10+, и на Unix).
|
||||
bool makeTarGz(const QString &archivePath, const QMap<QString, QByteArray> &entries);
|
||||
|
||||
QString sha1(const QByteArray &data);
|
||||
QString sha256(const QByteArray &data);
|
||||
|
||||
// Все файлы под папкой (относительные пути, «/» в качестве разделителя), отсортированы.
|
||||
QStringList listTree(const QString &dir);
|
||||
|
||||
// Подставная java (см. tests/fake_java). Копирует бинарник в <dir>/bin/java[.exe]
|
||||
// (на Windows ещё и javaw.exe) и пишет рядом fake-java.cfg из строк config.
|
||||
// Возвращает путь к java.
|
||||
QString installFakeJava(const QString &dir, const QString &version,
|
||||
const QStringList &config = {});
|
||||
// Переписать fake-java.cfg у уже установленной подставной java.
|
||||
void configureFakeJava(const QString &javaPath, const QString &version,
|
||||
const QStringList &config);
|
||||
|
||||
QString javaExecutableName();
|
||||
|
||||
} // namespace Fixtures
|
||||
Reference in new issue
Block a user