summaryrefslogtreecommitdiff
path: root/test/utility
diff options
context:
space:
mode:
authorDavid Hows <howsdav@gmail.com>2015-05-12 11:00:15 +1000
committerDavid Hows <howsdav@gmail.com>2015-05-12 11:00:15 +1000
commit65fecfa37478de0f8f878dd3c3d1369208b41f3e (patch)
tree51dcdb6089b21aee5904ed6852d349c253d3a528 /test/utility
parent83a3590886489e1092f533a8c7a025302bb05bf0 (diff)
downloadmongo-65fecfa37478de0f8f878dd3c3d1369208b41f3e.tar.gz
Make cleanup check before deleting
Diffstat (limited to 'test/utility')
-rw-r--r--test/utility/test_util.i10
1 files changed, 8 insertions, 2 deletions
diff --git a/test/utility/test_util.i b/test/utility/test_util.i
index c6970bec790..8b114adb991 100644
--- a/test/utility/test_util.i
+++ b/test/utility/test_util.i
@@ -28,6 +28,8 @@
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
#include <wiredtiger.h>
#ifdef _WIN32
@@ -101,6 +103,7 @@ testutil_clean_work_dir(char *dir)
size_t inputSize;
int ret;
char *buffer;
+ struct stat info;
/* Additional bytes for the Windows rd command. */
inputSize = strlen(dir) + sizeof(RM_COMMAND);
@@ -108,8 +111,11 @@ testutil_clean_work_dir(char *dir)
testutil_die(ENOMEM, "Failed to allocate memory");
snprintf(buffer, inputSize, "%s%s", RM_COMMAND, dir);
- if ((ret = system(buffer)) != 0)
- testutil_die(ret, "System call to remove directory failed");
+
+ if( stat( dir, &info ) == 0 )
+ if ((ret = system(buffer)) != 0)
+ testutil_die(ret,
+ "System call to remove directory failed");
free(buffer);
}