From d7400517bf2744937746ac2912c93eb8d172ed28 Mon Sep 17 00:00:00 2001 From: Kaushik Lingarkar Date: Mon, 6 Mar 2023 16:01:18 -0800 Subject: [PATCH] Fix RefDirectoryTest.testGetRefs_LooseSorting_Bug_348834 Since the first attempt to read a ref is not expected to trigger a RefsChangedEvent, update the test to ensure 'lastNotifiedModCnt' is not 0 before we start the actual work. The test has been passing luckily because createBareRepository in setUp() happens to bump 'lastNotifiedModCnt'. Change-Id: Ibd981f677920e8c3b965aa742fe669c42b8c1c93 Signed-off-by: Kaushik Lingarkar --- .../storage/file/RefDirectoryTest.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefDirectoryTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefDirectoryTest.java index 4b80f1897..f2b4b484b 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefDirectoryTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/RefDirectoryTest.java @@ -555,10 +555,6 @@ public void testGetRefs_LooseSortedCorrectly() throws IOException { @Test public void testGetRefs_LooseSorting_Bug_348834() throws IOException { Map refs; - - writeLooseRef("refs/heads/my/a+b", A); - writeLooseRef("refs/heads/my/a/b/c", B); - final int[] count = new int[1]; ListenerHandle listener = Repository.getGlobalListenerList() @@ -566,14 +562,27 @@ public void testGetRefs_LooseSorting_Bug_348834() throws IOException { count[0]++; }); + // RefsChangedEvent on the first attempt to read a ref is not expected + // to be triggered (See Iea3a5035b0a1410b80b09cf53387b22b78b18018), so + // create an update and fire pending events to ensure subsequent events + // are fired. + writeLooseRef("refs/heads/test", A); refs = refdir.getRefs(RefDatabase.ALL); + count[0] = 0; + int origSize = refs.size(); + + writeLooseRef("refs/heads/my/a+b", A); + writeLooseRef("refs/heads/my/a/b/c", B); + refs = refdir.getRefs(RefDatabase.ALL); - listener.remove(); - assertEquals(1, count[0]); // Bug 348834 multiple RefsChangedEvents - assertEquals(2, refs.size()); + assertEquals(1, count[0]); + assertEquals(2, refs.size() - origSize); assertEquals(A, refs.get("refs/heads/my/a+b").getObjectId()); assertEquals(B, refs.get("refs/heads/my/a/b/c").getObjectId()); + refs = refdir.getRefs(RefDatabase.ALL); + assertEquals(1, count[0]); // Bug 348834 multiple RefsChangedEvents + listener.remove(); } @Test