Title: Fuzzing only test generation for Builder pattern produces an empty test class · Issue #607 · UnitTestBot/UTBotJava · GitHub
Open Graph Title: Fuzzing only test generation for Builder pattern produces an empty test class · Issue #607 · UnitTestBot/UTBotJava
X Title: Fuzzing only test generation for Builder pattern produces an empty test class · Issue #607 · UnitTestBot/UTBotJava
Description: Description Test generation using Fuzzing only mode - the Simplest - for a method instantiating a class using Builder pattern - produces an empty test class. Sarif report fails to be generated. FormattingModelInconsistencyException was t...
Open Graph Description: Description Test generation using Fuzzing only mode - the Simplest - for a method instantiating a class using Builder pattern - produces an empty test class. Sarif report fails to be generated. For...
X Description: Description Test generation using Fuzzing only mode - the Simplest - for a method instantiating a class using Builder pattern - produces an empty test class. Sarif report fails to be generated. For...
Opengraph URL: https://github.com/UnitTestBot/UTBotJava/issues/607
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Fuzzing only test generation for Builder pattern produces an empty test class","articleBody":"**Description**\r\n\r\nTest generation using Fuzzing only mode - the Simplest - for a method instantiating a class using Builder pattern - produces an empty test class. \r\nSarif report fails to be generated. \r\nFormattingModelInconsistencyException was thrown - twice (not every run).\r\n\r\n**To Reproduce**\r\n\r\nSteps to reproduce the behavior:\r\n\r\n1. Run IntelliJ IDEA Ultimate 2022.1.4 with UTBot Java plugin installed\r\n2. Create a Gradle project with JDK 11\r\n3. Create the following class:\r\n\r\n```\r\npublic class Person {\r\n\r\n private String lastName;\r\n private String firstName;\r\n\r\n private Person() {\r\n // private constructor\r\n }\r\n\r\n public String getLastName() {\r\n return lastName;\r\n }\r\n\r\n public String getFirstName() {\r\n return firstName;\r\n }\r\n\r\n public static Builder newBuilder() {\r\n return new Person().new Builder();\r\n }\r\n\r\n public class Builder {\r\n\r\n private Builder() {\r\n // private constructor\r\n }\r\n\r\n public Builder setLastName(String lastName) {\r\n Person.this.lastName = lastName;\r\n\r\n return this;\r\n }\r\n\r\n public Builder setFirstName(String firstName) {\r\n Person.this.firstName = firstName;\r\n\r\n return this;\r\n }\r\n\r\n public Person build() {\r\n return Person.this;\r\n }\r\n }\r\n\r\n public Person getSomeone(String name) {\r\n return Person.newBuilder()\r\n .setFirstName(name)\r\n .setLastName(\"Last\")\r\n .build();\r\n }\r\n}\r\n\r\n```\r\n4. Generate a test for getSomeone method with UTBot\r\n\r\n**Expected behavior**\r\n\r\nTests are supposed to be generated.\r\n\r\n**Actual behavior**\r\n\r\nEmpty PersonTest.java class is generated and Error dialog with \"Failed to save tests report\" is displayed.\r\n\r\nOnce there was FormattingModelInconsistencyException thrown\r\n\r\n**Visual proofs (screenshots, logs, images)**\r\n\r\n\r\n\r\n\r\n\r\n```\r\ncom.intellij.formatting.FormatterImpl$FormattingModelInconsistencyException: Invalid root block PSI element\r\n\tat com.intellij.formatting.FormatterImpl.validateModel(FormatterImpl.java:707)\r\n\tat com.intellij.formatting.FormatterImpl.format(FormatterImpl.java:221)\r\n\tat com.intellij.psi.impl.source.codeStyle.CodeFormatterFacade.processRange(CodeFormatterFacade.java:117)\r\n\tat com.intellij.psi.impl.source.codeStyle.CodeFormatterFacade.processElement(CodeFormatterFacade.java:67)\r\n\tat com.intellij.formatting.service.CoreFormattingService.formatElement(CoreFormattingService.java:44)\r\n\tat com.intellij.formatting.service.FormattingServiceUtil.formatElement(FormattingServiceUtil.java:67)\r\n\tat com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.reformat(CodeStyleManagerImpl.java:82)\r\n\tat com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.reformat(CodeStyleManagerImpl.java:65)\r\n\tat org.utbot.intellij.plugin.generator.CodeGenerationController.reformat(CodeGenerationController.kt:337)\r\n\tat org.utbot.intellij.plugin.generator.CodeGenerationController.access$reformat(CodeGenerationController.kt:83)\r\n\tat org.utbot.intellij.plugin.generator.CodeGenerationController$generateCodeAndReport$1$1$1$2.run(CodeGenerationController.kt:308)\r\n\tat com.intellij.openapi.command.WriteCommandAction.lambda$runWriteCommandAction$4(WriteCommandAction.java:362)\r\n\tat com.intellij.openapi.command.WriteCommandAction$BuilderImpl.lambda$doRunWriteCommandAction$1(WriteCommandAction.java:150)\r\n\tat com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1015)\r\n\tat com.intellij.openapi.command.WriteCommandAction$BuilderImpl.lambda$doRunWriteCommandAction$2(WriteCommandAction.java:148)\r\n\tat com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:219)\r\n\tat com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:184)\r\n\tat com.intellij.openapi.command.WriteCommandAction$BuilderImpl.doRunWriteCommandAction(WriteCommandAction.java:157)\r\n\tat com.intellij.openapi.command.WriteCommandAction$BuilderImpl.run(WriteCommandAction.java:124)\r\n\tat com.intellij.openapi.command.WriteCommandAction.runWriteCommandAction(WriteCommandAction.java:362)\r\n\tat org.utbot.intellij.plugin.generator.CodeGenerationController$generateCodeAndReport$1$1$1.run(CodeGenerationController.kt:307)\r\n\tat org.utbot.intellij.plugin.generator.CodeGenerationController$run$$inlined$let$lambda$3.compute(actions.kt:58)\r\n\tat com.intellij.openapi.application.impl.ApplicationImpl.lambda$runWriteAction$13(ApplicationImpl.java:1024)\r\n\tat com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:1003)\r\n\tat com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1024)\r\n\tat org.utbot.intellij.plugin.generator.CodeGenerationController.run(CodeGenerationController.kt:584)\r\n\tat org.utbot.intellij.plugin.generator.CodeGenerationController.access$run(CodeGenerationController.kt:83)\r\n\tat org.utbot.intellij.plugin.generator.CodeGenerationController$generateCodeAndReport$1$1.run(CodeGenerationController.kt:293)\r\n\tat org.utbot.intellij.plugin.generator.CodeGenerationController$run$$inlined$let$lambda$4.run(ApplicationUtils.kt:59)\r\n\tat com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:215)\r\n\tat com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:22)\r\n\tat com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:197)\r\n\tat com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:873)\r\n\tat com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:511)\r\n\tat com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:69)\r\n\tat com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:112)\r\n\tat com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:42)\r\n\tat java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)\r\n\tat java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)\r\n\tat java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)\r\n\tat java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)\r\n\tat java.base/java.security.AccessController.doPrivileged(Native Method)\r\n\tat java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)\r\n\tat java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)\r\n\tat com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:898)\r\n\tat com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:746)\r\n\tat com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:439)\r\n\tat com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:803)\r\n\tat com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:438)\r\n\tat com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)\r\n\tat com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:604)\r\n\tat com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:436)\r\n\tat com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:873)\r\n\tat com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:484)\r\n\tat java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)\r\n\tat java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)\r\n\tat java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)\r\n\tat java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)\r\n\tat java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)\r\n\tat java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)\r\n```\r\n\r\n**Environment**\r\n\r\nIntelliJ IDEA 2022.1.4\r\nGradle project with JDK 11\r\n\r\n**Additional context**\r\n\r\nWhen Symbolic engine is turned on - even minimally - a test is generated.\r\nNot reproducing on Gradle project with JDK 8,\r\nNot reproducing on Maven and IntelliJ projects with JDK 11\r\n","author":{"url":"https://github.com/alisevych","@type":"Person","name":"alisevych"},"datePublished":"2022-07-28T12:27:12.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":4},"url":"https://github.com/607/UTBotJava/issues/607"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:3f43d0dc-615d-4f37-6c66-2f5e77873557 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 82B0:A3E66:5DCBC7:77EA48:69905AE0 |
| html-safe-nonce | b9bb1a7b7e24c459aef2bcda511dc09eebb55f685f5e0d0b804b797cbdeecfbc |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MkIwOkEzRTY2OjVEQ0JDNzo3N0VBNDg6Njk5MDVBRTAiLCJ2aXNpdG9yX2lkIjoiMzM2NTIxMTUwMzU5MDM5ODY4OCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | bccc73825be287f957d1cbed4eae57c05ccf133caa9a7d2da3e7e681abf31ec3 |
| hovercard-subject-tag | issue:1320857118 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/UnitTestBot/UTBotJava/607/issue_layout |
| twitter:image | https://opengraph.githubassets.com/e68e4509094dbb42517cd313666f728de1fb5d7309d96fee05c125ce338cf098/UnitTestBot/UTBotJava/issues/607 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/e68e4509094dbb42517cd313666f728de1fb5d7309d96fee05c125ce338cf098/UnitTestBot/UTBotJava/issues/607 |
| og:image:alt | Description Test generation using Fuzzing only mode - the Simplest - for a method instantiating a class using Builder pattern - produces an empty test class. Sarif report fails to be generated. For... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | alisevych |
| hostname | github.com |
| expected-hostname | github.com |
| None | 42c603b9d642c4a9065a51770f75e5e27132fef0e858607f5c9cb7e422831a7b |
| turbo-cache-control | no-preview |
| go-import | github.com/UnitTestBot/UTBotJava git https://github.com/UnitTestBot/UTBotJava.git |
| octolytics-dimension-user_id | 87413538 |
| octolytics-dimension-user_login | UnitTestBot |
| octolytics-dimension-repository_id | 480810501 |
| octolytics-dimension-repository_nwo | UnitTestBot/UTBotJava |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 480810501 |
| octolytics-dimension-repository_network_root_nwo | UnitTestBot/UTBotJava |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 3b33c5aedc9808f45bc5fcf0b1e4404cf749dac7 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width