From 43b4528552dc7b2a04abd31f88e1e83a726fc98b Mon Sep 17 00:00:00 2001 From: Cameron Cawley Date: Mon, 1 Jul 2019 18:51:14 +0100 Subject: TESTBED: Add createDirectory() test in FStests --- engines/testbed/fs.cpp | 30 ++++++++++++++++++++++++++++++ engines/testbed/fs.h | 1 + 2 files changed, 31 insertions(+) (limited to 'engines/testbed') diff --git a/engines/testbed/fs.cpp b/engines/testbed/fs.cpp index 07b1c0f2af..012581a576 100644 --- a/engines/testbed/fs.cpp +++ b/engines/testbed/fs.cpp @@ -172,6 +172,35 @@ TestExitStatus FStests::testWriteFile() { } +/** + * This test creates a directory testbed.dir, and confirms if the directory is created successfully + */ +TestExitStatus FStests::testCreateDir() { + const Common::String &path = ConfMan.get("path"); + Common::FSNode gameRoot(path); + if (!gameRoot.exists()) { + Testsuite::logPrintf("Couldn't open the game data directory %s", path.c_str()); + return kTestFailed; + } + + Common::FSNode dirToCreate = gameRoot.getChild("testbed.dir"); + + // TODO: Delete the directory after creating it + if (dirToCreate.exists()) { + Testsuite::logDetailedPrintf("Directory already exists in game data dir\n"); + return kTestSkipped; + } + + if (!dirToCreate.createDirectory()) { + Testsuite::logDetailedPrintf("Can't create directory in game data dir\n"); + return kTestFailed; + } + + Testsuite::logDetailedPrintf("Directory created successfully\n"); + return kTestPassed; +} + + FSTestSuite::FSTestSuite() { // FS tests depend on Game Data files. @@ -187,6 +216,7 @@ FSTestSuite::FSTestSuite() { } addTest("ReadingFile", &FStests::testReadFile, false); addTest("WritingFile", &FStests::testWriteFile, false); + addTest("CreateDir", &FStests::testCreateDir, false); } void FSTestSuite::enable(bool flag) { diff --git a/engines/testbed/fs.h b/engines/testbed/fs.h index 966f138d71..690e601dfb 100644 --- a/engines/testbed/fs.h +++ b/engines/testbed/fs.h @@ -41,6 +41,7 @@ bool readDataFromFile(Common::FSDirectory *directory, const char *file); // will contain function declarations for FS tests TestExitStatus testReadFile(); TestExitStatus testWriteFile(); +TestExitStatus testCreateDir(); TestExitStatus testOpeningSaveFile(); // add more here -- cgit v1.2.3