Issue: IllegalStateException: only support Map with String key in EvoMaster
Issue: IllegalStateException: only support Map with String key in EvoMaster
hi @arcuri82 ,
I am encountering the following error while integrating EvoMaster with my Spring Boot application With MongoDb:
Caused by: java.lang.IllegalStateException: only support Map with String key The exception is coming from EvoMaster, and I couldn't find any relevant solutions online.
When I asked ChatGPT, it suggested that the issue might be due to using Enums as keys in a Map, and recommended changing them to Strings. I tried implementing custom serialization and deserialization using JsonSerializer and JsonDeserializer to convert Enums to Strings, but the issue still persists.
Could you please provide guidance on how to properly handle this in EvoMaster?
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'base64ControllerImpl' defined in file [/home/gaian/Desktop/Naveen/Mobius/mobius-content-service/target/classes/com/aidtaas/mobius/content/services/controller/impl/Base64ControllerImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'base64ContentService' defined in URL [jar:file:/home/gaian/.m2/repository/com/aidtaas/mobius/mobius-content-service-layer/2.4.0/mobius-content-service-layer-2.4.0.jar!/com/aidtaas/mobius/content/service/layer/service/impl/Base64ContentService.class]: Unsatisfied dependency expressed through constructor parameter 2: Error creating bean with name 'contentCacheOperation' defined in URL [jar:file:/home/gaian/.m2/repository/com/aidtaas/mobius/mobius-content-service-layer/2.4.0/mobius-content-service-layer-2.4.0.jar!/com/aidtaas/mobius/content/service/layer/utils/ContentCacheOperation.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'contentRepository' defined in com.aidtaas.mobius.content.service.layer.repo.ContentRepository defined in @EnableMongoRepositories declared on ContentServiceApplication: only support Map with String key
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:801)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1352)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1189)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:950)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:738)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:440)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295)
at Evomaster.EmbeddedEvoMasterController.startSut(EmbeddedEvoMasterController.java:45)
at org.evomaster.client.java.controller.internal.EMController.lambda$runSut$20(EMController.java:366)
at org.evomaster.client.java.controller.internal.EMController.noKillSwitch(EMController.java:118)
at org.evomaster.client.java.controller.internal.EMController.runSut(EMController.java:366)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at shaded.org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
at shaded.org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)
at shaded.org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)
at shaded.org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176)
at shaded.org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)
at shaded.org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:475)
at shaded.org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:397)
at shaded.org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
at shaded.org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255)
at shaded.org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
at shaded.org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
at shaded.org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at shaded.org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at shaded.org.glassfish.jersey.internal.Errors.process(Errors.java:244)
at shaded.org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
at shaded.org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:234)
at shaded.org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:680)
at shaded.org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)
at shaded.org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
at shaded.org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)
at shaded.org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)
at shaded.org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
at shaded.org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763)
at shaded.org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:551)
at shaded.org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at shaded.org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1369)
at shaded.org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at shaded.org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:489)
at shaded.org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at shaded.org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1284)
at shaded.org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at shaded.org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at shaded.org.eclipse.jetty.server.Server.handle(Server.java:501)
at shaded.org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
at shaded.org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
at shaded.org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
at shaded.org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
at shaded.org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at shaded.org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at shaded.org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at shaded.org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at shaded.org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at shaded.org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at shaded.org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:135)
at shaded.org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
at shaded.org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'base64ContentService' defined in URL [jar:file:/home/gaian/.m2/repository/com/aidtaas/mobius/mobius-content-service-layer/2.4.0/mobius-content-service-layer-2.4.0.jar!/com/aidtaas/mobius/content/service/layer/service/impl/Base64ContentService.class]: Unsatisfied dependency expressed through constructor parameter 2: Error creating bean with name 'contentCacheOperation' defined in URL [jar:file:/home/gaian/.m2/repository/com/aidtaas/mobius/mobius-content-service-layer/2.4.0/mobius-content-service-layer-2.4.0.jar!/com/aidtaas/mobius/content/service/layer/utils/ContentCacheOperation.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'contentRepository' defined in com.aidtaas.mobius.content.service.layer.repo.ContentRepository defined in @EnableMongoRepositories declared on ContentServiceApplication: only support Map with String key
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:801)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1352)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1189)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:910)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788)
... 71 more
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'contentCacheOperation' defined in URL [jar:file:/home/gaian/.m2/repository/com/aidtaas/mobius/mobius-content-service-layer/2.4.0/mobius-content-service-layer-2.4.0.jar!/com/aidtaas/mobius/content/service/layer/utils/ContentCacheOperation.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'contentRepository' defined in com.aidtaas.mobius.content.service.layer.repo.ContentRepository defined in @EnableMongoRepositories declared on ContentServiceApplication: only support Map with String key
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:801)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1352)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1189)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:910)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788)
... 85 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'contentRepository' defined in com.aidtaas.mobius.content.service.layer.repo.ContentRepository defined in @EnableMongoRepositories declared on ContentServiceApplication: only support Map with String key
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1770)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:910)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788)
... 99 more
Caused by: java.lang.IllegalStateException: only support Map with String key
at org.evomaster.client.java.instrumentation.object.ClassToSchema.getSchema(ClassToSchema.java:336)
at org.evomaster.client.java.instrumentation.object.ClassToSchema.getSchema(ClassToSchema.java:365)
at org.evomaster.client.java.instrumentation.object.ClassToSchema.findAllNestedClassAndRegisterThemIfNeeded(ClassToSchema.java:239)
at org.evomaster.client.java.instrumentation.object.ClassToSchema.getOrDeriveSchemaAndNestedClasses(ClassToSchema.java:225)
at org.evomaster.client.java.instrumentation.object.ClassToSchema.getOrDeriveSchemaWithItsRef(ClassToSchema.java:153)
at org.evomaster.client.java.instrumentation.coverage.methodreplacement.thirdpartyclasses.MappingMongoEntityInformationClassReplacement.handleMappingMongoEntityInformationConstructor(MappingMongoEntityInformationClassReplacement.java:95)
at org.evomaster.client.java.instrumentation.coverage.methodreplacement.thirdpartyclasses.MappingMongoEntityInformationClassReplacement.MappingMongoEntityInformation(MappingMongoEntityInformationClassReplacement.java:83)
at org.springframework.data.mongodb.repository.support.MongoEntityInformationSupport.entityInformationFor(MongoEntityInformationSupport.java:48)
at org.springframework.data.mongodb.repository.support.MongoRepositoryFactory.getEntityInformation(MongoRepositoryFactory.java:147)
at org.springframework.data.mongodb.repository.support.MongoRepositoryFactory.getTargetRepository(MongoRepositoryFactory.java:128)
at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:317)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$5(RepositoryFactoryBeanSupport.java:279)
at org.springframework.data.util.Lazy.getNullable(Lazy.java:245)
at org.springframework.data.util.Lazy.get(Lazy.java:114)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:285)
at org.springframework.data.mongodb.repository.support.MongoRepositoryFactoryBean.afterPropertiesSet(MongoRepositoryFactoryBean.java:101)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1817)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1766)
... 110 more
hi @naveensabavath ,
thanks. this is a bug in EM. Fortunately, it should be a rather easy fix. I ll prioritize it
hi @arcuri82
How can we Integrate Evomaster with Kafka Using Java
hi, thanks. but, for these questions, better to start a new issue/feature-request or new entry in discussion forum.
currently there is no native or special handling / optimization for Kafka. it is on our TODO plan for future. depending on resources, might happen later this year or next year
hi @naveensabavath ,
thanks. this is a bug in EM. Fortunately, it should be a rather easy fix. I ll prioritize it
Hi @arcuri82 ,
Thank you for acknowledging the bug related to "Only Support Map with String Key" when using Map<Enum, String> with MongoDB in EvoMaster.
I wanted to check if the fix is currently being worked on and if there’s an expected timeline for when it will be available. Also, will this fix ensure that Map<Enum, String> is correctly serialized and deserialized in MongoDB without requiring a workaround?
Looking forward to your update. Thanks again for your help!
hi @naveensabavath we might make a new release with the fix within 1 or 2 months. if you want to try to check it out now, you will need to build and locally install SNAPSHOT version from master branch (ie, version 3.4.1-SNAPSHOT)
hey @arcuri82 ,
Thank you so much .. I did try with SnapShot Version and the error "only support Map with String key in EvoMaster" has gone.
<--------------------------------------------------------------------->
I wanted some clarification on the coverage metrics. After running EvoMaster, I see the following:
Covered targets: 579 Bytecode line coverage: 10% (128 out of 1328 in 46 units/classes) Successfully executed (HTTP 2xx) endpoints: 2 out of 10 (20%) However, when I check the generated test cases, I see that all my API endpoints are included, but many of them result in HTTP 500, 401, or 400 errors.
I have a few questions:
How does EvoMaster determine coverage (lines, branches, faults)? Is it based on **only successful executions (2xx responses), or does it also count failures? If most APIs return 500/401, how does that impact bytecode coverage? Is there a way to force EvoMaster to explore more successful execution paths instead of hitting mostly error responses?
<--------------------------------------------------------------------->
<--------------------------------------------------------------------->
ERROR :
i have encoutered a new Error and I dont Know what exactly it is please look at it because i dont know why it is Coming
error : java.lang.IllegalArgumentException: different template class org.evomaster.core.search.gene.collection.PairGene
Command am running java -jar target/evomaster.jar --maxTime 120s --outputFolder "src/test/java/Evomaster"
17:25:13.704 [main] WARN o.evomaster.core.taint.TaintAnalysis - More than 2 genes have the taint 'EM_1165_XYZ' 17:25:13.828 [main] WARN o.evomaster.core.taint.TaintAnalysis - More than 2 genes have the taint 'EM_1164_XYZ' 17:25:13.828 [main] WARN o.evomaster.core.taint.TaintAnalysis - More than 2 genes have the taint 'EM_1162_XYZ' 17:25:13.829 [main] WARN o.evomaster.core.taint.TaintAnalysis - More than 2 genes have the taint 'EM_1166_XYZ' 17:25:13.829 [main] WARN o.evomaster.core.taint.TaintAnalysis - More than 2 genes have the taint 'EM_1163_XYZ' 17:25:13.830 [main] WARN o.evomaster.core.taint.TaintAnalysis - More than 2 genes have the taint 'EM_1165_XYZ' 17:25:13.830 [main] WARN o.evomaster.core.taint.TaintAnalysis - More than 2 genes have the taint 'EM_1164_XYZ' 17:25:13.831 [main] WARN o.evomaster.core.taint.TaintAnalysis - More than 2 genes have the taint 'EM_1162_XYZ' 17:25:13.831 [main] WARN o.evomaster.core.taint.TaintAnalysis - More than 2 genes have the taint 'EM_1166_XYZ' 17:25:13.832 [main] WARN o.evomaster.core.taint.TaintAnalysis - More than 2 genes have the taint 'EM_1163_XYZ' 17:25:13.832 [main] WARN o.evomaster.core.taint.TaintAnalysis - More than 2 genes have the taint 'EM_1165_XYZ'
- [ERROR] EvoMaster process terminated abruptly. This is likely a bug in EvoMaster. Please copy&paste the following stacktrace, and create a new issue on https://github.com/EMResearch/EvoMaster/issues java.lang.IllegalArgumentException: different template class org.evomaster.core.search.gene.collection.PairGene at org.evomaster.core.search.gene.ObjectGene.containsSameValueAs(ObjectGene.kt:265) at org.evomaster.core.search.gene.optional.ChoiceGene.containsSameValueAs(ChoiceGene.kt:227) at org.evomaster.core.search.gene.optional.OptionalGene.containsSameValueAs(OptionalGene.kt:98) at org.evomaster.core.search.gene.ObjectGene.containsSameValueAs(ObjectGene.kt:269) at org.evomaster.core.search.gene.collection.ArrayGene.containsSameValueAs(ArrayGene.kt:163) at org.evomaster.core.search.gene.optional.OptionalGene.containsSameValueAs(OptionalGene.kt:98) at org.evomaster.core.search.gene.ObjectGene.containsSameValueAs(ObjectGene.kt:269) at org.evomaster.core.search.gene.optional.ChoiceGene.containsSameValueAs(ChoiceGene.kt:227) at org.evomaster.core.search.impact.impactinfocollection.ImpactUtils$Companion.findMutatedGene(ImpactUtils.kt:327) at org.evomaster.core.search.impact.impactinfocollection.ImpactUtils$Companion.findMutatedGene(ImpactUtils.kt:317) at org.evomaster.core.search.service.mutator.StandardMutator.mutationConfiguration(StandardMutator.kt:453) at org.evomaster.core.search.service.mutator.StandardMutator.mutationConfiguration$default(StandardMutator.kt:366) at org.evomaster.core.search.service.mutator.StandardMutator.innerMutate(StandardMutator.kt:264) at org.evomaster.core.search.service.mutator.StandardMutator.mutate(StandardMutator.kt:301) at org.evomaster.core.search.service.mutator.Mutator.mutateAndSave(Mutator.kt:163) at org.evomaster.core.search.algorithms.MioAlgorithm.searchOnce(MioAlgorithm.kt:48) at org.evomaster.core.search.service.SearchAlgorithm.search(SearchAlgorithm.kt:77) at org.evomaster.core.Main$Companion.run(Main.kt:607) at org.evomaster.core.Main$Companion.initAndRun(Main.kt:202) at org.evomaster.core.Main$Companion.main(Main.kt:112) at org.evomaster.core.Main.main(Main.kt)
<--------------------------------------------------------------------->
hi,
this looks like another bug :( can you post it as a new issue?
regarding your questions, for how long are you running EvoMaster? it seems like it is struggling in generating valid inputs. 10% is quite low. possible issue with input constraints. note: if you add "example(s)" in the OpenAPI schema for complex objects/inputs, EM can use those values in the search.
is the application you are testing open-source? or is it a commercial / in-house/ industrial API?
hi,
i am running Evomaster for 3 days. and my Application is not open Source ...it is industrial API.
can u please answer below Quoestions if Possible
How does EvoMaster determine coverage (lines, branches, faults)? Is it based on **only successful executions (2xx responses), or does it also count failures? If most APIs return 500/401, how does that impact bytecode coverage? Is there a way to force EvoMaster to explore more successful execution paths instead of hitting mostly error responses?
hi,
you are saying you are running EM with --maxTime 72h ?
Regarding industrial API, would you be interested discussing a Industry Collaboration?
For your questions:
-
How does EvoMaster determine coverage (lines, branches, faults)? Is it based on **only successful executions (2xx responses), or does it also count failures?-> it counts all, regardless of returned status code -
If most APIs return 500/401, how does that impact bytecode coverage?-> EM tries to maximize code coverage, regardless of returned status code. Note, if you get a 401 while the generated test has auth info, that might be a misconfiguration of the auth -
Is there a way to force EvoMaster to explore more successful execution paths instead of hitting mostly error responses?-> no, it tries to do it by itself. if it doesn't manage it, it means it is struggling with generating valid inputs, eg, that pass first layer of validation. but, without looking at the code and the constraints there, it is hard to say what is going. still, achieved 10% coverage is quite low
ah, wait, i see in your comment you wrote --maxTime 120s. that is very low. should try at least 60m, better if more hours
closed as release 4.0.0 is out