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

Reply via email to