diff --git a/test/testfilelister.cpp b/test/testfilelister.cpp index 46774f28e..9b10f08e0 100644 --- a/test/testfilelister.cpp +++ b/test/testfilelister.cpp @@ -21,9 +21,11 @@ #include #ifndef _WIN32 +#include #include #include #include +#include #endif class TestFileLister: public TestFixture { @@ -55,11 +57,18 @@ private: #ifndef _WIN32 void absolutePath() { - char current_dir[PATH_MAX]; - getcwd(current_dir, sizeof(current_dir)); + std::vector current_dir; +#ifdef PATH_MAX + current_dir.resize(PATH_MAX); +#else + current_dir.resize(1024); +#endif + while (getcwd(¤t_dir[0], current_dir.size()) == NULL && errno == ERANGE) { + current_dir.resize(current_dir.size() + 1024); + } std::string absolute_path = FileLister::getAbsolutePath("."); - ASSERT_EQUALS(current_dir, absolute_path); + ASSERT_EQUALS(¤t_dir[0], absolute_path); } #endif