override fun run()

in src/main/kotlin/org/jetbrains/kotlin/tools/gradleimportcmd/TestSequentialImports.kt [9:34]


    override fun run(args: List<String>, workingDir: String?) {
        importProject(projectPath, jdkPath, false, "_initial_import")?.let {
            // set delegation mode and save projects internally
            setDelegationMode(projectPath, it, true)
            System.gc()
            val usedMemoryFirstImport = MemoryUtil.getUsedMemory()
            importProject(projectPath, jdkPath, false, "_first_import")
            val imlFilesBefore = readStoredConfigFiles(projectPath)

            importProject(projectPath, jdkPath, false, "_second_import")
            val imlFilesAfter = readStoredConfigFiles(projectPath)
            val usedMemoryAfterAllImports = MemoryUtil.getUsedMemory()

            System.gc()
            reportStatistics("memory_increase_after_sequential_imports", ""+(usedMemoryAfterAllImports - usedMemoryFirstImport))
            if (usedMemoryAfterAllImports - usedMemoryFirstImport > 10 * 1024 * 1024) {
                printMessage("Amount of used memory increased ${usedMemoryAfterAllImports - usedMemoryFirstImport} bytes after sequential imports.", MessageStatus.ERROR)
            }

            if (imlFilesAfter != imlFilesBefore) {
                printMessage("Content of stored iml files changed after sequential reimports.")
                //TODO implement smarter comparison
                TODO("NOT IMPLEMENTED")
            }
        }
    }