Skip to content

Summaries are not generated with default useFuzzing setting #428

Closed
@dtim

Description

@dtim

Description

When UtSettings::useFuzzing has its default value true, no summaries are generated for test cases created by the symbolic engine. Summaries are correctly generated when useFuzzing settings is set to false.

To Reproduce

Make sure that $HOME/.utbot/settings.properties does not contain useFuzzing = false line (i.e., the default value is used).

Generate tests for a class (e.g., utbot-sample/src/main/java/org/utbot/examples/algorithms/BinarySearch.java).

Expected behavior

Test cases generated by the symbolic engine contain summaries (JavaDoc, @DisplayName, informative method names).

Actual behavior

Tests are sequentially numbered, no JavaDoc is provided, no @DisplayName is provided.

Visual proofs (screenshots, logs, images)

First 3 tests have been generated by the fuzzer and have informative names and @DisplayName.
All other tests have been generated by the symbolic engine and have no summaries.

    @Test
    @DisplayName("leftBinSearch: array = long[10], key = 0L -> return 1")
    public void testLeftBinSearchReturnsOneWithNonEmptyPrimitiveArrayAndCornerCase() {
        BinarySearch binarySearch = new BinarySearch();
        long[] longArray = {
                0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
                0L, 0L
        };

        int actual = binarySearch.leftBinSearch(longArray, 0L);

        assertEquals(1, actual);
    }

    @Test
    @DisplayName("leftBinSearch: array = long[10], key = Long.MAX_VALUE -> return -1")
    public void testLeftBinSearchWithNonEmptyPrimitiveArrayAndCornerCase() {
        BinarySearch binarySearch = new BinarySearch();
        long[] longArray = {
                0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
                0L, 0L
        };

        int actual = binarySearch.leftBinSearch(longArray, Long.MAX_VALUE);

        assertEquals(-1, actual);
    }

    @Test
    @DisplayName("leftBinSearch: array = long[0], key < 0L -> return -1")
    public void testLeftBinSearchWithEmptyPrimitiveArray() {
        BinarySearch binarySearch = new BinarySearch();
        long[] longArray = {};

        int actual = binarySearch.leftBinSearch(longArray, -1L);

        assertEquals(-1, actual);
    }

    @Test
    public void testLeftBinSearch1() {
        BinarySearch binarySearch = new BinarySearch();
        long[] longArray = {-255L};

        int actual = binarySearch.leftBinSearch(longArray, -128L);

        assertEquals(-1, actual);
    }

    @Test
    public void testLeftBinSearch2() {
        BinarySearch binarySearch = new BinarySearch();
        long[] longArray = {-255L};

        int actual = binarySearch.leftBinSearch(longArray, -255L);

        assertEquals(1, actual);
    }

    @Test
    public void testLeftBinSearch3() {
        BinarySearch binarySearch = new BinarySearch();
        long[] longArray = {-255L, -255L};

        int actual = binarySearch.leftBinSearch(longArray, -255L);

        assertEquals(1, actual);
    }

    @Test
    public void testLeftBinSearch4() {
        BinarySearch binarySearch = new BinarySearch();
        
        /* This test fails because executable under testing alg.BinarySearch.leftBinSearch
        produces Runtime exception java.lang.NullPointerException */
        binarySearch.leftBinSearch(null, -255L);
    }

    @Test
    public void testLeftBinSearch5() {
        BinarySearch binarySearch = new BinarySearch();
        long[] longArray = {-251L, -252L};

        assertThrows(IllegalArgumentException.class, () -> binarySearch.leftBinSearch(longArray, -255L));
    }

Environment

UtSettings::useFuzzer should be set to true to reproduce the bug.

Metadata

Metadata

Assignees

Labels

comp-summariesSomething related to the method names, code comments and display names generationctg-bugIssue is a bugpriority-top-focusTop priority chosen by dev team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions