11package org.utbot.framework.util
22
3- import org.utbot.api.mock.UtMock
43import org.utbot.common.FileUtil
5- import org.utbot.engine.UtNativeStringWrapper
64import org.utbot.engine.jimpleBody
7- import org.utbot.engine.overrides.Boolean
8- import org.utbot.engine.overrides.Byte
9- import org.utbot.engine.overrides.Character
10- import org.utbot.engine.overrides.Class
11- import org.utbot.engine.overrides.Integer
12- import org.utbot.engine.overrides.Long
13- import org.utbot.engine.overrides.PrintStream
14- import org.utbot.engine.overrides.Short
15- import org.utbot.engine.overrides.System
16- import org.utbot.engine.overrides.UtArrayMock
17- import org.utbot.engine.overrides.UtLogicMock
18- import org.utbot.engine.overrides.UtOverrideMock
19- import org.utbot.engine.overrides.collections.AbstractCollection
20- import org.utbot.engine.overrides.collections.AssociativeArray
21- import org.utbot.engine.overrides.collections.Collection
22- import org.utbot.engine.overrides.collections.List as UtList
23- import org.utbot.engine.overrides.collections.RangeModifiableUnlimitedArray
24- import org.utbot.engine.overrides.collections.UtArrayList
25- import org.utbot.engine.overrides.collections.UtGenericAssociative
26- import org.utbot.engine.overrides.collections.UtGenericStorage
27- import org.utbot.engine.overrides.collections.UtHashMap
28- import org.utbot.engine.overrides.collections.UtHashSet
29- import org.utbot.engine.overrides.collections.UtLinkedList
30- import org.utbot.engine.overrides.collections.UtLinkedListWithNullableCheck
31- import org.utbot.engine.overrides.collections.UtOptional
32- import org.utbot.engine.overrides.collections.UtOptionalDouble
33- import org.utbot.engine.overrides.collections.UtOptionalInt
34- import org.utbot.engine.overrides.collections.UtOptionalLong
35- import org.utbot.engine.overrides.stream.*
36- import org.utbot.engine.overrides.strings.UtString
37- import org.utbot.engine.overrides.strings.UtStringBuffer
38- import org.utbot.engine.overrides.strings.UtStringBuilder
395import org.utbot.engine.pureJavaSignature
406import org.utbot.framework.plugin.api.ExecutableId
417import org.utbot.framework.plugin.services.JdkInfo
@@ -58,7 +24,7 @@ object SootUtils {
5824 * code.
5925 * @param forceReload forces to reinitialize Soot even if the [previousBuildDirs] equals to the class buildDir.
6026 */
61- fun runSoot (clazz : java.lang. Class <* >, forceReload : kotlin. Boolean , jdkInfo : JdkInfo ) {
27+ fun runSoot (clazz : Class <* >, forceReload : Boolean , jdkInfo : JdkInfo ) {
6228 val buildDir = FileUtil .locateClassPath(clazz) ? : FileUtil .isolateClassFiles(clazz)
6329 val buildDirPath = buildDir.toPath()
6430
@@ -72,7 +38,7 @@ object SootUtils {
7238 * @param forceReload forces to reinitialize Soot even if the [previousBuildDirs] equals to [buildDirPaths] and
7339 * [previousClassPath] equals to [classPath].
7440 */
75- fun runSoot (buildDirPaths : List <Path >, classPath : String? , forceReload : kotlin. Boolean , jdkInfo : JdkInfo ) {
41+ fun runSoot (buildDirPaths : List <Path >, classPath : String? , forceReload : Boolean , jdkInfo : JdkInfo ) {
7642 synchronized(this ) {
7743 if (buildDirPaths != previousBuildDirs || classPath != previousClassPath || forceReload) {
7844 initSoot(buildDirPaths, classPath, jdkInfo)
@@ -105,7 +71,7 @@ private fun initSoot(buildDirs: List<Path>, classpath: String?, jdkInfo: JdkInfo
10571 + if (! classpath.isNullOrEmpty()) File .pathSeparator + " $classpath " else " "
10672 )
10773 set_src_prec(Options .src_prec_only_class)
108- set_process_dir(buildDirs.map { " $it " })
74+ set_process_dir(buildDirs.map { it.toString() })
10975 set_keep_line_number(true )
11076 set_ignore_classpath_errors(true ) // gradle/build/resources/main does not exists, but it's not a problem
11177 set_output_format(Options .output_format_jimple)
@@ -141,69 +107,69 @@ fun jimpleBody(method: ExecutableId): JimpleBody =
141107 method.sootMethod.jimpleBody()
142108
143109
144- private fun addBasicClasses (vararg classes : java.lang. Class <* >) {
110+ private fun addBasicClasses (vararg classes : Class <* >) {
145111 classes.forEach {
146112 Scene .v().addBasicClass(it.name, SootClass .BODIES )
147113 }
148114}
149115
150116private val classesToLoad = arrayOf(
151- AbstractCollection ::class ,
152- UtMock ::class ,
153- UtOverrideMock ::class ,
154- UtLogicMock ::class ,
155- UtArrayMock ::class ,
156- Boolean ::class ,
157- Byte ::class ,
158- Character ::class ,
159- Class ::class ,
160- Integer ::class ,
161- Long ::class ,
162- Short ::class ,
163- System ::class ,
164- UtOptional ::class ,
165- UtOptionalInt ::class ,
166- UtOptionalLong ::class ,
167- UtOptionalDouble ::class ,
168- UtArrayList ::class ,
169- UtArrayList .UtArrayListIterator ::class ,
170- UtLinkedList ::class ,
171- UtLinkedListWithNullableCheck ::class ,
172- UtLinkedList .UtLinkedListIterator ::class ,
173- UtLinkedList .ReverseIteratorWrapper ::class ,
174- UtHashSet ::class ,
175- UtHashSet .UtHashSetIterator ::class ,
176- UtHashMap ::class ,
177- UtHashMap .Entry ::class ,
178- UtHashMap .LinkedEntryIterator ::class ,
179- UtHashMap .LinkedEntrySet ::class ,
180- UtHashMap .LinkedHashIterator ::class ,
181- UtHashMap .LinkedKeyIterator ::class ,
182- UtHashMap .LinkedKeySet ::class ,
183- UtHashMap .LinkedValueIterator ::class ,
184- UtHashMap .LinkedValues ::class ,
185- RangeModifiableUnlimitedArray ::class ,
186- AssociativeArray ::class ,
187- UtGenericStorage ::class ,
188- UtGenericAssociative ::class ,
189- PrintStream ::class ,
190- UtNativeStringWrapper ::class ,
191- UtString ::class ,
192- UtStringBuilder ::class ,
193- UtStringBuffer ::class ,
194- Stream ::class ,
195- Arrays ::class ,
196- Collection ::class ,
197- UtList ::class ,
198- UtStream ::class ,
199- UtIntStream ::class ,
200- UtLongStream ::class ,
201- UtDoubleStream ::class ,
202- UtStream .UtStreamIterator ::class ,
203- UtIntStream .UtIntStreamIterator ::class ,
204- UtLongStream .UtLongStreamIterator ::class ,
205- UtDoubleStream .UtDoubleStreamIterator ::class ,
206- IntStream ::class ,
207- LongStream ::class ,
208- DoubleStream ::class ,
117+ org.utbot.engine.overrides.collections. AbstractCollection ::class ,
118+ org.utbot.api.mock. UtMock ::class ,
119+ org.utbot.engine.overrides. UtOverrideMock ::class ,
120+ org.utbot.engine.overrides. UtLogicMock ::class ,
121+ org.utbot.engine.overrides. UtArrayMock ::class ,
122+ org.utbot.engine.overrides. Boolean ::class ,
123+ org.utbot.engine.overrides. Byte ::class ,
124+ org.utbot.engine.overrides. Character ::class ,
125+ org.utbot.engine.overrides. Class ::class ,
126+ org.utbot.engine.overrides. Integer ::class ,
127+ org.utbot.engine.overrides. Long ::class ,
128+ org.utbot.engine.overrides. Short ::class ,
129+ org.utbot.engine.overrides. System ::class ,
130+ org.utbot.engine.overrides.collections. UtOptional ::class ,
131+ org.utbot.engine.overrides.collections. UtOptionalInt ::class ,
132+ org.utbot.engine.overrides.collections. UtOptionalLong ::class ,
133+ org.utbot.engine.overrides.collections. UtOptionalDouble ::class ,
134+ org.utbot.engine.overrides.collections. UtArrayList ::class ,
135+ org.utbot.engine.overrides.collections. UtArrayList .UtArrayListIterator ::class ,
136+ org.utbot.engine.overrides.collections. UtLinkedList ::class ,
137+ org.utbot.engine.overrides.collections. UtLinkedListWithNullableCheck ::class ,
138+ org.utbot.engine.overrides.collections. UtLinkedList .UtLinkedListIterator ::class ,
139+ org.utbot.engine.overrides.collections. UtLinkedList .ReverseIteratorWrapper ::class ,
140+ org.utbot.engine.overrides.collections. UtHashSet ::class ,
141+ org.utbot.engine.overrides.collections. UtHashSet .UtHashSetIterator ::class ,
142+ org.utbot.engine.overrides.collections. UtHashMap ::class ,
143+ org.utbot.engine.overrides.collections. UtHashMap .Entry ::class ,
144+ org.utbot.engine.overrides.collections. UtHashMap .LinkedEntryIterator ::class ,
145+ org.utbot.engine.overrides.collections. UtHashMap .LinkedEntrySet ::class ,
146+ org.utbot.engine.overrides.collections. UtHashMap .LinkedHashIterator ::class ,
147+ org.utbot.engine.overrides.collections. UtHashMap .LinkedKeyIterator ::class ,
148+ org.utbot.engine.overrides.collections. UtHashMap .LinkedKeySet ::class ,
149+ org.utbot.engine.overrides.collections. UtHashMap .LinkedValueIterator ::class ,
150+ org.utbot.engine.overrides.collections. UtHashMap .LinkedValues ::class ,
151+ org.utbot.engine.overrides.collections. RangeModifiableUnlimitedArray ::class ,
152+ org.utbot.engine.overrides.collections. AssociativeArray ::class ,
153+ org.utbot.engine.overrides.collections. UtGenericStorage ::class ,
154+ org.utbot.engine.overrides.collections. UtGenericAssociative ::class ,
155+ org.utbot.engine.overrides. PrintStream ::class ,
156+ org.utbot.engine. UtNativeStringWrapper ::class ,
157+ org.utbot.engine.overrides.strings. UtString ::class ,
158+ org.utbot.engine.overrides.strings. UtStringBuilder ::class ,
159+ org.utbot.engine.overrides.strings. UtStringBuffer ::class ,
160+ org.utbot.engine.overrides.stream. Stream ::class ,
161+ org.utbot.engine.overrides.stream. Arrays ::class ,
162+ org.utbot.engine.overrides.collections. Collection ::class ,
163+ org.utbot.engine.overrides.collections. List ::class ,
164+ org.utbot.engine.overrides.stream. UtStream ::class ,
165+ org.utbot.engine.overrides.stream. UtIntStream ::class ,
166+ org.utbot.engine.overrides.stream. UtLongStream ::class ,
167+ org.utbot.engine.overrides.stream. UtDoubleStream ::class ,
168+ org.utbot.engine.overrides.stream. UtStream .UtStreamIterator ::class ,
169+ org.utbot.engine.overrides.stream. UtIntStream .UtIntStreamIterator ::class ,
170+ org.utbot.engine.overrides.stream. UtLongStream .UtLongStreamIterator ::class ,
171+ org.utbot.engine.overrides.stream. UtDoubleStream .UtDoubleStreamIterator ::class ,
172+ org.utbot.engine.overrides.stream. IntStream ::class ,
173+ org.utbot.engine.overrides.stream. LongStream ::class ,
174+ org.utbot.engine.overrides.stream. DoubleStream ::class ,
209175).map { it.java }.toTypedArray()
0 commit comments