mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
Util.cppのテスト追加
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@222 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
b5dafc263c
commit
23dd0ae63f
@ -32,6 +32,10 @@ TEST_ENVIRONMENT_EMUMEM = true
|
||||
|
||||
LIBS += libnn_test
|
||||
|
||||
ROM_SPEC_FILE = ../ConsoleRestore/ConsoleRestore.rsf
|
||||
DESCRIPTOR = $(HORIZON_ROOT)/resources/specfiles/_private/RepairTool.desc
|
||||
|
||||
|
||||
include $(makePlatformDefsPath build.tests)
|
||||
|
||||
|
||||
|
||||
@ -16,6 +16,10 @@
|
||||
#include <nn.h>
|
||||
#include <nn/test/test_Test.h>
|
||||
#include <nn/cfg/CTR/cfg_ApiSys.h>
|
||||
#include <nn/fs.h>
|
||||
#include <nn/fs/CTR/fs_ArchiveTypesForSystem.h>
|
||||
#include <nn/fs/CTR/MPCore/fs_FileSystemBasePrivate.h>
|
||||
#include <nn/fs/fs_ApiSysSaveData.h>
|
||||
|
||||
#include "Util.h"
|
||||
|
||||
@ -29,9 +33,11 @@ public:
|
||||
UtilTest() {
|
||||
SUITE_NAME("TestUtil");
|
||||
TEST_ADD(UtilTest::AddCheckDigit);
|
||||
TEST_ADD(UtilTest::GetSaveDataDirectoryRoot);
|
||||
}
|
||||
private:
|
||||
void AddCheckDigit();
|
||||
void GetSaveDataDirectoryRoot();
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------
|
||||
@ -40,6 +46,8 @@ private:
|
||||
|
||||
bool UtilTest::InitializeSuite()
|
||||
{
|
||||
nn::fs::Initialize();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -82,6 +90,82 @@ void UtilTest::AddCheckDigit()
|
||||
}
|
||||
}
|
||||
|
||||
void UtilTest::GetSaveDataDirectoryRoot()
|
||||
{
|
||||
bit8 ivs[512];
|
||||
s64 ivsSize;
|
||||
// 完全性検証SEEDの取得
|
||||
nn::Result result = nn::fs::MountSpecialArchive("nand:", nn::fs::CTR::ARCHIVE_TYPE_CTR_NAND);
|
||||
if (result.IsSuccess())
|
||||
{
|
||||
nn::fs::FileInputStream fis;
|
||||
|
||||
result = fis.TryInitialize(L"nand:/private/movable.sed");
|
||||
if (result.IsSuccess())
|
||||
{
|
||||
ivsSize = fis.GetSize();
|
||||
s32 readSize;
|
||||
result = fis.TryRead(&readSize, ivs, ivsSize);
|
||||
if (result.IsFailure())
|
||||
{
|
||||
nn::dbg::PrintResult(result);
|
||||
NN_TEST_FAIL("Can't Read IVS");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
NN_TEST_FAIL("Can't Initialize File");
|
||||
}
|
||||
fis.Finalize();
|
||||
}
|
||||
else
|
||||
{
|
||||
NN_TEST_FAIL("Can't Mount nand:");
|
||||
}
|
||||
|
||||
wchar_t saveDataRootWStr[nn::fs::MAX_FILE_PATH_LENGTH];
|
||||
nn::fs::Directory dir;
|
||||
result = dir.TryInitialize("nand:/data/");
|
||||
if(result.IsSuccess())
|
||||
{
|
||||
nn::fs::DirectoryEntry entry;
|
||||
s32 num;
|
||||
result = dir.TryRead(&num, &entry, 1);
|
||||
if(result.IsSuccess())
|
||||
{
|
||||
if(num == 1)
|
||||
{
|
||||
std::memset(saveDataRootWStr, 0, sizeof(saveDataRootWStr));
|
||||
std::wcscpy(saveDataRootWStr, entry.entryName);
|
||||
}
|
||||
else
|
||||
{
|
||||
NN_TEST_FAIL("Unknown Directory exists");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
NN_TEST_FAIL("Can't Read nand:/data/");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
NN_TEST_FAIL("Can't Initialize nand:/data/");
|
||||
}
|
||||
|
||||
// 一旦アンマウントしておく
|
||||
nn::fs::Unmount("nand:");
|
||||
|
||||
std::wstring tmp(saveDataRootWStr);
|
||||
char saveDataRootStr[nn::fs::MAX_FILE_PATH_LENGTH];
|
||||
std::wcstombs(saveDataRootStr, tmp.c_str(), tmp.size());
|
||||
|
||||
std::string sysSaveRoot;
|
||||
common::Util::GetSaveDataDirectoryRoot(sysSaveRoot, &ivs, ivsSize);
|
||||
|
||||
NN_TEST_ASSERT_EQUAL(std::strcmp(sysSaveRoot.c_str(), saveDataRootStr), 0);
|
||||
}
|
||||
|
||||
|
||||
NN_TEST_DEFINE_MAIN(UtilTest)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user