A job must not call assert(), as it wont exit and set thread
state properly.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
#define for_each_file(td, f, i) \
for ((i) = 0, (f) = &(td)->files[0]; (i) < (int) (td)->nr_files; (i)++, (f)++)
#define for_each_file(td, f, i) \
for ((i) = 0, (f) = &(td)->files[0]; (i) < (int) (td)->nr_files; (i)++, (f)++)
+#define fio_assert(td, cond) do { \
+ if (!(cond)) { \
+ fprintf(stderr, "file:%s:%d, assert %s failed\n", __FILE__, __LINE__, #cond); \
+ (td)->runstate = TD_EXITED; \
+ exit(0); \
+ } \
+} while (0)
+
#include <string.h>
#include <signal.h>
#include <time.h>
#include <string.h>
#include <signal.h>
#include <time.h>
#include "fio.h"
#include "os.h"
#include "fio.h"
#include "os.h"
idx = RAND_MAP_IDX(td, f, block);
bit = RAND_MAP_BIT(td, f, block);
idx = RAND_MAP_IDX(td, f, block);
bit = RAND_MAP_BIT(td, f, block);
- assert(idx < f->num_maps);
+ idx = f->num_maps;
+ fio_assert(td, idx < f->num_maps);
f->file_map[idx] |= (1UL << bit);
block++;
f->file_map[idx] |= (1UL << bit);
block++;