cmocka:包装glib库函数g_string_append_c()不起作用

发布于 2025-02-08 20:52:01 字数 829 浏览 0 评论 0原文

我正在CMOCKA运行Syslog-NG的UT测试用例,将GLIB库升级为2.71。 我无法调用包装器功能。 我尝试链接选项-Wl,Wrap = g_string_append_c,wrap = g_string_append在make file中。

这是我的包装器功能:

String* __wrap_g_string_append(GString *string, const gchar *val)
{
    printf(" wrap_g_string_append is called\n");
    return NULL;
}

GString* __wrap_g_string_append_c(GString *string,  gchar c)
{
    printf(" wrap_g_string_append_c is called\n");
    return NULL;
}

sample main function call which is part of syslog-ng:
int main()
{
    g_string_append(key, obj_key);
    g_string_append_c(key, '.');
    

}

在这里,我可以调用__wrap_g_string_append函数,但无法调用__wrap_g_string_append_c函数,不确定这里是什么问题,其调用库g_string_append_c而不是wrappend_prapder函数__wrap_grap_ge_string_append_append_ccend_cc()。 我尝试了CMOCKA论坛中提到的许多选择,对我来说没有什么可用的。

有人可以帮助我解决这个问题,我在这里缺少什么吗?

I am running UT test case for syslog-ng in cmocka, upgraded Glib library to 2.71.
I am not able to call wrapper function.
I tried linking option --Wl, wrap=g_string_append_c, wrap=g_string_append in make file.

Here are my wrapper functions:

String* __wrap_g_string_append(GString *string, const gchar *val)
{
    printf(" wrap_g_string_append is called\n");
    return NULL;
}

GString* __wrap_g_string_append_c(GString *string,  gchar c)
{
    printf(" wrap_g_string_append_c is called\n");
    return NULL;
}

sample main function call which is part of syslog-ng:
int main()
{
    g_string_append(key, obj_key);
    g_string_append_c(key, '.');
    

}

Here I am able to call __wrap_g_string_append function, but not able to call __wrap_g_string_append_c function, not sure what is the issue here, its calling library function g_string_append_c instead of wrapper function __wrap_g_string_append_c().
I have tried many options mentioned in cmocka forum, nothing has worked for me.

Could someone please help me in resolving the issue, anything I am missing here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文