X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=adns.git;a=blobdiff_plain;f=regress%2Fhrecord.c.m4;h=e5287a0d09a383ece9533a1f3b54bd458b5b8f7c;hp=c3e38e2316f281b9b6dddde778b36fcd2c9e313d;hb=239d2e4dfb6fcfc26fe3f740efae8f6944b99799;hpb=98b6d5b430d4326235c108afcc8a4e4ee36559f4 diff --git a/regress/hrecord.c.m4 b/regress/hrecord.c.m4 index c3e38e2..e5287a0 100644 --- a/regress/hrecord.c.m4 +++ b/regress/hrecord.c.m4 @@ -2,7 +2,12 @@ m4_dnl hrecord.c.m4 m4_dnl (part of complex test harness, not of the library) m4_dnl - recording routines -m4_dnl This file is part of adns, which is Copyright (C) 1997, 1998 Ian Jackson +m4_dnl This file is +m4_dnl Copyright (C) 1997-2000 Ian Jackson +m4_dnl +m4_dnl It is part of adns, which is +m4_dnl Copyright (C) 1997-2000 Ian Jackson +m4_dnl Copyright (C) 1999-2000 Tony Finch m4_dnl m4_dnl This program is free software; you can redistribute it and/or modify m4_dnl it under the terms of the GNU General Public License as published by @@ -22,15 +27,19 @@ m4_include(hmacros.i4) #include #include -#include #include #include +#include +#include +#include + #include "harness.h" static FILE *Toutputfile; -/* fixme: record syscall durations, rather than gettimeofday results */ +void Tshutdown(void) { +} static void R_recordtime(void) { int r; @@ -106,10 +115,23 @@ int H$1(hm_args_massage($3,void)) { if (r==-1) { Tvberrno(e); goto x_error; } Tmust("$1","return",r<=$'`1); Tvba("OK");') + m4_define(`hm_rv_fcntl',` + if (r==-1) { Tvberrno(e); goto x_error; } + if (cmd == F_GETFL) { + Tvbf(r & O_NONBLOCK ? "O_NONBLOCK|..." : "~O_NONBLOCK&..."); + } else { + if (cmd == F_SETFL) { + Tmust("$1","return",!r); + } else { + Tmust("cmd","F_GETFL/F_SETFL",0); + } + Tvba("OK"); + }') $2 hm_create_nothing m4_define(`hm_arg_fdset_io',`Tvba(" $'`1="); Tvbfdset($'`2,$'`1);') + m4_define(`hm_arg_pollfds_io',`Tvba(" $'`1="); Tvbpollfds($'`1,$'`2);') m4_define(`hm_arg_addr_out',`Tvba(" $'`1="); Tvbaddr($'`1,*$'`2);') $3 @@ -121,6 +143,7 @@ int H$1(hm_args_massage($3,void)) { m4_define(`hm_rv_fd',`x_error:') m4_define(`hm_rv_succfail',`x_error:') m4_define(`hm_rv_len',`x_error:') + m4_define(`hm_rv_fcntl',`x_error:') m4_define(`hm_rv_must',`') $2 @@ -131,4 +154,6 @@ int H$1(hm_args_massage($3,void)) { } ') +m4_define(`hm_specsyscall', `') + m4_include(`hsyscalls.i4')