chiark / gitweb /
+ * regress/output-<case>.report file contains more useful info.
[adns.git] / regress / hplayback.c.m4
index 97e951a33665878636c51beb902d2bd1be2c77a8..bb36528a484a4bda4179ef1be368b8ea40b1a5ea 100644 (file)
@@ -3,10 +3,10 @@ m4_dnl (part of complex test harness, not of the library)
 m4_dnl - playback routines
 
 m4_dnl  This file is
-m4_dnl    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
+m4_dnl    Copyright (C) 1997-2000 Ian Jackson <ian@davenant.greenend.org.uk>
 m4_dnl
 m4_dnl  It is part of adns, which is
-m4_dnl    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
+m4_dnl    Copyright (C) 1997-2000 Ian Jackson <ian@davenant.greenend.org.uk>
 m4_dnl    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 m4_dnl  
 m4_dnl  This program is free software; you can redistribute it and/or modify
@@ -78,6 +78,7 @@ static void Tensureinputfile(void) {
     fd= atoi(fdstr);
     Tinputfile= fdopen(fd,"r"); if (!Tinputfile) Tfailed("fdopen ADNS_TEST_IN_FD");
   }
+  setvbuf(Tinputfile,0,_IONBF,0);
 
   if (!adns__vbuf_ensure(&vb2,1000)) Tnomem();
   fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput();
@@ -252,6 +253,7 @@ static int Pbytes(byte *buf, int maxlen) {
   
 void Q_vb(void) {
   int r;
+  const char *nl;
 
   Tensureinputfile();
   if (!adns__vbuf_ensure(&vb2,vb.used+2)) Tnomem();
@@ -271,6 +273,9 @@ void Q_vb(void) {
             vb.used,vb.buf, vb.used,vb2.buf+1);
     exit(1);
   }
+  Tensurereportfile();
+  nl= memchr(vb.buf,'\n',vb.used);
+  fprintf(Treportfile," %.*s\n", (int)(nl ? nl - (const char*)vb.buf : vb.used), vb.buf);
 }
 
 m4_define(`hm_syscall', `
@@ -299,7 +304,7 @@ int H$1(hm_args_massage($3,void)) {
  fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput();
 
  Tensurereportfile();
- fprintf(Treportfile,"syscallr %s",vb2.buf);
+ fprintf(Treportfile,"%s",vb2.buf);
  amtread= strlen(vb2.buf);
  if (amtread<=0 || vb2.buf[--amtread]!=hm_squote\nhm_squote)
   Psyntax("badly formed line");