/*********************************************************************************************************************** * Copyright (C) 2010-2013 by the Stratosphere project (http://stratosphere.eu) * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. **********************************************************************************************************************/ package eu.stratosphere.nephele.profiling.types; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.junit.Test; import eu.stratosphere.nephele.jobgraph.JobID; import eu.stratosphere.nephele.managementgraph.ManagementVertexID; import eu.stratosphere.nephele.util.ManagementTestUtils; /** * This test checks the proper serialization and deserialization of profiling events. * */ public class ProfilingTypesTest { private static final int PROFILING_INTERVAL = 4321; private static final int IOWAIT_CPU = 10; private static final int IDLE_CPU = 11; private static final int USER_CPU = 12; private static final int SYSTEM_CPU = 13; private static final int HARD_IRQ_CPU = 14; private static final int SOFT_IRQ_CPU = 15; private static final long TOTAL_MEMORY = 10001L; private static final long FREE_MEMORY = 10002L; private static final long BUFFERED_MEMORY = 10003L; private static final long CACHED_MEMORY = 10004L; private static final long CACHED_SWAP_MEMORY = 10005L; private static final long RECEIVED_BYTES = 100006L; private static final long TRANSMITTED_BYTES = 100007L; private static final long TIMESTAMP = 100008L; private static final long PROFILING_TIMESTAMP = 100009L; private static final String INSTANCE_NAME = "Test Instance"; private static final int GATE_INDEX = 7; private static final int NO_RECORD_AVAILABLE_COUNTER = 999; private static final int CHANNEL_CAPACITY_EXHAUSTED = 998; private static final int USER_TIME = 17; private static final int SYSTEM_TIME = 18; private static final int BLOCKED_TIME = 19; private static final int WAITED_TIME = 20; /** * Tests serialization/deserialization for {@link InstanceSummaryProfilingEvent}. */ @Test public void testInstanceSummaryProfilingEvent() { final InstanceSummaryProfilingEvent orig = new InstanceSummaryProfilingEvent(PROFILING_INTERVAL, IOWAIT_CPU, IDLE_CPU, USER_CPU, SYSTEM_CPU, HARD_IRQ_CPU, SOFT_IRQ_CPU, TOTAL_MEMORY, FREE_MEMORY, BUFFERED_MEMORY, CACHED_MEMORY, CACHED_SWAP_MEMORY, RECEIVED_BYTES, TRANSMITTED_BYTES, new JobID(), TIMESTAMP, PROFILING_TIMESTAMP); final InstanceSummaryProfilingEvent copy = (InstanceSummaryProfilingEvent) ManagementTestUtils.createCopy(orig); assertEquals(orig.getProfilingInterval(), copy.getProfilingInterval()); assertEquals(orig.getIOWaitCPU(), copy.getIOWaitCPU()); assertEquals(orig.getIdleCPU(), copy.getIdleCPU()); assertEquals(orig.getUserCPU(), copy.getUserCPU()); assertEquals(orig.getSystemCPU(), copy.getSystemCPU()); assertEquals(orig.getHardIrqCPU(), copy.getHardIrqCPU()); assertEquals(orig.getSoftIrqCPU(), copy.getSoftIrqCPU()); assertEquals(orig.getTotalMemory(), copy.getTotalMemory()); assertEquals(orig.getFreeMemory(), copy.getFreeMemory()); assertEquals(orig.getBufferedMemory(), copy.getBufferedMemory()); assertEquals(orig.getCachedMemory(), copy.getCachedMemory()); assertEquals(orig.getCachedSwapMemory(), copy.getCachedSwapMemory()); assertEquals(orig.getReceivedBytes(), copy.getReceivedBytes()); assertEquals(orig.getTransmittedBytes(), copy.getTransmittedBytes()); assertEquals(orig.getJobID(), copy.getJobID()); assertEquals(orig.getTimestamp(), copy.getTimestamp()); assertEquals(orig.getProfilingTimestamp(), copy.getProfilingTimestamp()); assertEquals(orig.hashCode(), copy.hashCode()); assertTrue(orig.equals(copy)); } /** * Tests serialization/deserialization for {@link SingleInstanceProfilingEvent}. */ @Test public void testSingleInstanceProfilingEvent() { final SingleInstanceProfilingEvent orig = new SingleInstanceProfilingEvent(PROFILING_INTERVAL, IOWAIT_CPU, IDLE_CPU, USER_CPU, SYSTEM_CPU, HARD_IRQ_CPU, SOFT_IRQ_CPU, TOTAL_MEMORY, FREE_MEMORY, BUFFERED_MEMORY, CACHED_MEMORY, CACHED_SWAP_MEMORY, RECEIVED_BYTES, TRANSMITTED_BYTES, new JobID(), TIMESTAMP, PROFILING_TIMESTAMP, INSTANCE_NAME); final SingleInstanceProfilingEvent copy = (SingleInstanceProfilingEvent) ManagementTestUtils.createCopy(orig); assertEquals(orig.getProfilingInterval(), copy.getProfilingInterval()); assertEquals(orig.getIOWaitCPU(), copy.getIOWaitCPU()); assertEquals(orig.getIdleCPU(), copy.getIdleCPU()); assertEquals(orig.getUserCPU(), copy.getUserCPU()); assertEquals(orig.getSystemCPU(), copy.getSystemCPU()); assertEquals(orig.getHardIrqCPU(), copy.getHardIrqCPU()); assertEquals(orig.getSoftIrqCPU(), copy.getSoftIrqCPU()); assertEquals(orig.getTotalMemory(), copy.getTotalMemory()); assertEquals(orig.getFreeMemory(), copy.getFreeMemory()); assertEquals(orig.getBufferedMemory(), copy.getBufferedMemory()); assertEquals(orig.getCachedMemory(), copy.getCachedMemory()); assertEquals(orig.getCachedSwapMemory(), copy.getCachedSwapMemory()); assertEquals(orig.getReceivedBytes(), copy.getReceivedBytes()); assertEquals(orig.getTransmittedBytes(), copy.getTransmittedBytes()); assertEquals(orig.getJobID(), copy.getJobID()); assertEquals(orig.getTimestamp(), copy.getTimestamp()); assertEquals(orig.getProfilingTimestamp(), copy.getProfilingTimestamp()); assertEquals(orig.getInstanceName(), copy.getInstanceName()); assertEquals(orig.hashCode(), copy.hashCode()); assertTrue(orig.equals(copy)); } /** * Tests serialization/deserialization for {@link InputGateProfilingEvent}. */ @Test public void testInputGateProfilingEvent() { final InputGateProfilingEvent orig = new InputGateProfilingEvent(GATE_INDEX, NO_RECORD_AVAILABLE_COUNTER, new ManagementVertexID(), PROFILING_INTERVAL, new JobID(), TIMESTAMP, PROFILING_TIMESTAMP); final InputGateProfilingEvent copy = (InputGateProfilingEvent) ManagementTestUtils.createCopy(orig); assertEquals(orig.getGateIndex(), copy.getGateIndex()); assertEquals(orig.getNoRecordsAvailableCounter(), copy.getNoRecordsAvailableCounter()); assertEquals(orig.getVertexID(), copy.getVertexID()); assertEquals(orig.getProfilingInterval(), copy.getProfilingInterval()); assertEquals(orig.getJobID(), copy.getJobID()); assertEquals(orig.getTimestamp(), copy.getTimestamp()); assertEquals(orig.getProfilingTimestamp(), copy.getProfilingTimestamp()); assertEquals(orig.hashCode(), copy.hashCode()); assertTrue(orig.equals(copy)); } /** * Tests serialization/deserialization for {@link OutputGateProfilingEvent}. */ @Test public void testOutputGateProfilingEvent() { final OutputGateProfilingEvent orig = new OutputGateProfilingEvent(GATE_INDEX, CHANNEL_CAPACITY_EXHAUSTED, new ManagementVertexID(), PROFILING_INTERVAL, new JobID(), TIMESTAMP, PROFILING_TIMESTAMP); final OutputGateProfilingEvent copy = (OutputGateProfilingEvent) ManagementTestUtils.createCopy(orig); assertEquals(orig.getGateIndex(), copy.getGateIndex()); assertEquals(orig.getChannelCapacityExhausted(), copy.getChannelCapacityExhausted()); assertEquals(orig.getVertexID(), copy.getVertexID()); assertEquals(orig.getProfilingInterval(), copy.getProfilingInterval()); assertEquals(orig.getJobID(), copy.getJobID()); assertEquals(orig.getTimestamp(), copy.getTimestamp()); assertEquals(orig.getProfilingTimestamp(), copy.getProfilingTimestamp()); assertEquals(orig.hashCode(), copy.hashCode()); assertTrue(orig.equals(copy)); } /** * Tests serialization/deserialization for {@link ThreadProfilingEvent}. */ @Test public void testThreadProfilingEvent() { final ThreadProfilingEvent orig = new ThreadProfilingEvent(USER_TIME, SYSTEM_TIME, BLOCKED_TIME, WAITED_TIME, new ManagementVertexID(), PROFILING_INTERVAL, new JobID(), TIMESTAMP, PROFILING_TIMESTAMP); final ThreadProfilingEvent copy = (ThreadProfilingEvent) ManagementTestUtils.createCopy(orig); assertEquals(orig.getUserTime(), copy.getUserTime()); assertEquals(orig.getSystemTime(), copy.getSystemTime()); assertEquals(orig.getBlockedTime(), copy.getBlockedTime()); assertEquals(orig.getWaitedTime(), copy.getWaitedTime()); assertEquals(orig.getVertexID(), copy.getVertexID()); assertEquals(orig.getProfilingInterval(), copy.getProfilingInterval()); assertEquals(orig.getJobID(), copy.getJobID()); assertEquals(orig.getTimestamp(), copy.getTimestamp()); assertEquals(orig.getProfilingTimestamp(), copy.getProfilingTimestamp()); assertEquals(orig.hashCode(), copy.hashCode()); assertTrue(orig.equals(copy)); } }