]> git.proxmox.com Git - libgit2.git/blob - tests/libgit2/trace/trace.c
New upstream version 1.5.0+ds
[libgit2.git] / tests / libgit2 / trace / trace.c
1 #include "clar_libgit2.h"
2 #include "clar_libgit2_trace.h"
3 #include "trace.h"
4
5 static int written = 0;
6
7 static void trace_callback(git_trace_level_t level, const char *message)
8 {
9 GIT_UNUSED(level);
10
11 cl_assert(strcmp(message, "Hello world!") == 0);
12
13 written = 1;
14 }
15
16 void test_trace_trace__initialize(void)
17 {
18 /* If global tracing is enabled, disable for the duration of this test. */
19 cl_global_trace_disable();
20
21 git_trace_set(GIT_TRACE_INFO, trace_callback);
22 written = 0;
23 }
24
25 void test_trace_trace__cleanup(void)
26 {
27 git_trace_set(GIT_TRACE_NONE, NULL);
28
29 /* If global tracing was enabled, restart it. */
30 cl_global_trace_register();
31 }
32
33 void test_trace_trace__sets(void)
34 {
35 #ifdef GIT_TRACE
36 cl_assert(git_trace_level() == GIT_TRACE_INFO);
37 #else
38 cl_skip();
39 #endif
40 }
41
42 void test_trace_trace__can_reset(void)
43 {
44 #ifdef GIT_TRACE
45 cl_assert(git_trace_level() == GIT_TRACE_INFO);
46 cl_git_pass(git_trace_set(GIT_TRACE_ERROR, trace_callback));
47
48 cl_assert(written == 0);
49 git_trace(GIT_TRACE_INFO, "Hello %s!", "world");
50 cl_assert(written == 0);
51
52 git_trace(GIT_TRACE_ERROR, "Hello %s!", "world");
53 cl_assert(written == 1);
54 #else
55 cl_skip();
56 #endif
57 }
58
59 void test_trace_trace__can_unset(void)
60 {
61 #ifdef GIT_TRACE
62 cl_assert(git_trace_level() == GIT_TRACE_INFO);
63 cl_git_pass(git_trace_set(GIT_TRACE_NONE, NULL));
64
65 cl_assert(git_trace_level() == GIT_TRACE_NONE);
66
67 cl_assert(written == 0);
68 git_trace(GIT_TRACE_FATAL, "Hello %s!", "world");
69 cl_assert(written == 0);
70 #else
71 cl_skip();
72 #endif
73 }
74
75 void test_trace_trace__skips_higher_level(void)
76 {
77 #ifdef GIT_TRACE
78 cl_assert(written == 0);
79 git_trace(GIT_TRACE_DEBUG, "Hello %s!", "world");
80 cl_assert(written == 0);
81 #else
82 cl_skip();
83 #endif
84 }
85
86 void test_trace_trace__writes(void)
87 {
88 #ifdef GIT_TRACE
89 cl_assert(written == 0);
90 git_trace(GIT_TRACE_INFO, "Hello %s!", "world");
91 cl_assert(written == 1);
92 #else
93 cl_skip();
94 #endif
95 }
96
97 void test_trace_trace__writes_lower_level(void)
98 {
99 #ifdef GIT_TRACE
100 cl_assert(written == 0);
101 git_trace(GIT_TRACE_ERROR, "Hello %s!", "world");
102 cl_assert(written == 1);
103 #else
104 cl_skip();
105 #endif
106 }