Skip to content
This repository was archived by the owner on Nov 1, 2023. It is now read-only.
This repository was archived by the owner on Nov 1, 2023. It is now read-only.

Duplicate parameterized test name error #15

@pfourguet

Description

@pfourguet

Hi,
I'm having some issues executing a simple test with ktf.
I'm cross-compiling ktf for arm64 architecture.
I'm using the latests revisions of KTF and googletest on a 4.14.115 Linux kernel.
After inserting KTF and my test module (insmod ktf.ko; insmod test.ko), i'm trying to list the registered test using the command ktfrun --gtest_list_tests.
ktfrun creates a coredump and gives me the following error:

[ FATAL ] /usr/include/gtest/internal/gtest-param-util.h:562:: Condition test_param_names.count(param_name) == 0 failed. Duplicate parameterized test name 't1', in Aborted (core dumped)

I wasn't able to understand what is going on.
My test source code is the default one created using the ktfnew script.
Activating the debug messages gives me the following messages:

  • KTF userland
    root@tap-00010E5F:~# ktfrun --gtest_list_tests
    Thu Jul 11 13:17:10 2019 [281473665986688] parse_query: Kernel offers 1 test sets:
    Thu Jul 11 13:17:10 2019 [281473665986688] find_add_set: find_add_set(simple)
    Thu Jul 11 13:17:10 2019 [281473665986688] find_add_set: find_add_set(simple)
    Thu Jul 11 13:17:10 2019 [281473665986688] find_add_set: find_add_set(simple)
    Thu Jul 11 13:17:10 2019 [281473665986688] parse_query: Kernel offers 1 test sets:
    Thu Jul 11 13:17:10 2019 [281473665986688] find_add_set: find_add_set(simple)
    Thu Jul 11 13:17:10 2019 [281473665986688] find_add_set: find_add_set(simple)
    Thu Jul 11 13:17:10 2019 [281473665986688] find_add_set: find_add_set(simple)

[ FATAL ] /usr/include/gtest/internal/gtest-param-util.h:562:: Condition test_param_names.count(param_name) == 0 failed. Duplicate parameterized test name 't1', in Aborted (core dumped)

  • KTF kernel space
    [26543.319181] ktf pid [1012] ktf_map_elem_get: Increasing refcount for simple to 3
    [26543.319195] ktf pid [1012] ktf_map_elem_get: Increasing refcount for t1 to 3
    [26543.319202] ktf pid [1012] ktf_map_elem_put: Decreasing refcount for t1 to 2
    [26543.319222] ktf pid [1012] ktf_map_elem_put: Decreasing refcount for simple to 2
    [26543.321428] ktf pid [1012] ktf_map_elem_get: Increasing refcount for simple to 3
    [26543.321442] ktf pid [1012] ktf_map_elem_get: Increasing refcount for t1 to 3
    [26543.321450] ktf pid [1012] ktf_map_elem_put: Decreasing refcount for t1 to 2
    [26543.321455] ktf pid [1012] ktf_map_elem_put: Decreasing refcount for simple to 2

It seems that it acts like the same test was registered twice. But there is only one test in test source code. Here is the test source code as a reminder:
#include <linux/module.h>
#include "ktf.h"

MODULE_LICENSE("GPL");

KTF_INIT();

TEST(simple, t1)
{
EXPECT_TRUE(true);
}

static void add_tests(void)
{
ADD_TEST(t1);
}

static int __init tests_init(void)
{
add_tests();
return 0;
}
static void __exit tests_exit(void)
{
KTF_CLEANUP();
}

module_init(tests_init);
module_exit(tests_exit);

Have you already encountered this type of error ?
Thanks in advance for your help.
Pascal

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions