Gitweb links:
...log
http://git.netsurf-browser.org/libnslog.git/shortlog/52b4fc79a0bcf394e7623fd90bb962c0141465a4
...commit
http://git.netsurf-browser.org/libnslog.git/commit/52b4fc79a0bcf394e7623fd90bb962c0141465a4
...tree
http://git.netsurf-browser.org/libnslog.git/tree/52b4fc79a0bcf394e7623fd90bb962c0141465a4
The branch, master has been updated
via 52b4fc79a0bcf394e7623fd90bb962c0141465a4 (commit)
via 5df22ee4b195b746ce03876146e3f6decaae5ee2 (commit)
from 4a6469480731b87cb14363abad798dbc941b1953 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/libnslog.git/commit/?id=52b4fc79a0bcf394e7623fd90bb962c0141465a4
commit 52b4fc79a0bcf394e7623fd90bb962c0141465a4
Author: Michael Drake <[email protected]>
Commit: Michael Drake <[email protected]>
test: Use substring match for funcname checks
diff --git a/test/basictests.c b/test/basictests.c
index b521aae..f3adb12 100644
--- a/test/basictests.c
+++ b/test/basictests.c
@@ -83,7 +83,7 @@ START_TEST (test_nslog_trivial_corked_message)
"Captured message wasn't correct");
ck_assert_msg(strcmp(captured_context.filename, "test/basictests.c") ==
0,
"Captured message wasn't correct filename");
- ck_assert_msg(strcmp(captured_context.funcname, __func__) == 0,
+ ck_assert_msg(strstr(captured_context.funcname, __func__) != NULL,
"Captured message wasn't correct function name");
}
END_TEST
@@ -109,7 +109,7 @@ START_TEST (test_nslog_trivial_uncorked_message)
"Captured message wasn't correct");
ck_assert_msg(strcmp(captured_context.filename, "test/basictests.c") ==
0,
"Captured message wasn't correct filename");
- ck_assert_msg(strcmp(captured_context.funcname, __func__) == 0,
+ ck_assert_msg(strstr(captured_context.funcname, __func__) != NULL,
"Captured message wasn't correct function name");
}
END_TEST
@@ -150,7 +150,7 @@ START_TEST (test_nslog_two_corked_messages)
"Captured message wasn't correct");
ck_assert_msg(strcmp(captured_context.filename, "test/basictests.c") ==
0,
"Captured message wasn't correct filename");
- ck_assert_msg(strcmp(captured_context.funcname, __func__) == 0,
+ ck_assert_msg(strstr(captured_context.funcname, __func__) != NULL,
"Captured message wasn't correct function name");
}
END_TEST
@@ -223,7 +223,7 @@ START_TEST (test_nslog_simple_filter_corked_message)
"Captured message wasn't correct");
ck_assert_msg(strcmp(captured_context.filename, "test/basictests.c") ==
0,
"Captured message wasn't correct filename");
- ck_assert_msg(strcmp(captured_context.funcname, __func__) == 0,
+ ck_assert_msg(strstr(captured_context.funcname, __func__) != NULL,
"Captured message wasn't correct function name");
}
@@ -250,7 +250,7 @@ START_TEST (test_nslog_simple_filter_uncorked_message)
"Captured message wasn't correct");
ck_assert_msg(strcmp(captured_context.filename, "test/basictests.c") ==
0,
"Captured message wasn't correct filename");
- ck_assert_msg(strcmp(captured_context.funcname, __func__) == 0,
+ ck_assert_msg(strstr(captured_context.funcname, __func__) != NULL,
"Captured message wasn't correct function name");
}
@@ -277,7 +277,7 @@ START_TEST (test_nslog_simple_filter_subcategory_message)
"Captured message wasn't correct");
ck_assert_msg(strcmp(captured_context.filename, "test/basictests.c") ==
0,
"Captured message wasn't correct filename");
- ck_assert_msg(strcmp(captured_context.funcname, __func__) == 0,
+ ck_assert_msg(strstr(captured_context.funcname, __func__) != NULL,
"Captured message wasn't correct function name");
}
commitdiff
http://git.netsurf-browser.org/libnslog.git/commit/?id=5df22ee4b195b746ce03876146e3f6decaae5ee2
commit 5df22ee4b195b746ce03876146e3f6decaae5ee2
Author: Michael Drake <[email protected]>
Commit: Michael Drake <[email protected]>
funcname: Use substring match for Clang
With Clang, __PRETTY_FUNCTION__ is `int main(void)` rather than `main`.
diff --git a/src/filter.c b/src/filter.c
index eb67810..c3dd5b0 100644
--- a/src/filter.c
+++ b/src/filter.c
@@ -292,8 +292,19 @@ static bool _nslog__filter_matches(nslog_entry_context_t
*ctx,
return true;
return false;
case NSLFK_FUNCNAME:
+#if (defined(__clang__))
+ /* With clang: __PRETTY_FUNCTION__: `int main(void)`
+ *
+ * So we do a substring match, which is slow but function
+ * filtering is done rarely and only for debugging purposes.
+ */
+ return (filter->params.str.len <= ctx->funcnamelen &&
+ strstr(ctx->funcname, filter->params.str.ptr) != NULL);
+#else
+ /* With gcc: __PRETTY_FUNCTION__: `main` */
return (filter->params.str.len == ctx->funcnamelen &&
strcmp(ctx->funcname, filter->params.str.ptr) == 0);
+#endif
case NSLFK_AND:
return (_nslog__filter_matches(ctx,
filter->params.binary.input1)
&&
-----------------------------------------------------------------------
Summary of changes:
src/filter.c | 11 +++++++++++
test/basictests.c | 12 ++++++------
2 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/src/filter.c b/src/filter.c
index eb67810..c3dd5b0 100644
--- a/src/filter.c
+++ b/src/filter.c
@@ -292,8 +292,19 @@ static bool _nslog__filter_matches(nslog_entry_context_t
*ctx,
return true;
return false;
case NSLFK_FUNCNAME:
+#if (defined(__clang__))
+ /* With clang: __PRETTY_FUNCTION__: `int main(void)`
+ *
+ * So we do a substring match, which is slow but function
+ * filtering is done rarely and only for debugging purposes.
+ */
+ return (filter->params.str.len <= ctx->funcnamelen &&
+ strstr(ctx->funcname, filter->params.str.ptr) != NULL);
+#else
+ /* With gcc: __PRETTY_FUNCTION__: `main` */
return (filter->params.str.len == ctx->funcnamelen &&
strcmp(ctx->funcname, filter->params.str.ptr) == 0);
+#endif
case NSLFK_AND:
return (_nslog__filter_matches(ctx,
filter->params.binary.input1)
&&
diff --git a/test/basictests.c b/test/basictests.c
index b521aae..f3adb12 100644
--- a/test/basictests.c
+++ b/test/basictests.c
@@ -83,7 +83,7 @@ START_TEST (test_nslog_trivial_corked_message)
"Captured message wasn't correct");
ck_assert_msg(strcmp(captured_context.filename, "test/basictests.c") ==
0,
"Captured message wasn't correct filename");
- ck_assert_msg(strcmp(captured_context.funcname, __func__) == 0,
+ ck_assert_msg(strstr(captured_context.funcname, __func__) != NULL,
"Captured message wasn't correct function name");
}
END_TEST
@@ -109,7 +109,7 @@ START_TEST (test_nslog_trivial_uncorked_message)
"Captured message wasn't correct");
ck_assert_msg(strcmp(captured_context.filename, "test/basictests.c") ==
0,
"Captured message wasn't correct filename");
- ck_assert_msg(strcmp(captured_context.funcname, __func__) == 0,
+ ck_assert_msg(strstr(captured_context.funcname, __func__) != NULL,
"Captured message wasn't correct function name");
}
END_TEST
@@ -150,7 +150,7 @@ START_TEST (test_nslog_two_corked_messages)
"Captured message wasn't correct");
ck_assert_msg(strcmp(captured_context.filename, "test/basictests.c") ==
0,
"Captured message wasn't correct filename");
- ck_assert_msg(strcmp(captured_context.funcname, __func__) == 0,
+ ck_assert_msg(strstr(captured_context.funcname, __func__) != NULL,
"Captured message wasn't correct function name");
}
END_TEST
@@ -223,7 +223,7 @@ START_TEST (test_nslog_simple_filter_corked_message)
"Captured message wasn't correct");
ck_assert_msg(strcmp(captured_context.filename, "test/basictests.c") ==
0,
"Captured message wasn't correct filename");
- ck_assert_msg(strcmp(captured_context.funcname, __func__) == 0,
+ ck_assert_msg(strstr(captured_context.funcname, __func__) != NULL,
"Captured message wasn't correct function name");
}
@@ -250,7 +250,7 @@ START_TEST (test_nslog_simple_filter_uncorked_message)
"Captured message wasn't correct");
ck_assert_msg(strcmp(captured_context.filename, "test/basictests.c") ==
0,
"Captured message wasn't correct filename");
- ck_assert_msg(strcmp(captured_context.funcname, __func__) == 0,
+ ck_assert_msg(strstr(captured_context.funcname, __func__) != NULL,
"Captured message wasn't correct function name");
}
@@ -277,7 +277,7 @@ START_TEST (test_nslog_simple_filter_subcategory_message)
"Captured message wasn't correct");
ck_assert_msg(strcmp(captured_context.filename, "test/basictests.c") ==
0,
"Captured message wasn't correct filename");
- ck_assert_msg(strcmp(captured_context.funcname, __func__) == 0,
+ ck_assert_msg(strstr(captured_context.funcname, __func__) != NULL,
"Captured message wasn't correct function name");
}
--
NetSurf Parametric Logging Library