summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2016-01-15 16:49:06 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2016-02-29 14:30:14 +0100
commit79599acd663f7c488560d72d63f4e29587fc63a2 (patch)
tree1f1e99928a86f18a0b073da7fb83197c154e97ad /tests
parente0dc6a1c7cd49433bdf592624ff484576a7ce4e4 (diff)
logging: Move the filter check up as well
There doesn't seem to be a reason not to check the filter. Update and extend the test. Currently the filter function will be called once for the log check and once for the output of it.
Diffstat (limited to 'tests')
-rw-r--r--tests/logging/logging_test.c19
-rw-r--r--tests/logging/logging_test.err3
2 files changed, 15 insertions, 7 deletions
diff --git a/tests/logging/logging_test.c b/tests/logging/logging_test.c
index 3c8bac4b..3d1b7d87 100644
--- a/tests/logging/logging_test.c
+++ b/tests/logging/logging_test.c
@@ -30,6 +30,7 @@ enum {
};
static int filter_called = 0;
+static int select_output = 0;
static const struct log_info_cat default_categories[] = {
[DRLL] = {
@@ -56,7 +57,7 @@ static int test_filter(const struct log_context *ctx, struct log_target *target)
{
filter_called += 1;
/* omit everything */
- return 0;
+ return select_output;
}
const struct log_info log_info = {
@@ -77,6 +78,9 @@ int main(int argc, char **argv)
log_parse_category_mask(stderr_target, "DRLL:DCC");
log_parse_category_mask(stderr_target, "DRLL");
+
+ select_output = 0;
+
DEBUGP(DCC, "You should not see this\n");
if (log_check_level(DMM, LOGL_DEBUG) != 0)
fprintf(stderr, "log_check_level did not catch this case\n");
@@ -87,17 +91,20 @@ int main(int argc, char **argv)
DEBUGP(DCC, "You should see this\n");
OSMO_ASSERT(log_check_level(DCC, LOGL_DEBUG) != 0);
DEBUGP(DMM, "You should not see this\n");
- if (log_check_level(DMM, LOGL_DEBUG) != 0)
- fprintf(stderr, "log_check_level did not catch this case\n");
+ OSMO_ASSERT(log_check_level(DMM, LOGL_DEBUG) == 0);
OSMO_ASSERT(filter_called == 0);
log_set_all_filter(stderr_target, 0);
DEBUGP(DRLL, "You should not see this and filter is called\n");
OSMO_ASSERT(filter_called == 1);
- if (log_check_level(DRLL, LOGL_DEBUG) != 0)
- fprintf(stderr,
- "log_check_level did not catch this case (filter)\n");
+ OSMO_ASSERT(log_check_level(DRLL, LOGL_DEBUG) == 0);
+ OSMO_ASSERT(filter_called == 2);
+ DEBUGP(DRLL, "You should not see this\n");
+ OSMO_ASSERT(filter_called == 3);
+ select_output = 1;
+ DEBUGP(DRLL, "You should see this\n");
+ OSMO_ASSERT(filter_called == 5); /* called twice on output */
return 0;
}
diff --git a/tests/logging/logging_test.err b/tests/logging/logging_test.err
index c3b67cc2..4891491b 100644
--- a/tests/logging/logging_test.err
+++ b/tests/logging/logging_test.err
@@ -1,3 +1,4 @@
You should see this
You should see this
-log_check_level did not catch this case (filter)
+You should see this
+ \ No newline at end of file