]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Output timestamps in yaml to the microsecond if -u is specified.
authorMark Andrews <marka@isc.org>
Tue, 29 Sep 2020 04:59:40 +0000 (14:59 +1000)
committerMark Andrews <marka@isc.org>
Wed, 30 Sep 2020 13:56:18 +0000 (23:56 +1000)
bin/dig/dig.c
bin/tests/system/digdelv/tests.sh

index 62151cede0b690ad6e3a4cb7aab9d58f73ed877a..c3bc7d1c628346324f45c2723b5337079a4dfda2 100644 (file)
@@ -675,15 +675,25 @@ printmessage(dig_query_t *query, const isc_buffer_t *msgbuf, dns_message_t *msg,
 
                if (!isc_time_isepoch(&query->time_sent)) {
                        char tbuf[100];
-                       isc_time_formatISO8601ms(&query->time_sent, tbuf,
-                                                sizeof(tbuf));
+                       if (query->lookup->use_usec) {
+                               isc_time_formatISO8601us(&query->time_sent,
+                                                        tbuf, sizeof(tbuf));
+                       } else {
+                               isc_time_formatISO8601ms(&query->time_sent,
+                                                        tbuf, sizeof(tbuf));
+                       }
                        printf("    query_time: !!timestamp %s\n", tbuf);
                }
 
                if (!isquery && !isc_time_isepoch(&query->time_recv)) {
                        char tbuf[100];
-                       isc_time_formatISO8601ms(&query->time_recv, tbuf,
-                                                sizeof(tbuf));
+                       if (query->lookup->use_usec) {
+                               isc_time_formatISO8601us(&query->time_recv,
+                                                        tbuf, sizeof(tbuf));
+                       } else {
+                               isc_time_formatISO8601ms(&query->time_recv,
+                                                        tbuf, sizeof(tbuf));
+                       }
                        printf("    response_time: !!timestamp %s\n", tbuf);
                }
 
index 18b8252096d2b82e72747b9fe6469dde7dc721e1..ebe77a950808b5b5d59a0b9b294788d1d0a33cb4 100644 (file)
@@ -963,6 +963,40 @@ if [ -x "$DIG" ] ; then
   if [ $ret -ne 0 ]; then echo_i "failed"; fi
   status=$((status+ret))
 
+  n=$((n+1))
+  echo_i "check that dig without -u displays 'Query time' in millseconds ($n)"
+  ret=0
+  dig_with_opts @10.53.0.3 a.example > dig.out.test$n 2>&1 || ret=1
+  grep ';; Query time: [0-9][0-9]* msec' dig.out.test$n >/dev/null || ret=1
+  if [ $ret -ne 0 ]; then echo_i "failed"; fi
+  status=$((status+ret))
+
+  n=$((n+1))
+  echo_i "check that dig -u displays 'Query time' in microseconds ($n)"
+  ret=0
+  dig_with_opts -u @10.53.0.3 a.example > dig.out.test$n 2>&1 || ret=1
+  grep ';; Query time: [0-9][0-9]* usec' dig.out.test$n >/dev/null || ret=1
+  if [ $ret -ne 0 ]; then echo_i "failed"; fi
+  status=$((status+ret))
+
+  n=$((n+1))
+  echo_i "check that dig +yaml without -u displays timestamps in milliseconds ($n)"
+  ret=0
+  dig_with_opts +yaml @10.53.0.3 a.example > dig.out.test$n 2>&1 || ret=1
+  grep 'query_time: !!timestamp ....-..-..T..:..:..\....Z' dig.out.test$n >/dev/null || ret=1
+  grep 'response_time: !!timestamp ....-..-..T..:..:..\....Z' dig.out.test$n >/dev/null || ret=1
+  if [ $ret -ne 0 ]; then echo_i "failed"; fi
+  status=$((status+ret))
+
+  n=$((n+1))
+  echo_i "check that dig -u +yaml displays timestamps in microseconds ($n)"
+  ret=0
+  dig_with_opts -u +yaml @10.53.0.3 a.example > dig.out.test$n 2>&1 || ret=1
+  grep 'query_time: !!timestamp ....-..-..T..:..:..\.......Z' dig.out.test$n >/dev/null || ret=1
+  grep 'response_time: !!timestamp ....-..-..T..:..:..\.......Z' dig.out.test$n >/dev/null || ret=1
+  if [ $ret -ne 0 ]; then echo_i "failed"; fi
+  status=$((status+ret))
+
 else
   echo_i "$DIG is needed, so skipping these dig tests"
 fi