256 MockFastUnorderedElapsedCounterSource::current_ticks += 2 * NANOSECS_PER_SEC; |
256 MockFastUnorderedElapsedCounterSource::current_ticks += 2 * NANOSECS_PER_SEC; |
257 |
257 |
258 JfrNetworkUtilization::send_events(); |
258 JfrNetworkUtilization::send_events(); |
259 ASSERT_EQ(1u, MockEventNetworkUtilization::committed.size()); |
259 ASSERT_EQ(1u, MockEventNetworkUtilization::committed.size()); |
260 MockEventNetworkUtilization& e = MockEventNetworkUtilization::committed[0]; |
260 MockEventNetworkUtilization& e = MockEventNetworkUtilization::committed[0]; |
261 EXPECT_EQ(5, e.readRate); |
261 EXPECT_EQ(40, e.readRate); |
262 EXPECT_EQ(0, e.writeRate); |
262 EXPECT_EQ(0, e.writeRate); |
263 EXPECT_STREQ("eth0", e.iface.c_str()); |
263 EXPECT_STREQ("eth0", e.iface.c_str()); |
264 } |
264 } |
265 |
265 |
266 TEST_VM_F(JfrTestNetworkUtilization, RequestFunctionMultiple) { |
266 TEST_VM_F(JfrTestNetworkUtilization, RequestFunctionMultiple) { |
280 ASSERT_EQ(3u, MockEventNetworkUtilization::committed.size()); |
280 ASSERT_EQ(3u, MockEventNetworkUtilization::committed.size()); |
281 const MockEventNetworkUtilization& eth0_event = MockEventNetworkUtilization::get_committed("eth0"); |
281 const MockEventNetworkUtilization& eth0_event = MockEventNetworkUtilization::get_committed("eth0"); |
282 const MockEventNetworkUtilization& eth1_event = MockEventNetworkUtilization::get_committed("eth1"); |
282 const MockEventNetworkUtilization& eth1_event = MockEventNetworkUtilization::get_committed("eth1"); |
283 const MockEventNetworkUtilization& ppp0_event = MockEventNetworkUtilization::get_committed("ppp0"); |
283 const MockEventNetworkUtilization& ppp0_event = MockEventNetworkUtilization::get_committed("ppp0"); |
284 |
284 |
285 EXPECT_EQ(5, eth0_event.readRate); |
285 EXPECT_EQ(40, eth0_event.readRate); |
286 EXPECT_EQ(0, eth0_event.writeRate); |
286 EXPECT_EQ(0, eth0_event.writeRate); |
287 EXPECT_STREQ("eth0", eth0_event.iface.c_str()); |
287 EXPECT_STREQ("eth0", eth0_event.iface.c_str()); |
288 |
288 |
289 EXPECT_EQ(50, eth1_event.readRate); |
289 EXPECT_EQ(400, eth1_event.readRate); |
290 EXPECT_EQ(0, eth1_event.writeRate); |
290 EXPECT_EQ(0, eth1_event.writeRate); |
291 EXPECT_STREQ("eth1", eth1_event.iface.c_str()); |
291 EXPECT_STREQ("eth1", eth1_event.iface.c_str()); |
292 |
292 |
293 EXPECT_EQ(0, ppp0_event.readRate); |
293 EXPECT_EQ(0, ppp0_event.readRate); |
294 EXPECT_EQ(25, ppp0_event.writeRate); |
294 EXPECT_EQ(200, ppp0_event.writeRate); |
295 EXPECT_STREQ("ppp0", ppp0_event.iface.c_str()); |
295 EXPECT_STREQ("ppp0", ppp0_event.iface.c_str()); |
296 } |
296 } |
297 |
297 |
298 TEST_VM_F(JfrTestNetworkUtilization, InterfaceRemoved) { |
298 TEST_VM_F(JfrTestNetworkUtilization, InterfaceRemoved) { |
299 MockNetworkInterface& eth0 = MockJfrOSInterface::add_interface("eth0"); |
299 MockNetworkInterface& eth0 = MockJfrOSInterface::add_interface("eth0"); |
308 JfrNetworkUtilization::send_events(); |
308 JfrNetworkUtilization::send_events(); |
309 ASSERT_EQ(2u, MockEventNetworkUtilization::committed.size()); |
309 ASSERT_EQ(2u, MockEventNetworkUtilization::committed.size()); |
310 const MockEventNetworkUtilization& eth0_event = MockEventNetworkUtilization::get_committed("eth0"); |
310 const MockEventNetworkUtilization& eth0_event = MockEventNetworkUtilization::get_committed("eth0"); |
311 const MockEventNetworkUtilization& eth1_event = MockEventNetworkUtilization::get_committed("eth1"); |
311 const MockEventNetworkUtilization& eth1_event = MockEventNetworkUtilization::get_committed("eth1"); |
312 |
312 |
313 EXPECT_EQ(5, eth0_event.readRate); |
313 EXPECT_EQ(40, eth0_event.readRate); |
314 EXPECT_EQ(0, eth0_event.writeRate); |
314 EXPECT_EQ(0, eth0_event.writeRate); |
315 EXPECT_STREQ("eth0", eth0_event.iface.c_str()); |
315 EXPECT_STREQ("eth0", eth0_event.iface.c_str()); |
316 |
316 |
317 EXPECT_EQ(10, eth1_event.readRate); |
317 EXPECT_EQ(80, eth1_event.readRate); |
318 EXPECT_EQ(0, eth1_event.writeRate); |
318 EXPECT_EQ(0, eth1_event.writeRate); |
319 EXPECT_STREQ("eth1", eth1_event.iface.c_str()); |
319 EXPECT_STREQ("eth1", eth1_event.iface.c_str()); |
320 |
320 |
321 MockJfrOSInterface::remove_interface(eth0); |
321 MockJfrOSInterface::remove_interface(eth0); |
322 MockEventNetworkUtilization::committed.clear(); |
322 MockEventNetworkUtilization::committed.clear(); |
325 MockFastUnorderedElapsedCounterSource::current_ticks += 2 * NANOSECS_PER_SEC; |
325 MockFastUnorderedElapsedCounterSource::current_ticks += 2 * NANOSECS_PER_SEC; |
326 JfrNetworkUtilization::send_events(); |
326 JfrNetworkUtilization::send_events(); |
327 ASSERT_EQ(1u, MockEventNetworkUtilization::committed.size()); |
327 ASSERT_EQ(1u, MockEventNetworkUtilization::committed.size()); |
328 const MockEventNetworkUtilization& eth1_event_v2 = MockEventNetworkUtilization::get_committed("eth1"); |
328 const MockEventNetworkUtilization& eth1_event_v2 = MockEventNetworkUtilization::get_committed("eth1"); |
329 |
329 |
330 EXPECT_EQ(5, eth1_event_v2.readRate); |
330 EXPECT_EQ(40, eth1_event_v2.readRate); |
331 EXPECT_EQ(0, eth1_event_v2.writeRate); |
331 EXPECT_EQ(0, eth1_event_v2.writeRate); |
332 EXPECT_STREQ("eth1", eth1_event_v2.iface.c_str()); |
332 EXPECT_STREQ("eth1", eth1_event_v2.iface.c_str()); |
333 } |
333 } |
334 |
334 |
335 TEST_VM_F(JfrTestNetworkUtilization, InterfaceReset) { |
335 TEST_VM_F(JfrTestNetworkUtilization, InterfaceReset) { |
341 MockFastUnorderedElapsedCounterSource::current_ticks += 2 * NANOSECS_PER_SEC; |
341 MockFastUnorderedElapsedCounterSource::current_ticks += 2 * NANOSECS_PER_SEC; |
342 |
342 |
343 JfrNetworkUtilization::send_events(); |
343 JfrNetworkUtilization::send_events(); |
344 ASSERT_EQ(1u, MockEventNetworkUtilization::committed.size()); |
344 ASSERT_EQ(1u, MockEventNetworkUtilization::committed.size()); |
345 const MockEventNetworkUtilization& event = MockEventNetworkUtilization::committed[0]; |
345 const MockEventNetworkUtilization& event = MockEventNetworkUtilization::committed[0]; |
346 EXPECT_EQ(5, event.readRate); |
346 EXPECT_EQ(40, event.readRate); |
347 EXPECT_EQ(0, event.writeRate); |
347 EXPECT_EQ(0, event.writeRate); |
348 EXPECT_STREQ("eth0", event.iface.c_str()); |
348 EXPECT_STREQ("eth0", event.iface.c_str()); |
349 |
349 |
350 eth0.bytes_in = 0; |
350 eth0.bytes_in = 0; |
351 MockFastUnorderedElapsedCounterSource::current_ticks += 2 * NANOSECS_PER_SEC; |
351 MockFastUnorderedElapsedCounterSource::current_ticks += 2 * NANOSECS_PER_SEC; |
358 MockFastUnorderedElapsedCounterSource::current_ticks += 2 * NANOSECS_PER_SEC; |
358 MockFastUnorderedElapsedCounterSource::current_ticks += 2 * NANOSECS_PER_SEC; |
359 |
359 |
360 JfrNetworkUtilization::send_events(); |
360 JfrNetworkUtilization::send_events(); |
361 ASSERT_EQ(1u, MockEventNetworkUtilization::committed.size()); |
361 ASSERT_EQ(1u, MockEventNetworkUtilization::committed.size()); |
362 const MockEventNetworkUtilization& event_v2 = MockEventNetworkUtilization::committed[0]; |
362 const MockEventNetworkUtilization& event_v2 = MockEventNetworkUtilization::committed[0]; |
363 EXPECT_EQ(5, event_v2.readRate); |
363 EXPECT_EQ(40, event_v2.readRate); |
364 EXPECT_EQ(0, event_v2.writeRate); |
364 EXPECT_EQ(0, event_v2.writeRate); |
365 EXPECT_STREQ("eth0", event_v2.iface.c_str()); |
365 EXPECT_STREQ("eth0", event_v2.iface.c_str()); |
366 } |
366 } |