diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-05-17 01:02:36 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-05-17 01:38:56 +0300 |
commit | 61c92f38a7b9a5b30149bf5ae0cc106abc0482dc (patch) | |
tree | c2defab6c6152757ef99013ea226301834a73841 /src | |
parent | ddf7d9970244385eaba19f60c76deeab3f507c29 (diff) | |
download | mv-61c92f38a7b9a5b30149bf5ae0cc106abc0482dc.tar.gz mv-61c92f38a7b9a5b30149bf5ae0cc106abc0482dc.tar.bz2 mv-61c92f38a7b9a5b30149bf5ae0cc106abc0482dc.tar.xz mv-61c92f38a7b9a5b30149bf5ae0cc106abc0482dc.zip |
Fix invoking tests.
Remove shell script for tests.
Diffstat (limited to 'src')
-rw-r--r-- | src/test/testmain.cpp | 3 | ||||
-rw-r--r-- | src/utils/paths.cpp | 50 | ||||
-rw-r--r-- | src/utils/paths.h | 2 |
3 files changed, 54 insertions, 1 deletions
diff --git a/src/test/testmain.cpp b/src/test/testmain.cpp index f5bdc5711..eb24a2c75 100644 --- a/src/test/testmain.cpp +++ b/src/test/testmain.cpp @@ -29,6 +29,7 @@ #include "utils/gettext.h" #include "utils/mkdir.h" #include "utils/stringutils.h" +#include "utils/paths.h" #include "utils/process.h" #include <iostream> @@ -43,7 +44,7 @@ TestMain::TestMain() #ifdef WIN32 fileName = "manaplus.exe"; #else - fileName = selfName; + fileName = getSelfName(); #endif log = new Logger; diff --git a/src/utils/paths.cpp b/src/utils/paths.cpp index 04f553ca9..306955cb3 100644 --- a/src/utils/paths.cpp +++ b/src/utils/paths.cpp @@ -75,3 +75,53 @@ std::string &fixDirSeparators(std::string &str) return replaceAll(str, "/", "\\"); } + +std::string removeLast(std::string str) +{ + size_t pos2 = str.rfind("/"); + size_t pos3 = str.rfind("\\"); + if (pos3 != std::string::npos) + { + if (pos2 == std::string::npos || pos3 > pos2) + pos2 = pos3; + } + if (pos2 == std::string::npos) + pos2 = -1; + if (pos2 >= 0) + return str.substr(0, pos2); + else + return str; +} + +#ifdef WIN32 +std::string getSelfName() +{ + // GetModuleFileName(nullptr) + return ""; +} + +#elif defined(__APPLE__) +std::string getSelfName() +{ + return ""; +} + +#elif defined __linux__ || defined __linux +#include <unistd.h> + +std::string getSelfName() +{ + char buf[257]; + int sz = readlink("/proc/self/exe", buf, 256); + if (sz > 0 && sz < 256) + { + buf[sz] = 0; + return buf; + } + else + { + return ""; + } +} + +#endif diff --git a/src/utils/paths.h b/src/utils/paths.h index b89671adc..18fa4629e 100644 --- a/src/utils/paths.h +++ b/src/utils/paths.h @@ -31,4 +31,6 @@ bool checkPath(std::string path); std::string &fixDirSeparators(std::string &str); +std::string getSelfName(); + #endif // UTILS_PATHS_H |