Fix Windows/Darwin build error in DebugIR unit tests

- mistakenly used get_current_dir() linux function
- replaced with getcwd/_getcwd as appropriate for current platform

llvm-svn: 185225
This commit is contained in:
Daniel Malea 2013-06-28 21:49:53 +00:00
parent 1f9db3ebe3
commit 7291340c24
1 changed files with 19 additions and 9 deletions

View File

@ -32,6 +32,14 @@
#include "gtest/gtest.h"
#if defined(LLVM_ON_WIN32)
#include <direct.h>
#define getcwd_impl _getcwd
#elif defined (HAVE_GETCWD)
#include <unistd.h>
#define getcwd_impl getcwd
#endif // LLVM_ON_WIN32
using namespace llvm;
using namespace std;
@ -53,19 +61,21 @@ bool removeIfExists(StringRef Path) {
return existed;
}
char * current_dir() {
#if defined(LLVM_ON_WIN32) || defined(HAVE_GETCWD)
// calling getcwd (or _getcwd() on windows) with a null buffer makes it
// allocate a sufficiently sized buffer to store the current working dir.
return getcwd_impl(0, 0);
#else
return 0;
#endif
}
class TestDebugIR : public ::testing::Test, public TrivialModuleBuilder {
protected:
TestDebugIR()
: TrivialModuleBuilder(sys::getProcessTriple())
#ifdef HAVE_GETCWD
,
cwd(get_current_dir_name())
#else
,
cwd(0)
#endif
{
}
, cwd(current_dir()) {}
~TestDebugIR() { free(cwd); }