Skip to content

Commit 7c43127

Browse files
committed
Add some usage testing along with queue metrics
1 parent b46ec6d commit 7c43127

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

vertx-sql-client/src/test/java/io/vertx/tests/sqlclient/tck/MetricsTestBase.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ private void testQueuing(TestContext ctx, boolean timeout) throws Exception {
131131
AtomicInteger queueSize = new AtomicInteger();
132132
List<Object> enqueueMetrics = Collections.synchronizedList(new ArrayList<>());
133133
List<Object> dequeueMetrics = Collections.synchronizedList(new ArrayList<>());
134+
AtomicInteger usageSize = new AtomicInteger();
135+
List<Object> beginMetrics = Collections.synchronizedList(new ArrayList<>());
136+
List<Object> endMetrics = Collections.synchronizedList(new ArrayList<>());
134137
poolMetrics = new PoolMetrics() {
135138
@Override
136139
public Object enqueue() {
@@ -144,6 +147,18 @@ public void dequeue(Object taskMetric) {
144147
dequeueMetrics.add(taskMetric);
145148
queueSize.decrementAndGet();
146149
}
150+
@Override
151+
public Object begin() {
152+
Object metric = new Object();
153+
beginMetrics.add(metric);
154+
usageSize.incrementAndGet();
155+
return metric;
156+
}
157+
@Override
158+
public void end(Object usageMetric) {
159+
endMetrics.add(usageMetric);
160+
usageSize.decrementAndGet();
161+
}
147162
};
148163
PoolOptions poolOptions = new PoolOptions().setMaxSize(1).setName("the-pool");
149164
if (timeout) {
@@ -157,10 +172,15 @@ public void dequeue(Object taskMetric) {
157172
futures.add(pool.withConnection(sqlConn -> sqlConn.query("SELECT * FROM immutable WHERE id=1").execute()));
158173
}
159174
awaitQueueSize(ctx, queueSize, timeout ? 0 : num);
175+
ctx.assertEquals(0, usageSize.get());
160176
conn.close();
161177
Future.join(futures).otherwiseEmpty().await(20, SECONDS);
162178
ctx.assertEquals(0, queueSize.get());
163179
ctx.assertEquals(enqueueMetrics, dequeueMetrics);
180+
ctx.assertEquals(0, usageSize.get());
181+
ctx.assertEquals(num, beginMetrics.size());
182+
ctx.assertEquals(num, endMetrics.size());
183+
ctx.assertEquals(beginMetrics, endMetrics);
164184
ctx.assertEquals("sql", poolType);
165185
ctx.assertEquals("the-pool", poolName);
166186
}

0 commit comments

Comments
 (0)