/* * Copyright (c) 2014 EMC Corporation * All Rights Reserved */ package com.emc.storageos.systemservices.impl.logsvc; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import static org.junit.Assert.assertTrue; import com.emc.storageos.systemservices.impl.logsvc.merger.LogStreamMerger; import com.emc.vipr.model.sys.logging.LogRequest; public class LogStreamMergerTest { private static volatile LogSvcPropertiesLoader propertiesLoader; private static final Logger logger = LoggerFactory.getLogger(LogStreamMergerTest.class); @BeforeClass public static void setup() { propertiesLoader = new LogSvcPropertiesLoader() { public List<String> getLogFilePaths() { return Arrays.asList("/opt/storageos/logs/*.log"); } public List<String> getExcludedLogFilePaths() { return Arrays.asList("/opt/storageos/logs/*native.log"); } }; } /** * Test if merge process can result correct content */ @Test @Ignore public void testMergeSortCorrectness() throws Exception { List<String> svcs = new ArrayList<String>() { { add("controllersvc"); add("coordinatorsvc"); } }; LogRequest req = new LogRequest.Builder().baseNames(svcs).build(); LogStreamMerger merger = new LogStreamMerger(req, propertiesLoader); long prevTime = -1; while (true) { LogMessage log = merger.readNextMergedLogMessage(); if (log == null) { break; } long time = log.getTime(); assertTrue("Output of StreamMerger should be sorted.", prevTime <= time); prevTime = time; } } }