1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package org.eclipse.jgit.logging;
-
- import static org.junit.Assert.assertEquals;
- import static org.junit.Assert.assertFalse;
- import static org.junit.Assert.assertTrue;
-
- import org.junit.Test;
- import java.util.List;
-
- /**
- * Tests for performance log context utilities.
- */
- public class PerformanceLogContextTest {
-
- @Test
- public void testAddEvent() {
- PerformanceLogRecord record = new PerformanceLogRecord("record", 0);
- PerformanceLogContext.getInstance().addEvent(record);
-
- List<PerformanceLogRecord> eventRecords = PerformanceLogContext
- .getInstance().getEventRecords();
- assertTrue(eventRecords.contains(record));
- assertEquals(1, eventRecords.size());
- }
-
- @Test
- public void testCleanEvents() {
- PerformanceLogRecord record1 = new PerformanceLogRecord("record1", 0);
- PerformanceLogContext.getInstance().addEvent(record1);
-
- PerformanceLogRecord record2 = new PerformanceLogRecord("record2", 0);
- PerformanceLogContext.getInstance().addEvent(record2);
-
- PerformanceLogContext.getInstance().cleanEvents();
- List<PerformanceLogRecord> eventRecords = PerformanceLogContext
- .getInstance().getEventRecords();
- assertEquals(0, eventRecords.size());
- }
-
- @Test
- public void testAddEventsTwoThreads() throws InterruptedException {
- TestRunnable runnable1 = new TestRunnable("record1", 1);
- TestRunnable runnable2 = new TestRunnable("record2", 2);
-
- Thread thread1 = new Thread(runnable1);
- Thread thread2 = new Thread(runnable2);
-
- thread1.start();
- thread2.start();
-
- thread1.join();
- thread2.join();
- assertEquals(1, runnable1.getEventRecordsCount());
- assertEquals(1, runnable2.getEventRecordsCount());
- assertFalse(runnable1.isThrown());
- assertFalse(runnable2.isThrown());
- }
-
- private static class TestRunnable implements Runnable {
- private String name;
-
- private long durationMs;
-
- private long eventRecordsCount;
-
- private boolean thrown = false;
-
- public TestRunnable(String name, long durationMs) {
- this.name = name;
- this.durationMs = durationMs;
- }
-
- public boolean isThrown() {
- return thrown;
- }
-
- public long getEventRecordsCount() {
- return eventRecordsCount;
- }
-
- @Override
- public void run() {
- PerformanceLogRecord record = new PerformanceLogRecord(name,
- durationMs);
- try {
- PerformanceLogContext.getInstance().addEvent(record);
- eventRecordsCount = PerformanceLogContext.getInstance()
- .getEventRecords().size();
- PerformanceLogContext.getInstance().cleanEvents();
- } catch (Exception e) {
- thrown = true;
- }
- }
- }
- }
|