-
Notifications
You must be signed in to change notification settings - Fork 45
Open
Assignees
@alisevych
Description
Description
Timeout tests are sometimes generated by Fuzzing for simplest functions.
For example for a+b
To Reproduce
- Install UnitTestBot plugin built from main in IntelliJ IDEA
- Open/create a project (Maven with JDK 17 was used)
- Generate tests for the following class with default settings:
public class Addition { public int addition(int a, int b){ return a + b; } }
Expected behavior
One test is expected to be generated.
Actual behavior
Once there was also a timeout test generated by Fuzzing.
Screenshots, logs
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import java.time.Duration; import java.util.concurrent.TimeUnit; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTimeoutPreemptively; public final class AdditionTest { ///region Test suites for executable org.example.Addition.addition ///region SYMBOLIC EXECUTION: SUCCESSFUL EXECUTIONS for method addition(int, int) /** * @utbot.classUnderTest {@link Addition} * @utbot.methodUnderTest {@link Addition#addition(int, int)} * @utbot.returnsFrom {@code return a + b;} */ @Test @DisplayName("addition: -> return a + b") public void testAddition_ReturnAPlusB() { Addition addition = new Addition(); int actual = addition.addition(-255, -255); assertEquals(-510, actual); } ///endregion ///region FUZZER: TIMEOUTS for method addition(int, int) /** * @utbot.classUnderTest {@link Addition} * @utbot.methodUnderTest {@link Addition#addition(int, int)} */ @Test @DisplayName("addition: a = -1 (mutated from -4194305), b = -2147483646 (mutated from min)") @org.junit.jupiter.api.Timeout(value = 1000L, unit = TimeUnit.MILLISECONDS) public void testAddition() { Addition addition = new Addition(); /* This execution may take longer than the 1000 ms timeout and therefore fail due to exceeding the timeout. */ assertTimeoutPreemptively(Duration.ofMillis(1000L), () -> addition.addition(-1, -2147483646)); } ///endregion ///endregion }
There seems to be nothing special in logs with this exact Fuzzing test generation:
utbot-engine-current_part.log
idea_part.log
Environment
IntelliJ IDEA 2023.1 (Community Edition)
Project - Maven
JDK - corretto-17
Additional context
Sometimes reproducing for simple functions of different times.
But has not reproduced on same function in a row.
Probably there is some performance issue with concrete execution.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Todo