From 23dd0ae63fa4d8859478c5d3b17462bbf315f22a Mon Sep 17 00:00:00 2001 From: N2614 Date: Mon, 25 Apr 2011 11:17:42 +0000 Subject: [PATCH] =?UTF-8?q?Util.cpp=E3=81=AE=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../sources/tests/OMakefile | 4 + .../sources/tests/test_Util.cpp | 84 +++++++++++++++++++ 2 files changed, 88 insertions(+) diff --git a/trunk/ConsoleDataMigration/sources/tests/OMakefile b/trunk/ConsoleDataMigration/sources/tests/OMakefile index 33d8857..ead82d1 100644 --- a/trunk/ConsoleDataMigration/sources/tests/OMakefile +++ b/trunk/ConsoleDataMigration/sources/tests/OMakefile @@ -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) diff --git a/trunk/ConsoleDataMigration/sources/tests/test_Util.cpp b/trunk/ConsoleDataMigration/sources/tests/test_Util.cpp index 6905c52..0a05490 100644 --- a/trunk/ConsoleDataMigration/sources/tests/test_Util.cpp +++ b/trunk/ConsoleDataMigration/sources/tests/test_Util.cpp @@ -16,6 +16,10 @@ #include #include #include +#include +#include +#include +#include #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)