summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/test/utility/misc.c
diff options
context:
space:
mode:
authorAlex Gorrod <alexander.gorrod@mongodb.com>2017-04-01 07:14:43 +1100
committerAlex Gorrod <alexander.gorrod@mongodb.com>2017-04-01 07:25:11 +1100
commitf6cbdfb8c5c52209f58562ccbe14013c72df3f40 (patch)
tree850ab25ff8e499689bd40ccdad284e629fafec7e /src/third_party/wiredtiger/test/utility/misc.c
parent08d29c36403608802c45375277f88c7fcaf708e0 (diff)
downloadmongo-f6cbdfb8c5c52209f58562ccbe14013c72df3f40.tar.gz
Import wiredtiger: af735d14a603a6ef6256a6685f09ec13755a5024 from branch mongodb-3.6
ref: cc2f15f595..af735d14a6 for: 3.5.6 SERVER-28168 Cannot start or repair mongodb after unexpected shutdown. SERVER-28194 Missing WiredTiger.turtle file loses data WT-2439 Enhance reconciliation page layout WT-2978 Make WiredTiger python binding pip-compatible WT-2990 Fix a new bug where checkpoint load live_open failed WT-3136 bug fix: WiredTiger doesn't check sprintf calls for error return WT-3155 Remove WT_CONN_SERVER_RUN flag WT-3182 Switch make-check to run the short test suite by default WT-3190 Enhance eviction thread auto-tuning algorithm WT-3191 Fix lint complaints WT-3193 Close a race between verify opening a handle and eviction visiting it WT-3196 Race with LSM and eviction when switching chunks WT-3199 bug: eviction assertion failure WT-3202 wtperf report an error on in_memory=true mode : No such file or directory WT-3203 bulk-load state changes can race WT-3204 eviction changes cost LSM performance WT-3206 bug: core dump on NULL page index WT-3207 Drops with checkpoint_wait=false should not wait for checkpoints WT-3208 test format hung with 9mb cache WT-3211 WT_CURSOR.remove cannot always retain its position. WT-3212 'wt dump' crashes when given table with unknown collator WT-3213 generated test/format CONFIG invalid on next run WT-3216 add support for clang-tidy WT-3218 unexpected checkpoint ordering failures WT-3224 LSM assertion failure pindex->entries == 1 WT-3225 WiredTiger won't build with clang on CentOS 7.3.1611 WT-3227 Python test suite inserts unnecessary whitespace in error output. WT-3228 Remove with overwrite shouldn't return WT_NOTFOUND WT-3234 Update WiredTiger build for clang 4.0. WT-3238 Java: Cursor.compare and Cursor.equals throw Exceptions for valid return values WT-3240 Coverity reports WT-3243 Reorder log slot release so joins don't wait on IO WT-3244 Metadata operations failing in in-memory configurations when the cache is full WT-98 Update the current cursor value without a search
Diffstat (limited to 'src/third_party/wiredtiger/test/utility/misc.c')
-rw-r--r--src/third_party/wiredtiger/test/utility/misc.c40
1 files changed, 31 insertions, 9 deletions
diff --git a/src/third_party/wiredtiger/test/utility/misc.c b/src/third_party/wiredtiger/test/utility/misc.c
index 1ba08ddd77f..934dac86a7b 100644
--- a/src/third_party/wiredtiger/test/utility/misc.c
+++ b/src/third_party/wiredtiger/test/utility/misc.c
@@ -28,6 +28,7 @@
#include "test_util.h"
void (*custom_die)(void) = NULL;
+const char *progname = "program name not set";
/*
* die --
@@ -42,7 +43,9 @@ testutil_die(int e, const char *fmt, ...)
if (custom_die != NULL)
(*custom_die)();
+ fprintf(stderr, "%s: FAILED", progname);
if (fmt != NULL) {
+ fprintf(stderr, ": ");
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
va_end(ap);
@@ -55,6 +58,20 @@ testutil_die(int e, const char *fmt, ...)
}
/*
+ * testutil_set_progname --
+ * Set the global program name for error handling.
+ */
+const char *
+testutil_set_progname(char * const *argv)
+{
+ if ((progname = strrchr(argv[0], DIR_DELIM)) == NULL)
+ progname = argv[0];
+ else
+ ++progname;
+ return (progname);
+}
+
+/*
* testutil_work_dir_from_path --
* Takes a buffer, its size and the intended work directory.
* Creates the full intended work directory in buffer.
@@ -91,14 +108,14 @@ testutil_clean_work_dir(const char *dir)
if ((buf = malloc(len)) == NULL)
testutil_die(ENOMEM, "Failed to allocate memory");
- snprintf(buf, len, "%s %s %s %s", DIR_EXISTS_COMMAND, dir,
- RM_COMMAND, dir);
+ testutil_check(__wt_snprintf(
+ buf, len, "%s %s %s %s", DIR_EXISTS_COMMAND, dir, RM_COMMAND, dir));
#else
len = strlen(dir) + strlen(RM_COMMAND) + 1;
if ((buf = malloc(len)) == NULL)
testutil_die(ENOMEM, "Failed to allocate memory");
- snprintf(buf, len, "%s%s", RM_COMMAND, dir);
+ testutil_check(__wt_snprintf(buf, len, "%s%s", RM_COMMAND, dir));
#endif
if ((ret = system(buf)) != 0 && ret != ENOENT)
@@ -125,7 +142,7 @@ testutil_make_work_dir(char *dir)
testutil_die(ENOMEM, "Failed to allocate memory");
/* mkdir shares syntax between Windows and Linux */
- snprintf(buf, len, "%s%s", MKDIR_COMMAND, dir);
+ testutil_check(__wt_snprintf(buf, len, "%s%s", MKDIR_COMMAND, dir));
if ((ret = system(buf)) != 0)
testutil_die(ret, "%s", buf);
free(buf);
@@ -149,20 +166,25 @@ testutil_cleanup(TEST_OPTS *opts)
}
/*
- * testutil_disable_long_tests --
- * Return if TESTUTIL_DISABLE_LONG_TESTS is set.
+ * testutil_enable_long_tests --
+ * Return if TESTUTIL_ENABLE_LONG_TESTS is set.
*/
bool
-testutil_disable_long_tests(void)
+testutil_enable_long_tests(void)
{
const char *res;
+ bool enable_long_tests;
if (__wt_getenv(NULL,
- "TESTUTIL_DISABLE_LONG_TESTS", &res) == WT_NOTFOUND)
+ "TESTUTIL_ENABLE_LONG_TESTS", &res) == WT_NOTFOUND)
return (false);
+ /* Accept anything other than "TESTUTIL_ENABLE_LONG_TESTS=0". */
+ enable_long_tests = res[0] != '0';
+
free((void *)res);
- return (true);
+
+ return (enable_long_tests);
}
/*