/* * Licensed to Elasticsearch under one or more contributor * license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright * ownership. Elasticsearch 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.elasticsearch.threadpool; import org.elasticsearch.test.ESTestCase; import static org.hamcrest.CoreMatchers.equalTo; public class ThreadPoolTests extends ESTestCase { public void testBoundedByBelowMin() { int min = randomIntBetween(0, 32); int max = randomIntBetween(min + 1, 64); int value = randomIntBetween(Integer.MIN_VALUE, min - 1); assertThat(ThreadPool.boundedBy(value, min, max), equalTo(min)); } public void testBoundedByAboveMax() { int min = randomIntBetween(0, 32); int max = randomIntBetween(min + 1, 64); int value = randomIntBetween(max + 1, Integer.MAX_VALUE); assertThat(ThreadPool.boundedBy(value, min, max), equalTo(max)); } public void testBoundedByBetweenMinAndMax() { int min = randomIntBetween(0, 32); int max = randomIntBetween(min + 1, 64); int value = randomIntBetween(min, max); assertThat(ThreadPool.boundedBy(value, min, max), equalTo(value)); } public void testAbsoluteTime() throws Exception { TestThreadPool threadPool = new TestThreadPool("test"); try { long currentTime = System.currentTimeMillis(); long gotTime = threadPool.absoluteTimeInMillis(); long delta = Math.abs(gotTime - currentTime); assertTrue("thread pool cached absolute time " + gotTime + " is too far from real current time " + currentTime, delta < 10000); // the delta can be large, we just care it is the same order of magnitude } finally { threadPool.shutdown(); threadPool.close(); } } }