]> granicus.if.org Git - git/commitdiff
trace: disable additional trace output for unit tests
authorKarsten Blees <karsten.blees@gmail.com>
Sat, 12 Jul 2014 00:03:01 +0000 (02:03 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 14 Jul 2014 04:25:19 +0000 (21:25 -0700)
Some unit-tests use trace output to verify internal state, and unstable
output such as timestamps and line numbers are not useful there.

Disable additional trace output if GIT_TRACE_BARE is set.

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/test-lib.sh
trace.c

index 81394c8c7c859b1a46a765c05020e74bf0e2808e..e37da5a22049cda4c957698648e7eff8b924cb10 100644 (file)
@@ -109,6 +109,10 @@ export GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME
 export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME
 export EDITOR
 
+# Tests using GIT_TRACE typically don't want <timestamp> <file>:<line> output
+GIT_TRACE_BARE=1
+export GIT_TRACE_BARE
+
 if test -n "${TEST_GIT_INDEX_VERSION:+isset}"
 then
        GIT_INDEX_VERSION="$TEST_GIT_INDEX_VERSION"
diff --git a/trace.c b/trace.c
index 3d02bcc2393ae58e3af23c7566555ad04208ea49..a194b16000516edd5de7c8ff36f2969a7ef20820 100644 (file)
--- a/trace.c
+++ b/trace.c
@@ -87,11 +87,17 @@ static const char err_msg[] = "Could not trace into fd given by "
 
 static int prepare_trace_line(struct trace_key *key, struct strbuf *buf)
 {
+       static struct trace_key trace_bare = TRACE_KEY_INIT(BARE);
+
        if (!trace_want(key))
                return 0;
 
        set_try_to_free_routine(NULL);  /* is never reset */
 
+       /* unit tests may want to disable additional trace output */
+       if (trace_want(&trace_bare))
+               return 1;
+
        /* add line prefix here */
 
        return 1;