EvoMaster icon indicating copy to clipboard operation
EvoMaster copied to clipboard

Support for OracleDB

Open PallaviKrishnamurthy opened this issue 3 years ago • 4 comments

Hi @arcuri82, I'm facing below error when I'm trying to generate test cases using EVO Master. Latest version of EvoMaster is throwing a java.lang.IllegalArgumentException: Column data type NUMBER is not supported in EvoMaster Data types

Please find below the stackTrace:

  • EvoMaster version: 1.4.0 15:57:10.487 [main] WARN o.e.c.p.rest.RestActionBuilderV3 - Cannot handle regex: ^[\w\s<>,.:;"'{}[]?/\]+$ 15:57:10.503 [main] WARN o.e.c.s.g.regex.CharacterRangeRxGene - Issue with Regex range, where '' is greater than '@' 15:57:10.503 [main] WARN o.e.core.search.StructuralElement - class org.evomaster.core.search.gene.ObjectGene should have a parent but currently it is null

  • ←[31m[ERROR] ←[0m←[33mEvoMaster process terminated abruptly. This is likely a bug in EvoMaster. Please copy&paste the following stacktrace, and create a new issue on ←[34mhttps://github.com/EMResearch/EvoMaster/issues←[0m←[0m java.lang.reflect.InvocationTargetException: invokedynamic: method=public void org.evomaster.core.problem.rest.service.AbstractRestSampler.initialize(), target=org.evomaster.core.problem.rest.service.ResourceSampler@704ff0 at com.netflix.governator.lifecycle.LifecycleMethods.methodInvoke(LifecycleMethods.java:316) at com.netflix.governator.lifecycle.LifecycleMethods.methodInvoke(LifecycleMethods.java:298) at com.netflix.governator.lifecycle.LifecycleManager.startInstance(LifecycleManager.java:266) at com.netflix.governator.lifecycle.LifecycleManager.add(LifecycleManager.java:175) at com.netflix.governator.guice.InternalLifecycleModule.onProvision(InternalLifecycleModule.java:81) at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:117) at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:66) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:93) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:296) at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169) at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45) at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:60) at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169) at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45) at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:213) at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:186) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:113) at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:239) at com.netflix.governator.guice.LifecycleInjector.createChildInjector(LifecycleInjector.java:331) at com.netflix.governator.guice.LifecycleInjector.createInjector(LifecycleInjector.java:411) at com.netflix.governator.guice.LifecycleInjector.createInjector(LifecycleInjector.java:352) at org.evomaster.core.Main$Companion.init(Main.kt:312) at org.evomaster.core.Main$Companion.initAndRun(Main.kt:140) at org.evomaster.core.Main$Companion.main(Main.kt:73) at org.evomaster.core.Main.main(Main.kt) Caused by: java.lang.IllegalArgumentException: Column data type NUMBER is not supported in EvoMaster Data types at org.evomaster.core.database.schema.ColumnFactory.parseColumnDataType(ColumnFactory.kt:41) at org.evomaster.core.database.schema.ColumnFactory.createColumnFromDto(ColumnFactory.kt:17) at org.evomaster.core.database.SqlInsertBuilder.(SqlInsertBuilder.kt:105) at org.evomaster.core.problem.rest.service.ResourceSampler.initSqlInfo(ResourceSampler.kt:40) at org.evomaster.core.problem.rest.service.AbstractRestSampler.initialize(AbstractRestSampler.kt:81) at com.netflix.governator.lifecycle.LifecycleMethods.methodInvoke(LifecycleMethods.java:313) ... 26 common frames omitted

Other important info: -OS: Windows -JVM: Openjdk-1.8.0.302-1

PallaviKrishnamurthy avatar May 05 '22 11:05 PallaviKrishnamurthy

Hi, thanks for your interest in EvoMaster. What database are you using? Postgres? MySQL? H2? Do you have an example of any of your SQL tables in which the type NUMBER is used?

Neither Postgres nor MySQL seems to have a type called NUMBER.

@jgaleotti maybe something you could look into?

arcuri82 avatar May 05 '22 11:05 arcuri82

Hi @arcuri82, We are using oracle DB.

PallaviKrishnamurthy avatar May 06 '22 04:05 PallaviKrishnamurthy

Hi, ah, I see... sorry to hear you have to deal with Oracle DB :-(

I tried to support Oracle in EM a couple of years ago, but it was a nightmare. not just from a technical perspective, but also legal one (ie, due to its license).

We might support Oracle DB in future, but, to be honest, not any time soon, at least until Oracle provides a version that is "safe" to use for open-source projects.

For your case, I recommend to disable the SQL support, ie, do not pass a SQL connection to the EM Driver.

At any rate, we would need to provide a better error message

arcuri82 avatar May 06 '22 06:05 arcuri82

Hi @arcuri82, Thank you for addressing the query.

PallaviKrishnamurthy avatar May 06 '22 07:05 PallaviKrishnamurthy