mirror of
git://anongit.mindrot.org/openssh.git
synced 2024-12-18 16:14:34 +00:00
a6f4ac8a2b
Previously we would log to ssh.log and sshd.log, but that is insufficient for tests that have more than one concurent ssh/sshd. Instead, we'll log to separate datestamped files in a $OBJ/log/ and leave a symlink at the previous location pointing at the most recent instance with an entry in regress.log showing which files were created at each point. This should be sufficient to reconstruct what happened even for tests that use multiple instances of each program. If the test fails, tar up all of the logs for later analysis. This will let us also capture the output from some of the other tools which was previously sent to /dev/null although most of those will be in future commits. OpenBSD-Regress-ID: f802aa9e7fa51d1a01225c05fb0412d015c33e24
47 lines
1.4 KiB
C
47 lines
1.4 KiB
C
/*
|
|
* Copyright (c) 2023 Darren Tucker <dtucker@openssh.com>
|
|
*
|
|
* Permission to use, copy, modify, and distribute this software for any
|
|
* purpose with or without fee is hereby granted, provided that the above
|
|
* copyright notice and this permission notice appear in all copies.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
/* $OpenBSD: timestamp.c,v 1.1 2023/03/01 09:29:32 dtucker Exp $ */
|
|
|
|
/*
|
|
* Print a microsecond-granularity timestamp to stdout in an ISO8601-ish
|
|
* format, which we can then use as the first component of the log file
|
|
* so that they'll sort into chronological order.
|
|
*/
|
|
|
|
#include <sys/time.h>
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <time.h>
|
|
|
|
int
|
|
main(void)
|
|
{
|
|
struct timeval tv;
|
|
struct tm *tm;
|
|
char buf[1024];
|
|
|
|
if (gettimeofday(&tv, NULL) != 0)
|
|
exit(1);
|
|
if ((tm = localtime(&tv.tv_sec)) == NULL)
|
|
exit(2);
|
|
if (strftime(buf, sizeof buf, "%Y%m%dT%H%M%S", tm) <= 0)
|
|
exit(3);
|
|
printf("%s.%06d\n", buf, (int)tv.tv_usec);
|
|
exit(0);
|
|
}
|