You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2017/12/21 02:58:52 UTC
[07/16] kylin git commit: APACHE-KYLIN-2902: add unit test
APACHE-KYLIN-2902: add unit test
Signed-off-by: lidongsjtu <li...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/1fbd51bf
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/1fbd51bf
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/1fbd51bf
Branch: refs/heads/master
Commit: 1fbd51bf1f1038ad5c5151868e1cb259335dc396
Parents: f6b2d70
Author: Zhong <nj...@apache.org>
Authored: Sun Dec 3 19:21:38 2017 +0800
Committer: lidongsjtu <li...@apache.org>
Committed: Wed Dec 20 23:20:11 2017 +0800
----------------------------------------------------------------------
.../apache/kylin/rest/util/RequestUtilTest.java | 69 ++++++++++++++++++++
1 file changed, 69 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/1fbd51bf/server-base/src/test/java/org/apache/kylin/rest/util/RequestUtilTest.java
----------------------------------------------------------------------
diff --git a/server-base/src/test/java/org/apache/kylin/rest/util/RequestUtilTest.java b/server-base/src/test/java/org/apache/kylin/rest/util/RequestUtilTest.java
new file mode 100644
index 0000000..5445a86
--- /dev/null
+++ b/server-base/src/test/java/org/apache/kylin/rest/util/RequestUtilTest.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.kylin.rest.util;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class RequestUtilTest {
+
+ @Test
+ public void testOpenAndCloseQueryRequest() {
+ int nThread = 5;
+
+ final Integer maxConcurrentQuery = 2;
+ final String project = "test";
+
+ final AtomicInteger nQueryFailed = new AtomicInteger(0);
+
+ Thread[] threads = new Thread[nThread];
+ final CountDownLatch lock = new CountDownLatch(nThread);
+ for (int i = 0; i < nThread; i++) {
+ final int j = i;
+ threads[j] = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ boolean ifOpen = RequestUtil.openQueryRequest(project, maxConcurrentQuery);
+ lock.countDown();
+ if (ifOpen) {
+ lock.await();
+ RequestUtil.closeQueryRequest(project);
+ } else {
+ nQueryFailed.incrementAndGet();
+ }
+ } catch (InterruptedException e) {
+ }
+ }
+ });
+ threads[j].start();
+ }
+ for (int i = 0; i < nThread; i++) {
+ try {
+ threads[i].join();
+ } catch (InterruptedException e) {
+ }
+ }
+ Assert.assertEquals(new Integer(0), RequestUtil.getCurrentRunningQuery(project));
+ Assert.assertEquals(nThread - maxConcurrentQuery, nQueryFailed.get());
+ }
+}