-
- ok1(history_num == 7);
-
- for (i = 0; i < history_num; i++)
- history[i].fail = false;
-
- print_reproduce();
- ok1(strcmp(output, "To reproduce: --failpath=cmeoprw\n") == 0);
- free(output);
- output = NULL;
-
- for (i = 0; i < history_num; i++)
- history[i].fail = true;
-
- print_reproduce();
- ok1(strcmp(output, "To reproduce: --failpath=CMEOPRW\n") == 0);
- free(output);
- output = NULL;
+ ok1(call->u.write.opener == write_call.opener);
+
+ mmap_call.ret = &mmap_call;
+ mmap_call.addr = NULL;
+ mmap_call.length = 4096;
+ mmap_call.prot = PROT_READ;
+ mmap_call.flags = 0;
+ mmap_call.fd = open_call.ret;
+ mmap_call.offset = 0;
+ mmap_call.opener = opener_of(open_call.ret);
+ ok1(mmap_call.opener->type == FAILTEST_OPEN);
+ mmap_call.saved = NULL;
+
+ call = add_history(FAILTEST_MMAP, false, "run-history.c", 8,
+ &mmap_call);
+ /* Normally should_fail would set this. */
+ call->fail = false;
+ ok1(call->type == FAILTEST_MMAP);
+ ok1(call->can_leak == false);
+ ok1(strcmp(call->file, "run-history.c") == 0);
+ ok1(call->line == 8);
+ ok1(call->u.mmap.ret == mmap_call.ret);
+ ok1(call->u.mmap.addr == mmap_call.addr);
+ ok1(call->u.mmap.length == mmap_call.length);
+ ok1(call->u.mmap.prot == mmap_call.prot);
+ ok1(call->u.mmap.flags == mmap_call.flags);
+ ok1(call->u.mmap.fd == mmap_call.fd);
+ ok1(call->u.mmap.offset == mmap_call.offset);
+ ok1(call->u.mmap.opener == mmap_call.opener);
+ ok1(call->u.mmap.saved == mmap_call.saved);
+
+ i = 0;
+ tlist_for_each(&history, call, list)
+ i++;
+
+ ok1(i == 8);
+
+ tlist_for_each(&history, call, list)
+ call->fail = false;
+
+ path = failpath_string();
+ ok1(streq(path, "cmeoprwa"));
+ free(path);
+
+ tlist_for_each(&history, call, list)
+ call->fail = true;
+
+ path = failpath_string();
+ ok1(streq(path, "CMEOPRWA"));
+ free(path);