Open
Description
Description
Genereted regression test for function with pointer to pointer to function as a parameter fails.
To Reproduce
Steps to reproduce the behavior:
- Open the 'c-example/lib/pointers/function_pointers.c" file
- Generate tests for the 'pointerToPointer' function:
char pointerToPointer(int (**f)(int), char x) {
if (f[0](5) == 4) {
return x;
} else {
return 'z';
}
}
Generated tests
TEST(regression, pointerToPointer_test_1)
{
// Construct input
pointerToPointer_f_arg f[10];
for (int i = 0; i < 10; i ++) {
f[i] = *_pointerToPointer_f_stub;
}
char x = 'c';
// Expected output
char expected = 'z';
// Trigger the function
char actual = pointerToPointer(f, x);
// Check results
EXPECT_EQ(expected, actual);
}
TEST(regression, pointerToPointer_test_2)
{
// Construct input
pointerToPointer_f_arg f[10];
for (int i = 0; i < 10; i ++) {
f[i] = *_pointerToPointer_f_stub;
}
char x = 'b';
// Expected output
char expected = 'b';
// Trigger the function
char actual = pointerToPointer(f, x);
// Check results
EXPECT_EQ(expected, actual);
}
The second regression test fails:
Expected equality of these values:
expected
Which is: 'b' (98, 0x62)
actual
Which is: 'z' (122, 0x7A)
Comments
Also creating array of 10 identical items and accessing only first of them looks strange and superfluously.
Environment
UTBotCpp version 2022.7.0.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Todo