Skip to content

When file is opened inside tested function many generated regression tests fail #555

Open
@tyuldashev

Description

@tyuldashev

Description
If user code accepts file name as parameter then opens and read it, then UTBot generates improper file names and tests fail with errors.

To Reproduce
Generate and run tests for following code (extracted from #507):

int read_first_char(char * name) {
    FILE *file = fopen(name, "r");
    if (file == NULL) return -1;
    int c = fgetc(file);
    // fclose(file);

    if (c == 'Y') return 'Y';
    if (c == 'Z') return 'Z';
    return '0';
}

Expected behavior
Regression tests pass

Actual behavior
Many regression tests fail. Below is one of such tests.

TEST(regression, read_first_char_test_1)
{
    write_to_file("../../../tests/src/A", "Y");

    char name[] = {'A', '\0', 'c', 'c', 'c', 'a', 'c', 'c', 'c', '\0'};
    int actual = read_first_char(name);
    EXPECT_EQ(89, actual);
    char expected_name[] = {'A', '\0', 'c', 'c', 'c', 'a', 'c', 'c', 'c', '\0'};
    for (int it_17_0 = 0; it_17_0 < 10; it_17_0 ++) {
        EXPECT_EQ(expected_name[it_17_0], name[it_17_0]);
    }
}

Note that file name initialized with:

char name[] = {'A', '\0', 'c', 'c', 'c', 'a', 'c', 'c', 'c', '\0'};

Should it contain actual path to the file, then EXPECT_EQ(89, actual) would pass:

char name[] = "../../../tests/src/A";

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingwrong generationInadequate or empty test suite generated

Type

No type

Projects

Status

Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions