mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-26 00:17:11 -07:00
More TaskManager tests.
This commit is contained in:
parent
aa16b8f835
commit
0f34f548a9
2 changed files with 139 additions and 46 deletions
|
@ -212,25 +212,39 @@ class TaskManager @Inject constructor(val args: Args,
|
|||
}
|
||||
|
||||
log(LOG_LEVEL, " Current batch to process: $toProcess")
|
||||
val invertedReverseDependsOn = reverseMultimap(reverseDependsOn)
|
||||
|
||||
//
|
||||
// Move dependsOn + reverseDependsOn in one multimap called allDepends
|
||||
//
|
||||
val allDependsOn = ArrayListMultimap.create<String, String>()
|
||||
dependsOn.keySet().forEach { key ->
|
||||
dependsOn[key].forEach { value ->
|
||||
allDependsOn.put(key, value)
|
||||
}
|
||||
}
|
||||
reverseDependsOn.keySet().forEach { key ->
|
||||
reverseDependsOn[key].forEach { value ->
|
||||
allDependsOn.put(value, key)
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Process each node one by one
|
||||
//
|
||||
toProcess.forEach { taskInfo ->
|
||||
val taskName = taskInfo.taskName
|
||||
log(LOG_LEVEL, " ***** Current node: $taskName")
|
||||
nodeMap[taskName].forEach { processAlways(always, it) }
|
||||
nodeMap[taskName].forEach {
|
||||
result.addNode(it)
|
||||
processAlways(always, it)
|
||||
}
|
||||
|
||||
//
|
||||
// dependsOn and reverseDependsOn are considered for all tasks, explicit and implicit
|
||||
//
|
||||
dependsOn[taskName].forEach { to ->
|
||||
allDependsOn[taskName].forEach { to ->
|
||||
addEdge(result, taskName, to, newToProcess, "dependsOn")
|
||||
}
|
||||
reverseDependsOn[taskName].forEach { from ->
|
||||
addEdge(result, from, taskName, newToProcess, "reverseDependsOn")
|
||||
}
|
||||
invertedReverseDependsOn[taskName].forEach { to ->
|
||||
addEdge(result, taskName, to, newToProcess, "invertedReverseDependsOn")
|
||||
}
|
||||
|
||||
//
|
||||
// runBefore and runAfter (task ordering) are only considered for explicit tasks (tasks that were
|
||||
|
@ -258,15 +272,15 @@ class TaskManager @Inject constructor(val args: Args,
|
|||
return result
|
||||
}
|
||||
|
||||
private fun reverseMultimap(mm: Multimap<String, String>) : Multimap<String, String> {
|
||||
val result = TreeMultimap.create<String, String>()
|
||||
mm.keySet().forEach { key ->
|
||||
mm[key].forEach { value ->
|
||||
result.put(value, key)
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
// private fun reverseMultimap(mm: Multimap<String, String>) : Multimap<String, String> {
|
||||
// val result = TreeMultimap.create<String, String>()
|
||||
// mm.keySet().forEach { key ->
|
||||
// mm[key].forEach { value ->
|
||||
// result.put(value, key)
|
||||
// }
|
||||
// }
|
||||
// return result
|
||||
// }
|
||||
|
||||
/**
|
||||
* Create a dynamic graph representing all the tasks that need to be run.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue