diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-06-06 11:05:00 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-06-06 11:05:00 +0200 |
commit | 251f60541439d0661c2aec5344c3dcc5b31686a0 (patch) | |
tree | 20926701f5c05986ff397428a515211cee25d089 /vespajlib/src/test | |
parent | ec755c18cfe7ef1c2ffbb1f9b78a857746bf9484 (diff) |
Revert "Revert "Emit a success factor from maintainers""
This reverts commit cd1b747b4f65fa3a6ed6aace23235db7591638c5.
Diffstat (limited to 'vespajlib/src/test')
3 files changed, 33 insertions, 15 deletions
diff --git a/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/JobControlTest.java b/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/JobControlTest.java index 139a2901cd3..01560c050ff 100644 --- a/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/JobControlTest.java +++ b/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/JobControlTest.java @@ -3,6 +3,8 @@ package com.yahoo.concurrent.maintenance; import org.junit.Test; +import java.util.concurrent.atomic.AtomicLong; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -19,9 +21,8 @@ public class JobControlTest { String job1 = "Job1"; String job2 = "Job2"; - JobMetrics metrics = new JobMetrics((job, instant) -> {}); - TestMaintainer maintainer1 = new TestMaintainer(job1, jobControl, metrics); - TestMaintainer maintainer2 = new TestMaintainer(job2, jobControl, metrics); + TestMaintainer maintainer1 = new TestMaintainer(job1, jobControl, new NoopJobMetrics()); + TestMaintainer maintainer2 = new TestMaintainer(job2, jobControl, new NoopJobMetrics()); assertEquals(2, jobControl.jobs().size()); assertTrue(jobControl.jobs().contains(job1)); assertTrue(jobControl.jobs().contains(job2)); @@ -62,7 +63,7 @@ public class JobControlTest { public void testJobControlMayDeactivateJobs() { JobControlStateMock state = new JobControlStateMock(); JobControl jobControl = new JobControl(state); - TestMaintainer mockMaintainer = new TestMaintainer(null, jobControl, new JobMetrics((job, instant) -> {})); + TestMaintainer mockMaintainer = new TestMaintainer(null, jobControl, new NoopJobMetrics()); assertTrue(jobControl.jobs().contains("TestMaintainer")); @@ -80,4 +81,11 @@ public class JobControlTest { assertEquals(2, mockMaintainer.totalRuns()); } + private static class NoopJobMetrics extends JobMetrics { + + @Override + protected void recordCompletion(String job, Long incompleteRuns, double successFactor) { } + + } + } diff --git a/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/MaintainerTest.java b/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/MaintainerTest.java index e881d4b3ff6..d2db380f4a1 100644 --- a/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/MaintainerTest.java +++ b/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/MaintainerTest.java @@ -42,35 +42,45 @@ public class MaintainerTest { @Test public void success_metric() { - AtomicLong consecutiveFailures = new AtomicLong(); - JobMetrics jobMetrics = new JobMetrics((job, count) -> consecutiveFailures.set(count)); + TestJobMetrics jobMetrics = new TestJobMetrics(); TestMaintainer maintainer = new TestMaintainer(null, jobControl, jobMetrics); // Maintainer fails twice in a row maintainer.successOnNextRun(false).run(); - assertEquals(1, consecutiveFailures.get()); + assertEquals(1, jobMetrics.consecutiveFailures.get()); maintainer.successOnNextRun(false).run(); - assertEquals(2, consecutiveFailures.get()); + assertEquals(2, jobMetrics.consecutiveFailures.get()); // Maintainer runs successfully maintainer.successOnNextRun(true).run(); - assertEquals(0, consecutiveFailures.get()); + assertEquals(0, jobMetrics.consecutiveFailures.get()); // Maintainer runs successfully again maintainer.run(); - assertEquals(0, consecutiveFailures.get()); + assertEquals(0, jobMetrics.consecutiveFailures.get()); // Maintainer throws maintainer.throwOnNextRun(new RuntimeException()).run(); - assertEquals(1, consecutiveFailures.get()); + assertEquals(1, jobMetrics.consecutiveFailures.get()); // Maintainer recovers maintainer.throwOnNextRun(null).run(); - assertEquals(0, consecutiveFailures.get()); + assertEquals(0, jobMetrics.consecutiveFailures.get()); // Lock exception is treated as a failure maintainer.throwOnNextRun(new UncheckedTimeoutException()).run(); - assertEquals(1, consecutiveFailures.get()); + assertEquals(1, jobMetrics.consecutiveFailures.get()); + } + + private static class TestJobMetrics extends JobMetrics { + + AtomicLong consecutiveFailures = new AtomicLong(); + + @Override + protected void recordCompletion(String job, Long incompleteRuns, double successFactor) { + consecutiveFailures.set(incompleteRuns); + } + } } diff --git a/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/TestMaintainer.java b/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/TestMaintainer.java index 44a00a37a83..7424b17cab2 100644 --- a/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/TestMaintainer.java +++ b/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/TestMaintainer.java @@ -33,10 +33,10 @@ class TestMaintainer extends Maintainer { } @Override - protected boolean maintain() { + protected double maintain() { if (exceptionToThrow != null) throw exceptionToThrow; totalRuns++; - return success; + return success ? 1.0 : 0.0; } } |