From b7998a157a5b7b712ccca163eecbee6c8431ff87 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Tue, 29 May 2018 20:24:13 +0300 Subject: [PATCH] git: add logging for flaky GitCherryPickNoAutoCommitTest --- .../openapi/vcs/changes/ChangeListManagerImpl.java | 14 ++++++++++++++ .../cherrypick/GitCherryPickNoAutoCommitTest.kt | 2 ++ .../tests/git4idea/cherrypick/GitCherryPickTest.kt | 1 + .../tests/git4idea/test/GitTestAssertions.kt | 4 ++++ 4 files changed, 21 insertions(+) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeListManagerImpl.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeListManagerImpl.java index 7358c8dc60e3..b48a3ea94aad 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeListManagerImpl.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeListManagerImpl.java @@ -159,6 +159,10 @@ public class ChangeListManagerImpl extends ChangeListManagerEx implements Projec @Override public void scheduleAutomaticEmptyChangeListDeletion(@NotNull LocalChangeList oldList, boolean silently) { synchronized (myDataLock) { + if (LOG.isDebugEnabled()) { + LOG.debug(String.format("Schedule empty changelist deletion: %s, silently = %s", oldList.getName(), silently)); + } + if (silently) { myListsToBeDeletedSilently.add(oldList.getId()); } @@ -185,6 +189,11 @@ public class ChangeListManagerImpl extends ChangeListManagerEx implements Projec }; synchronized (myDataLock) { + if (LOG.isDebugEnabled()) { + LOG.debug(String.format("Empty changelist deletion, scheduled:\nsilently: %s\nasking: %s", + myListsToBeDeletedSilently, myListsToBeDeleted)); + } + myListsToBeDeleted.removeAll(myListsToBeDeletedSilently); listsToBeDeletedSilently = ContainerUtil.mapNotNull(myListsToBeDeletedSilently, toDeleteMapping); @@ -201,6 +210,11 @@ public class ChangeListManagerImpl extends ChangeListManagerEx implements Projec } myEmptyListDeletionScheduled = false; + + if (LOG.isDebugEnabled()) { + LOG.debug(String.format("Empty changelist deletion, to be deleted:\nsilently: %s\nasking: %s", + listsToBeDeletedSilently, listsToBeDeleted)); + } } if (myConfig.REMOVE_EMPTY_INACTIVE_CHANGELISTS == Value.DO_NOTHING_SILENTLY || diff --git a/plugins/git4idea/tests/git4idea/cherrypick/GitCherryPickNoAutoCommitTest.kt b/plugins/git4idea/tests/git4idea/cherrypick/GitCherryPickNoAutoCommitTest.kt index f40feba5fd4e..60e41ae649ab 100644 --- a/plugins/git4idea/tests/git4idea/cherrypick/GitCherryPickNoAutoCommitTest.kt +++ b/plugins/git4idea/tests/git4idea/cherrypick/GitCherryPickNoAutoCommitTest.kt @@ -49,6 +49,7 @@ class GitCherryPickNoAutoCommitTest : GitCherryPickTest() { assertLastMessage("fix #1\n\n(cherry picked from commit ${shortHash(commit)})") assertSuccessfulNotification("Cherry-pick successful", "${shortHash(commit)} fix #1") + changeListManager.assertNoChanges() changeListManager.waitScheduledChangelistDeletions() changeListManager.assertOnlyDefaultChangelist() } @@ -87,6 +88,7 @@ class GitCherryPickNoAutoCommitTest : GitCherryPickTest() { fix #1 (cherry picked from commit ${shortHash(commits[0])})""") + changeListManager.assertNoChanges() changeListManager.waitScheduledChangelistDeletions() changeListManager.assertOnlyDefaultChangelist() } diff --git a/plugins/git4idea/tests/git4idea/cherrypick/GitCherryPickTest.kt b/plugins/git4idea/tests/git4idea/cherrypick/GitCherryPickTest.kt index 69adfc3dbc1f..7f57cbeccb4a 100644 --- a/plugins/git4idea/tests/git4idea/cherrypick/GitCherryPickTest.kt +++ b/plugins/git4idea/tests/git4idea/cherrypick/GitCherryPickTest.kt @@ -82,6 +82,7 @@ abstract class GitCherryPickTest : GitSingleRepoTest() { } assertSuccessfulNotification("Cherry-pick successful", "${shortHash(commit)} on_master") + changeListManager.assertNoChanges() changeListManager.waitScheduledChangelistDeletions() changeListManager.assertOnlyDefaultChangelist() } diff --git a/plugins/git4idea/tests/git4idea/test/GitTestAssertions.kt b/plugins/git4idea/tests/git4idea/test/GitTestAssertions.kt index eec3ab42921a..fca609080151 100644 --- a/plugins/git4idea/tests/git4idea/test/GitTestAssertions.kt +++ b/plugins/git4idea/tests/git4idea/test/GitTestAssertions.kt @@ -99,6 +99,10 @@ fun GitPlatformTest.assertLogMessages(vararg messages: String) { } } +fun ChangeListManager.assertNoChanges() { + PlatformTestCase.assertEmpty("No changes is expected: ${allChanges.joinToString()}}", allChanges) +} + fun ChangeListManager.assertOnlyDefaultChangelist() { val DEFAULT = MockChangeListManager.DEFAULT_CHANGE_LIST_NAME PlatformTestCase.assertEquals("Only default changelist is expected among: ${dumpChangeLists()}", 1, changeListsNumber)