X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;ds=sidebyside;f=test.c;h=4a1bf16e3bff39ca60ac67472b3c4e0c8f9f0cd5;hb=7271cf87721ab667a03f50bd40b4a8ec83b989d3;hp=81244f90027819f5a456027c390f5a48ecd5a1ac;hpb=5bad36c4252858693b5cfe59a94540ccd2b0be42;p=utcp diff --git a/test.c b/test.c index 81244f9..4a1bf16 100644 --- a/test.c +++ b/test.c @@ -30,6 +30,7 @@ double dropin; double dropout; long total_out; long total_in; +FILE *reference; char *reorder_data; size_t reorder_len; @@ -60,6 +61,17 @@ ssize_t do_recv(struct utcp_connection *c, const void *data, size_t len) { } return -1; } + if(reference) { + char buf[len]; + if(fread(buf, len, 1, reference) != 1) { + debug("Error reading reference\n"); + abort(); + } + if(memcmp(buf, data, len)) { + debug("Received data differs from reference\n"); + abort(); + } + } return write(1, data, len); } @@ -123,6 +135,10 @@ int main(int argc, char *argv[]) { if(getenv("REORDER")) reorder = atof(getenv("REORDER")); if(getenv("REORDER_DIST")) reorder_dist = atoi(getenv("REORDER_DIST")); + char *reference_filename = getenv("REFERENCE"); + if(reference_filename) + reference = fopen(reference_filename, "r"); + if(dropto < dropfrom) dropto = 1 << 30;