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
|
LIBS += libnn_test
|
||||||
|
|
||||||
|
ROM_SPEC_FILE = ../ConsoleRestore/ConsoleRestore.rsf
|
||||||
|
DESCRIPTOR = $(HORIZON_ROOT)/resources/specfiles/_private/RepairTool.desc
|
||||||
|
|
||||||
|
|
||||||
include $(makePlatformDefsPath build.tests)
|
include $(makePlatformDefsPath build.tests)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -16,6 +16,10 @@
|
|||||||
#include <nn.h>
|
#include <nn.h>
|
||||||
#include <nn/test/test_Test.h>
|
#include <nn/test/test_Test.h>
|
||||||
#include <nn/cfg/CTR/cfg_ApiSys.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"
|
#include "Util.h"
|
||||||
|
|
||||||
@ -29,9 +33,11 @@ public:
|
|||||||
UtilTest() {
|
UtilTest() {
|
||||||
SUITE_NAME("TestUtil");
|
SUITE_NAME("TestUtil");
|
||||||
TEST_ADD(UtilTest::AddCheckDigit);
|
TEST_ADD(UtilTest::AddCheckDigit);
|
||||||
|
TEST_ADD(UtilTest::GetSaveDataDirectoryRoot);
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
void AddCheckDigit();
|
void AddCheckDigit();
|
||||||
|
void GetSaveDataDirectoryRoot();
|
||||||
};
|
};
|
||||||
|
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
@ -40,6 +46,8 @@ private:
|
|||||||
|
|
||||||
bool UtilTest::InitializeSuite()
|
bool UtilTest::InitializeSuite()
|
||||||
{
|
{
|
||||||
|
nn::fs::Initialize();
|
||||||
|
|
||||||
return true;
|
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)
|
NN_TEST_DEFINE_MAIN(UtilTest)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user