Support for OracleDB
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
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?
Hi @arcuri82, We are using oracle DB.
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
Hi @arcuri82, Thank you for addressing the query.