Package net.floodlightcontroller.debugcounter

Source Code of net.floodlightcontroller.debugcounter.CounterHierarchyPutTest

package net.floodlightcontroller.debugcounter;

import java.util.concurrent.ConcurrentHashMap;

import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import net.floodlightcontroller.debugcounter.DebugCounter.CounterIndexStore;
import net.floodlightcontroller.debugcounter.DebugCounter.RetCtrInfo;
import net.floodlightcontroller.test.FloodlightTestCase;

public class CounterHierarchyPutTest extends FloodlightTestCase {
    DebugCounter dc;
    protected static Logger log = LoggerFactory.getLogger(CounterHierarchyPutTest.class);

    ConcurrentHashMap<String, ConcurrentHashMap<String, CounterIndexStore>> mctr;
    RetCtrInfo exp;

    @Override
    @Before
    public void setUp() throws Exception {
        dc = new DebugCounter();
        mctr = dc.moduleCounters;
        mctr.put("linkd", new ConcurrentHashMap<String, CounterIndexStore>());
        mctr.get("linkd").put("linkevent", dc.new CounterIndexStore(24, null));
        mctr.put("switch", new ConcurrentHashMap<String, CounterIndexStore>());
        exp = dc.new RetCtrInfo();
    }

    @Test
    public void testHierarchicalPut() {
        String counterName = "100hp";
        RetCtrInfo rci = dc.getCounterId("switch", counterName);
        exp.allLevelsFound = false;
        exp.hierarchical = false;
        exp.levels = counterName.split("/");
        printRCI("got ==>", rci);
        printRCI("exp ==>", exp);
        assertEquals(rci, exp);
        // add and then check for first level of hierarchy
        dc.addToModuleCounterHierarchy("switch", 45, rci);
        rci = dc.getCounterId("switch", counterName);
        exp.allLevelsFound = true;
        exp.foundUptoLevel = 1;
        exp.hierarchical = false;
        exp.ctrIds[0] = 45;
        exp.levels = counterName.split("/");
        printRCI("got ==>", rci);
        printRCI("exp ==>", exp);
        assertEquals(rci, exp);

        counterName = "100hp/pktin";
        rci = dc.getCounterId("switch", counterName);
        exp.allLevelsFound = false;
        exp.hierarchical = true;
        exp.levels = counterName.split("/");
        exp.ctrIds[0] = 45;
        printRCI("got ==>", rci);
        printRCI("exp ==>", exp);
        assertEquals(rci, exp);
        dc.printAllCounterIds();
        // add and then check for 2nd level of hierarchy
        dc.addToModuleCounterHierarchy("switch", 77, rci);
        rci = dc.getCounterId("switch", counterName);
        exp.allLevelsFound = true;
        exp.foundUptoLevel = 2;
        exp.hierarchical = true;
        exp.ctrIds[0] = 45;
        exp.ctrIds[1] = 77;
        exp.levels = counterName.split("/");
        printRCI("got ==>", rci);
        printRCI("exp ==>", exp);
        dc.printAllCounterIds();
        assertEquals(rci, exp);

        counterName = "100hp/pktin/drops";
        rci = dc.getCounterId("switch", counterName);
        exp.allLevelsFound = false;
        exp.hierarchical = true;
        exp.levels = counterName.split("/");
        exp.ctrIds[0] = 45;
        exp.ctrIds[1] = 77;
        exp.foundUptoLevel = 2;
        printRCI("got ==>", rci);
        printRCI("exp ==>", exp);
        assertEquals(rci, exp);
        dc.printAllCounterIds();
        // add and then check for 3rd level of hierarchy
        dc.addToModuleCounterHierarchy("switch", 132, rci);
        rci = dc.getCounterId("switch", counterName);
        exp.allLevelsFound = true;
        exp.foundUptoLevel = 3;
        exp.hierarchical = true;
        exp.ctrIds[0] = 45;
        exp.ctrIds[1] = 77;
        exp.ctrIds[2] = 132;
        exp.levels = counterName.split("/");
        printRCI("got ==>", rci);
        printRCI("exp ==>", exp);
        dc.printAllCounterIds();
        assertEquals(rci, exp);

    }

    @Test
    public void testOtherTest() {
        Integer[] test = new Integer[2000];
        log.info("it is: {}", test[56]);
    }

    private void printRCI(String hdr, RetCtrInfo rci) {
        log.info(hdr+"found={}, hcy={}, foundUL= {}, idsFound={}, incomingLevels={}",
                 new Object[] {rci.allLevelsFound, rci.hierarchical,
                               rci.foundUptoLevel,
                               rci.ctrIds, rci.levels});

    }

}
TOP

Related Classes of net.floodlightcontroller.debugcounter.CounterHierarchyPutTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.