summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp/test/Ice/metrics/AllTests.cpp42
-rw-r--r--cs/test/Ice/metrics/AllTests.cs33
-rw-r--r--java/test/Ice/metrics/AllTests.java27
3 files changed, 68 insertions, 34 deletions
diff --git a/cpp/test/Ice/metrics/AllTests.cpp b/cpp/test/Ice/metrics/AllTests.cpp
index 98ac0d52950..4f83d4b0fbe 100644
--- a/cpp/test/Ice/metrics/AllTests.cpp
+++ b/cpp/test/Ice/metrics/AllTests.cpp
@@ -415,7 +415,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
metrics->ice_connectionId("Con1")->ice_ping();
view = clientMetrics->getMetricsView("View", timestamp);
- test(view["Thread"].size() == threadCount);
+ test(static_cast<int>(view["Thread"].size()) == threadCount);
test(view["Connection"].size() == 2);
test(view["Invocation"].size() == 1);
@@ -488,9 +488,9 @@ allTests(const Ice::CommunicatorPtr& communicator)
cm2 = IceMX::ConnectionMetricsPtr::dynamicCast(clientMetrics->getMetricsView("View", timestamp)["Connection"][0]);
sm2 = IceMX::ConnectionMetricsPtr::dynamicCast(serverMetrics->getMetricsView("View", timestamp)["Connection"][0]);
- test(cm2->sentBytes - cm1->sentBytes == requestSz + bs.size() + 4); // 4 is for the seq variable size
+ test(cm2->sentBytes - cm1->sentBytes == requestSz + static_cast<int>(bs.size()) + 4); // 4 is for the seq variable size
test(cm2->receivedBytes - cm1->receivedBytes == replySz);
- test(sm2->receivedBytes - sm1->receivedBytes == requestSz + bs.size() + 4);
+ test(sm2->receivedBytes - sm1->receivedBytes == requestSz + static_cast<int>(bs.size()) + 4);
test(sm2->sentBytes - sm1->sentBytes == replySz);
cm1 = cm2;
@@ -502,9 +502,18 @@ allTests(const Ice::CommunicatorPtr& communicator)
cm2 = IceMX::ConnectionMetricsPtr::dynamicCast(clientMetrics->getMetricsView("View", timestamp)["Connection"][0]);
sm2 = IceMX::ConnectionMetricsPtr::dynamicCast(serverMetrics->getMetricsView("View", timestamp)["Connection"][0]);
- test(cm2->sentBytes - cm1->sentBytes == requestSz + bs.size() + 4); // 4 is for the seq variable size
+ test(cm2->sentBytes - cm1->sentBytes == requestSz + static_cast<int>(bs.size()) + 4); // 4 is for the seq variable size
test(cm2->receivedBytes - cm1->receivedBytes == replySz);
- test(sm2->receivedBytes - sm1->receivedBytes == requestSz + bs.size() + 4);
+ test(sm2->receivedBytes - sm1->receivedBytes == requestSz + static_cast<int>(bs.size()) + 4);
+ if(sm2->sentBytes - sm1->sentBytes != replySz)
+ {
+ // On some platforms, it's necessary to wait a little before obtaining the server metrics
+ // to get an accurate sentBytes metric. The sentBytes metric is updated before the response
+ // to the operation is sent and getMetricsView can be dispatched before the metric is really
+ // updated.
+ IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(100));
+ sm2 = IceMX::ConnectionMetricsPtr::dynamicCast(serverMetrics->getMetricsView("View", timestamp)["Connection"][0]);
+ }
test(sm2->sentBytes - sm1->sentBytes == replySz);
props["IceMX.Metrics.View.Map.Connection.GroupBy"] = "state";
@@ -672,6 +681,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
test(clientMetrics->getMetricsView("View", timestamp)["EndpointLookup"].size() == 1);
m1 = clientMetrics->getMetricsView("View", timestamp)["EndpointLookup"][0];
+
test(m1->current == 0 && m1->total == 1 && m1->id == "tcp -e 1.1 -h localhost -p 12010");
prx->ice_getConnection()->close(false);
@@ -766,21 +776,21 @@ allTests(const Ice::CommunicatorPtr& communicator)
test(map.size() == 6);
IceMX::DispatchMetricsPtr dm1 = IceMX::DispatchMetricsPtr::dynamicCast(map["op"]);
- test(dm1->current == 0 && dm1->total == 1 && dm1->failures == 0 && dm1->userException == 0);
+ test(dm1->current <= 1 && dm1->total == 1 && dm1->failures == 0 && dm1->userException == 0);
dm1 = IceMX::DispatchMetricsPtr::dynamicCast(map["opWithUserException"]);
- test(dm1->current == 0 && dm1->total == 1 && dm1->failures == 0 && dm1->userException == 1);
+ test(dm1->current <= 1 && dm1->total == 1 && dm1->failures == 0 && dm1->userException == 1);
dm1 = IceMX::DispatchMetricsPtr::dynamicCast(map["opWithLocalException"]);
- test(dm1->current == 0 && dm1->total == 1 && dm1->failures == 1 && dm1->userException == 0);
+ test(dm1->current <= 1 && dm1->total == 1 && dm1->failures == 1 && dm1->userException == 0);
checkFailure(serverMetrics, "Dispatch", dm1->id, "Ice::SyscallException", 1);
dm1 = IceMX::DispatchMetricsPtr::dynamicCast(map["opWithRequestFailedException"]);
- test(dm1->current == 0 && dm1->total == 1 && dm1->failures == 1 && dm1->userException == 0);
+ test(dm1->current <= 1 && dm1->total == 1 && dm1->failures == 1 && dm1->userException == 0);
checkFailure(serverMetrics, "Dispatch", dm1->id, "Ice::ObjectNotExistException", 1);
dm1 = IceMX::DispatchMetricsPtr::dynamicCast(map["opWithUnknownException"]);
- test(dm1->current == 0 && dm1->total == 1 && dm1->failures == 1 && dm1->userException == 0);
+ test(dm1->current <= 1 && dm1->total == 1 && dm1->failures == 1 && dm1->userException == 0);
checkFailure(serverMetrics, "Dispatch", dm1->id, "unknown", 1);
InvokeOp op(metrics);
@@ -943,31 +953,31 @@ allTests(const Ice::CommunicatorPtr& communicator)
IceMX::InvocationMetricsPtr im1;
im1 = IceMX::InvocationMetricsPtr::dynamicCast(map["op"]);
- test(im1->current == 0 && im1->total == 3 && im1->failures == 0 && im1->retry == 0 && im1->remotes.size() == 1);
+ test(im1->current <= 1 && im1->total == 3 && im1->failures == 0 && im1->retry == 0 && im1->remotes.size() == 1);
test(im1->remotes[0]->current == 0 && im1->remotes[0]->total == 3 && im1->remotes[0]->failures == 0);
im1 = IceMX::InvocationMetricsPtr::dynamicCast(map["opWithUserException"]);
- test(im1->current == 0 && im1->total == 3 && im1->failures == 0 && im1->retry == 0 && im1->remotes.size() == 1);
+ test(im1->current <= 1 && im1->total == 3 && im1->failures == 0 && im1->retry == 0 && im1->remotes.size() == 1);
test(im1->remotes[0]->current == 0 && im1->remotes[0]->total == 3 && im1->remotes[0]->failures == 0);
test(im1->userException == 3);
im1 = IceMX::InvocationMetricsPtr::dynamicCast(map["opWithLocalException"]);
- test(im1->current == 0 && im1->total == 3 && im1->failures == 3 && im1->retry == 0 && im1->remotes.size() == 1);
+ test(im1->current <= 1 && im1->total == 3 && im1->failures == 3 && im1->retry == 0 && im1->remotes.size() == 1);
test(im1->remotes[0]->current == 0 && im1->remotes[0]->total == 3 && im1->remotes[0]->failures == 0);
checkFailure(clientMetrics, "Invocation", im1->id, "Ice::UnknownLocalException", 3);
im1 = IceMX::InvocationMetricsPtr::dynamicCast(map["opWithRequestFailedException"]);
- test(im1->current == 0 && im1->total == 3 && im1->failures == 3 && im1->retry == 0 && im1->remotes.size() == 1);
+ test(im1->current <= 1 && im1->total == 3 && im1->failures == 3 && im1->retry == 0 && im1->remotes.size() == 1);
test(im1->remotes[0]->current == 0 && im1->remotes[0]->total == 3 && im1->remotes[0]->failures == 0);
checkFailure(clientMetrics, "Invocation", im1->id, "Ice::ObjectNotExistException", 3);
im1 = IceMX::InvocationMetricsPtr::dynamicCast(map["opWithUnknownException"]);
- test(im1->current == 0 && im1->total == 3 && im1->failures == 3 && im1->retry == 0 && im1->remotes.size() == 1);
+ test(im1->current <= 1 && im1->total == 3 && im1->failures == 3 && im1->retry == 0 && im1->remotes.size() == 1);
test(im1->remotes[0]->current == 0 && im1->remotes[0]->total == 3 && im1->remotes[0]->failures == 0);
checkFailure(clientMetrics, "Invocation", im1->id, "Ice::UnknownException", 3);
im1 = IceMX::InvocationMetricsPtr::dynamicCast(map["fail"]);
- test(im1->current == 0 && im1->total == 3 && im1->failures == 3 && im1->retry == 3 && im1->remotes.size() == 6);
+ test(im1->current <= 1 && im1->total == 3 && im1->failures == 3 && im1->retry == 3 && im1->remotes.size() == 6);
test(im1->remotes[0]->current == 0 && im1->remotes[0]->total == 1 && im1->remotes[0]->failures == 1);
test(im1->remotes[1]->current == 0 && im1->remotes[1]->total == 1 && im1->remotes[1]->failures == 1);
test(im1->remotes[2]->current == 0 && im1->remotes[2]->total == 1 && im1->remotes[2]->failures == 1);
diff --git a/cs/test/Ice/metrics/AllTests.cs b/cs/test/Ice/metrics/AllTests.cs
index 50eca7af935..1553f7979c1 100644
--- a/cs/test/Ice/metrics/AllTests.cs
+++ b/cs/test/Ice/metrics/AllTests.cs
@@ -492,6 +492,15 @@ public class AllTests : TestCommon.TestApp
test((cm2.receivedBytes - cm1.receivedBytes) == replySz);
test((sm2.receivedBytes - sm1.receivedBytes) == (requestSz + bs.Length + 4));
test((sm2.sentBytes - sm1.sentBytes) == replySz);
+ if(sm2.sentBytes - sm1.sentBytes != replySz)
+ {
+ // On some platforms, it's necessary to wait a little before obtaining the server metrics
+ // to get an accurate sentBytes metric. The sentBytes metric is updated before the response
+ // to the operation is sent and getMetricsView can be dispatched before the metric is really
+ // updated.
+ System.Threading.Thread.Sleep(100);
+ sm2 = (IceMX.ConnectionMetrics)serverMetrics.getMetricsView("View", out timestamp)["Connection"][0];
+ }
props["IceMX.Metrics.View.Map.Connection.GroupBy"] = "state";
updateProps(clientProps, serverProps, update, props, "Connection");
@@ -661,7 +670,7 @@ public class AllTests : TestCommon.TestApp
test(clientMetrics.getMetricsView("View", out timestamp)["EndpointLookup"].Length == 1);
m1 = clientMetrics.getMetricsView("View", out timestamp)["EndpointLookup"][0];
- test(m1.current == 0 && m1.total == 1 && m1.id.Equals("tcp -e 1.1 -h localhost -p 12010"));
+ test(m1.current <= 1 && m1.total == 1 && m1.id.Equals("tcp -e 1.1 -h localhost -p 12010"));
prx.ice_getConnection().close(false);
@@ -757,21 +766,21 @@ public class AllTests : TestCommon.TestApp
IceMX.DispatchMetrics dm1;
dm1 = (IceMX.DispatchMetrics)map["op"];
- test(dm1.current == 0 && dm1.total == 1 && dm1.failures == 0 && dm1.userException == 0);
+ test(dm1.current <= 1 && dm1.total == 1 && dm1.failures == 0 && dm1.userException == 0);
dm1 = (IceMX.DispatchMetrics)map["opWithUserException"];
- test(dm1.current == 0 && dm1.total == 1 && dm1.failures == 0 && dm1.userException == 1);
+ test(dm1.current <= 1 && dm1.total == 1 && dm1.failures == 0 && dm1.userException == 1);
dm1 = (IceMX.DispatchMetrics)map["opWithLocalException"];
- test(dm1.current == 0 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0);
+ test(dm1.current <= 1 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0);
checkFailure(serverMetrics, "Dispatch", dm1.id, "Ice::SyscallException", 1);
dm1 = (IceMX.DispatchMetrics)map["opWithRequestFailedException"];
- test(dm1.current == 0 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0);
+ test(dm1.current <= 1 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0);
checkFailure(serverMetrics, "Dispatch", dm1.id, "Ice::ObjectNotExistException", 1);
dm1 = (IceMX.DispatchMetrics)map["opWithUnknownException"];
- test(dm1.current == 0 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0);
+ test(dm1.current <= 1 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0);
checkFailure(serverMetrics, "Dispatch", dm1.id, "System.ArgumentOutOfRangeException", 1);
#if COMPACT
@@ -932,31 +941,31 @@ public class AllTests : TestCommon.TestApp
IceMX.InvocationMetrics im1;
im1 = (IceMX.InvocationMetrics)map["op"];
- test(im1.current == 0 && im1.total == 3 && im1.failures == 0 && im1.retry == 0 && im1.remotes.Length == 1);
+ test(im1.current <= 1 && im1.total == 3 && im1.failures == 0 && im1.retry == 0 && im1.remotes.Length == 1);
test(im1.remotes[0].current == 0 && im1.remotes[0].total == 3 && im1.remotes[0].failures == 0);
im1 = (IceMX.InvocationMetrics)map["opWithUserException"];
- test(im1.current == 0 && im1.total == 3 && im1.failures == 0 && im1.retry == 0 && im1.remotes.Length == 1);
+ test(im1.current <= 1 && im1.total == 3 && im1.failures == 0 && im1.retry == 0 && im1.remotes.Length == 1);
test(im1.remotes[0].current == 0 && im1.remotes[0].total == 3 && im1.remotes[0].failures == 0);
test(im1.userException == 3);
im1 = (IceMX.InvocationMetrics)map["opWithLocalException"];
- test(im1.current == 0 && im1.total == 3 && im1.failures == 3 && im1.retry == 0 && im1.remotes.Length == 1);
+ test(im1.current <= 1 && im1.total == 3 && im1.failures == 3 && im1.retry == 0 && im1.remotes.Length == 1);
test(im1.remotes[0].current == 0 && im1.remotes[0].total == 3 && im1.remotes[0].failures == 0);
checkFailure(clientMetrics, "Invocation", im1.id, "Ice::UnknownLocalException", 3);
im1 = (IceMX.InvocationMetrics)map["opWithRequestFailedException"];
- test(im1.current == 0 && im1.total == 3 && im1.failures == 3 && im1.retry == 0 && im1.remotes.Length == 1);
+ test(im1.current <= 1 && im1.total == 3 && im1.failures == 3 && im1.retry == 0 && im1.remotes.Length == 1);
test(im1.remotes[0].current == 0 && im1.remotes[0].total == 3 && im1.remotes[0].failures == 0);
checkFailure(clientMetrics, "Invocation", im1.id, "Ice::ObjectNotExistException", 3);
im1 = (IceMX.InvocationMetrics)map["opWithUnknownException"];
- test(im1.current == 0 && im1.total == 3 && im1.failures == 3 && im1.retry == 0 && im1.remotes.Length == 1);
+ test(im1.current <= 1 && im1.total == 3 && im1.failures == 3 && im1.retry == 0 && im1.remotes.Length == 1);
test(im1.remotes[0].current == 0 && im1.remotes[0].total == 3 && im1.remotes[0].failures == 0);
checkFailure(clientMetrics, "Invocation", im1.id, "Ice::UnknownException", 3);
im1 = (IceMX.InvocationMetrics)map["fail"];
- test(im1.current == 0 && im1.total == 3 && im1.failures == 3 && im1.retry == 3 && im1.remotes.Length == 6);
+ test(im1.current <= 1 && im1.total == 3 && im1.failures == 3 && im1.retry == 3 && im1.remotes.Length == 6);
test(im1.remotes[0].current == 0 && im1.remotes[0].total == 1 && im1.remotes[0].failures == 1);
test(im1.remotes[1].current == 0 && im1.remotes[1].total == 1 && im1.remotes[1].failures == 1);
test(im1.remotes[2].current == 0 && im1.remotes[2].total == 1 && im1.remotes[2].failures == 1);
diff --git a/java/test/Ice/metrics/AllTests.java b/java/test/Ice/metrics/AllTests.java
index 4b086859b3f..a2aa3b4f70e 100644
--- a/java/test/Ice/metrics/AllTests.java
+++ b/java/test/Ice/metrics/AllTests.java
@@ -503,6 +503,21 @@ public class AllTests
test((cm2.sentBytes - cm1.sentBytes) == (requestSz + bs.length + 4)); // 4 is for the seq variable size
test((cm2.receivedBytes - cm1.receivedBytes) == replySz);
test((sm2.receivedBytes - sm1.receivedBytes) == (requestSz + bs.length + 4));
+ if(sm2.sentBytes - sm1.sentBytes != replySz)
+ {
+ // On some platforms, it's necessary to wait a little before obtaining the server metrics
+ // to get an accurate sentBytes metric. The sentBytes metric is updated before the response
+ // to the operation is sent and getMetricsView can be dispatched before the metric is really
+ // updated.
+ try
+ {
+ Thread.sleep(100);
+ }
+ catch(InterruptedException ex)
+ {
+ }
+ sm2 = (IceMX.ConnectionMetrics)serverMetrics.getMetricsView("View", timestamp).get("Connection")[0];
+ }
test((sm2.sentBytes - sm1.sentBytes) == replySz);
props.put("IceMX.Metrics.View.Map.Connection.GroupBy", "state");
@@ -679,7 +694,7 @@ public class AllTests
test(clientMetrics.getMetricsView("View", timestamp).get("EndpointLookup").length == 1);
m1 = clientMetrics.getMetricsView("View", timestamp).get("EndpointLookup")[0];
- test(m1.current == 0 && m1.total == 1 && m1.id.equals("tcp -e 1.1 -h localhost -p 12010"));
+ test(m1.current <= 1 && m1.total == 1 && m1.id.equals("tcp -e 1.1 -h localhost -p 12010"));
prx.ice_getConnection().close(false);
@@ -774,21 +789,21 @@ public class AllTests
test(map.size() == 6);
IceMX.DispatchMetrics dm1 = (IceMX.DispatchMetrics)map.get("op");
- test(dm1.current == 0 && dm1.total == 1 && dm1.failures == 0 && dm1.userException == 0);
+ test(dm1.current <= 1 && dm1.total == 1 && dm1.failures == 0 && dm1.userException == 0);
dm1 = (IceMX.DispatchMetrics)map.get("opWithUserException");
- test(dm1.current == 0 &dm1.total == 1 && dm1.failures == 0 && dm1.userException == 1);
+ test(dm1.current <= 1 &dm1.total == 1 && dm1.failures == 0 && dm1.userException == 1);
dm1 = (IceMX.DispatchMetrics)map.get("opWithLocalException");
- test(dm1.current == 0 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0);
+ test(dm1.current <= 1 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0);
checkFailure(serverMetrics, "Dispatch", dm1.id, "Ice::SyscallException", 1, out);
dm1 = (IceMX.DispatchMetrics)map.get("opWithRequestFailedException");
- test(dm1.current == 0 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0);
+ test(dm1.current <= 1 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0);
checkFailure(serverMetrics, "Dispatch", dm1.id, "Ice::ObjectNotExistException", 1, out);
dm1 = (IceMX.DispatchMetrics)map.get("opWithUnknownException");
- test(dm1.current == 0 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0);
+ test(dm1.current <= 1 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0);
checkFailure(serverMetrics, "Dispatch", dm1.id, "java.lang.IllegalArgumentException", 1, out);
InvokeOp op = new InvokeOp(metrics);