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:
N2614 2011-04-25 11:17:42 +00:00
parent b5dafc263c
commit 23dd0ae63f
2 changed files with 88 additions and 0 deletions

View File

@ -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)

View File

@ -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)