From 2dba29ebf20e95068872b758a9c16daeb4c74440 Mon Sep 17 00:00:00 2001 From: kwolekr Date: Fri, 8 May 2015 00:05:08 -0400 Subject: Tests: Add schematic unittests Improve schematic file-saving interface Add ability to create temporary test files --- src/unittest/test.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/unittest/test.cpp') diff --git a/src/unittest/test.cpp b/src/unittest/test.cpp index 57843da5e..d0ffb423f 100644 --- a/src/unittest/test.cpp +++ b/src/unittest/test.cpp @@ -276,9 +276,35 @@ bool TestBase::testModule(IGameDef *gamedef) << " failures / " << num_tests_run << " tests) - " << tdiff << "ms" << std::endl; + if (!m_test_dir.empty()) + fs::RecursiveDelete(m_test_dir); + return num_tests_failed == 0; } +std::string TestBase::getTestTempDirectory() +{ + if (!m_test_dir.empty()) + return m_test_dir; + + char buf[32]; + snprintf(buf, sizeof(buf), "%08X", myrand()); + + m_test_dir = fs::TempPath() + DIR_DELIM "mttest_" + buf; + if (!fs::CreateDir(m_test_dir)) + throw TestFailedException(); + + return m_test_dir; +} + +std::string TestBase::getTestTempFile() +{ + char buf[32]; + snprintf(buf, sizeof(buf), "%08X", myrand()); + + return getTestTempDirectory() + DIR_DELIM + buf + ".tmp"; +} + /* NOTE: These tests became non-working then NodeContainer was removed. -- cgit v1.2.3