/* * Copyright 2013 Klarna AB * * Licensed 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 com.klarna.hiverunner; import com.klarna.hiverunner.annotations.HiveRunnerSetup; import com.klarna.hiverunner.annotations.HiveSQL; import com.klarna.hiverunner.config.HiveRunnerConfig; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(StandaloneHiveRunner.class) public class NoTimoutTest { @HiveRunnerSetup public final static HiveRunnerConfig CONFIG = new HiveRunnerConfig() {{ setTimeoutEnabled(false); setTimeoutSeconds(5); setTimeoutRetries(2); }}; @HiveSQL(files = {}) private HiveShell hiveShell; @Before public void prepare() { String disableTimeout = System.getProperty("disableTimeout"); if (disableTimeout != null && Boolean.parseBoolean(disableTimeout)) { System.out.println("Terminating test with success because timeout is disabled."); } else { hiveShell.execute("create database baz"); hiveShell.execute("use baz"); hiveShell.execute("create temporary function sleep_one_second_udf as 'com.klarna.hiverunner.SlowlyFailingUdf'"); hiveShell.execute("create table foo (bar string)"); hiveShell.execute("insert into table foo values ('a')"); } } /** * Regression test for deadlock in ThrowOnTimeout.java that occured when running with long running test case and disabled timeout. * * If the deadlock is introduced, this test will never terminate. */ @Test(expected = IllegalArgumentException.class) public void test() { hiveShell.executeQuery("select sleep_one_second_udf(bar) from foo"); } }