From 6614bb203c723b2b7c7e057dd290ef45427b8b44 Mon Sep 17 00:00:00 2001 From: Kevin Mas Ruiz Date: Tue, 3 May 2016 18:38:10 +0200 Subject: [PATCH] solved problem with reversed references in graph --- .idea/libraries/kobalt_jar.xml | 9 +++++++ kobalt/wrapper/kobalt-wrapper.jar | Bin 8770 -> 8734 bytes .../com/beust/kobalt/internal/TaskManager.kt | 23 ++++++++++-------- .../beust/kobalt/internal/TaskManagerTest.kt | 11 +++++---- 4 files changed, 28 insertions(+), 15 deletions(-) create mode 100644 .idea/libraries/kobalt_jar.xml diff --git a/.idea/libraries/kobalt_jar.xml b/.idea/libraries/kobalt_jar.xml new file mode 100644 index 00000000..5d9bf9d5 --- /dev/null +++ b/.idea/libraries/kobalt_jar.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/kobalt/wrapper/kobalt-wrapper.jar b/kobalt/wrapper/kobalt-wrapper.jar index 266507164ab0b174bf05719e997f883ae82773de..08ababd0444844b291ce410fe8472de11e98fdbf 100644 GIT binary patch delta 200 zcmX@)GS7uKz?+#xgn@&DgF#wm(L~;vj0_W(t8BcYtKiANke#2Dm{X!xP?TSgT2zvm zT73GPztb%7 delta 237 zcmbQ|a>#`@z?+#xgn@&DgF!oY;Y8kD z1x5J 0) { log(3, " New batch of nodes to process: $toProcess") - toProcess.forEach { current -> + toProcess.filter { !seen.contains(toName(it)) }.forEach { current -> result.addNode(current) seen.add(toName(current)) -// if (! maybeAddEdge(current, invertedDependsOn, true, true)) { + if (! maybeAddEdge(current, invertedDependsOn, true, true)) { maybeAddEdge(current, dependsOn, true, false) -// } -// if (! maybeAddEdge(current, invertedRunAfter, false, true)) { + } + if (! maybeAddEdge(current, invertedRunAfter, false, true)) { maybeAddEdge(current, runAfter, false, false) -// } - if (! maybeAddEdge(current, invertedReverseDependsOn, true, false)) { - maybeAddEdge(current, reverseDependsOn, true, true) } - if (! maybeAddEdge(current, invertedRunBefore, false, false)) { - maybeAddEdge(current, runBefore, false, true) + if (! maybeAddEdge(current, reverseDependsOn, true, true)) { + maybeAddEdge(current, invertedReverseDependsOn, true, false) } + if (! maybeAddEdge(current, runBefore, false, true)) { + maybeAddEdge(current, invertedRunBefore, false, false) + } + + newToProcess.addAll(dependsOn[toName(current)].flatMap { nodeMap[it] }) + return@forEach Unit } toProcess.clear() toProcess.addAll(newToProcess) @@ -412,4 +415,4 @@ class TaskWorker(val tasks: List, val dryRun: Boolean, val messages: Muta // override val timeOut : Long = 10000 override val priority: Int = 0 -} \ No newline at end of file +} diff --git a/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt b/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt index 35dc1d57..71c35b32 100644 --- a/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt +++ b/src/test/kotlin/com/beust/kobalt/internal/TaskManagerTest.kt @@ -1,6 +1,7 @@ package com.beust.kobalt.internal import com.beust.kobalt.TestModule +import com.beust.kobalt.misc.KobaltLogger import com.google.common.collect.ArrayListMultimap import com.google.common.collect.Multimap import com.google.common.collect.TreeMultimap @@ -152,19 +153,19 @@ class TaskManagerTest @Inject constructor(val taskManager: TaskManager) { @Test fun jacocoTest() { +// KobaltLogger.LOG_LEVEL = 3 val runTasks = runTasks(listOf("test"), dependsOn = TreeMultimap.create().apply { + put("coverage", "test") put("test", "compileTest") put("test", "compile") put("compileTest", "compile") }, reverseDependsOn = TreeMultimap.create().apply { - put("coverage", "test") + put("enableJacoco", "test") + put("compileTest", "enableJacoco") }) - Assert.assertTrue(runTasks[0] == "coverage" && runTasks[1] == "compile" - || runTasks[1] == "coverage" && runTasks[0] == "compile") - Assert.assertEquals(runTasks[2], "compileTest") - Assert.assertEquals(runTasks[3], "test") + Assert.assertTrue(runTasks == listOf("compile", "compileTest", "enableJacoco", "test", "coverage")) } @Test