1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 16:28:12 -07:00

Forgot simple case.

This commit is contained in:
Cedric Beust 2016-06-11 14:54:14 -07:00
parent e276f3b6d5
commit cd77dc39a4
2 changed files with 15 additions and 4 deletions

View file

@ -187,6 +187,14 @@ class TaskManager @Inject constructor(val args: Args,
val toProcess = ArrayList(allTaskInfos)
val seen = HashSet(allTaskInfos)
val newTasks = hashSetOf<TaskInfo>()
fun maybeAdd(taskInfo: TaskInfo) {
if (!seen.contains(taskInfo)) {
newTasks.add(taskInfo)
seen.add(taskInfo)
}
}
while (toProcess.any()) {
toProcess.forEach { ti ->
val project = projectMap[ti.project]
@ -197,15 +205,17 @@ class TaskManager @Inject constructor(val args: Args,
val tiDep = TaskInfo(depProject.name, ti.taskName)
allTaskInfos.add(tiDep)
addEdge(ti, tiDep)
if (!seen.contains(tiDep)) {
newTasks.add(tiDep)
seen.add(tiDep)
}
maybeAdd(tiDep)
}
} else {
allTaskInfos.add(ti)
addNode(ti)
}
} else {
// No project specified for this task, run that task in all the projects
projects.forEach {
maybeAdd(TaskInfo(it.name, ti.taskName))
}
}
}
toProcess.clear()

View file

@ -20,6 +20,7 @@ class BuildOrderTest @Inject constructor(val taskManager: TaskManager) {
@DataProvider
fun tasks(): Array<Array<out Any>> {
return arrayOf(
arrayOf(listOf("assemble"), listOf("p1:assemble", "p2:assemble", "p3:assemble")),
arrayOf(listOf("p1:assemble"), listOf("p1:assemble")),
arrayOf(listOf("p2:assemble"), listOf("p1:assemble", "p2:assemble")),
arrayOf(listOf("p3:assemble"), listOf("p1:assemble", "p2:assemble", "p3:assemble"))