-
Notifications
You must be signed in to change notification settings - Fork 30
Open
Labels
bugSomething isn't workingSomething isn't working
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
bugSomething isn't workingSomething isn't working
Type
Projects
Status
Todo