blob: cb34c8810f69cbd93bd04f19ea965efb1ae3fdcd [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>ConcurrentTestCommand (Calcite 1.21.0 Test API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ConcurrentTestCommand (Calcite 1.21.0 Test API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ConcurrentTestCommand.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.test.concurrent</a></div>
<h2 title="Interface ConcurrentTestCommand" class="title">Interface ConcurrentTestCommand</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="ConcurrentTestCommandGenerator.AbstractCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandGenerator.AbstractCommand</a></code>, <code><a href="ConcurrentTestCommandGenerator.AutoSynchronizationCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandGenerator.AutoSynchronizationCommand</a></code>, <code><a href="ConcurrentTestCommandGenerator.CloseCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandGenerator.CloseCommand</a></code>, <code><a href="ConcurrentTestCommandGenerator.CommandWithTimeout.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandGenerator.CommandWithTimeout</a></code>, <code><a href="ConcurrentTestCommandGenerator.CommitCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandGenerator.CommitCommand</a></code>, <code><a href="ConcurrentTestCommandGenerator.DdlCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandGenerator.DdlCommand</a></code>, <code><a href="ConcurrentTestCommandGenerator.ExplainCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandGenerator.ExplainCommand</a></code>, <code><a href="ConcurrentTestCommandGenerator.FetchAndCompareCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandGenerator.FetchAndCompareCommand</a></code>, <code><a href="ConcurrentTestCommandGenerator.InsertCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandGenerator.InsertCommand</a></code>, <code><a href="ConcurrentTestCommandGenerator.PrepareCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandGenerator.PrepareCommand</a></code>, <code><a href="ConcurrentTestCommandGenerator.RollbackCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandGenerator.RollbackCommand</a></code>, <code><a href="ConcurrentTestCommandGenerator.SleepCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandGenerator.SleepCommand</a></code>, <code><a href="ConcurrentTestCommandGenerator.SynchronizationCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandGenerator.SynchronizationCommand</a></code>, <code><a href="ConcurrentTestCommandScript.CommandWithTimeout.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandScript.CommandWithTimeout</a></code>, <code><a href="ConcurrentTestCommandScript.CommandWithTimeoutAndRowLimit.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandScript.CommandWithTimeoutAndRowLimit</a></code>, <code><a href="ConcurrentTestCommandScript.EchoCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandScript.EchoCommand</a></code>, <code><a href="ConcurrentTestCommandScript.FetchAndPrintCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandScript.FetchAndPrintCommand</a></code>, <code><a href="ConcurrentTestCommandScript.PluginCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandScript.PluginCommand</a></code>, <code><a href="ConcurrentTestCommandScript.PrepareCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandScript.PrepareCommand</a></code>, <code><a href="ConcurrentTestCommandScript.PrintCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandScript.PrintCommand</a></code>, <code><a href="ConcurrentTestCommandScript.SelectCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandScript.SelectCommand</a></code>, <code><a href="ConcurrentTestCommandScript.ShellCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandScript.ShellCommand</a></code>, <code><a href="ConcurrentTestCommandScript.SqlCommand.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandScript.SqlCommand</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">ConcurrentTestCommand</span></pre>
<div class="block">ConcurrentTestCommand represents a command, sequentially executed by
<a href="ConcurrentTestCommandExecutor.html" title="class in org.apache.calcite.test.concurrent"><code>ConcurrentTestCommandExecutor</code></a>, during a concurrency test
<p>ConcurrentTestCommand instances are normally instantiated by the
<a href="ConcurrentTestCommandGenerator.html" title="class in org.apache.calcite.test.concurrent"><code>ConcurrentTestCommandGenerator</code></a> class.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ConcurrentTestCommand.ShouldHaveFailedException.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommand.ShouldHaveFailedException</a></span></code></th>
<td class="colLast">
<div class="block">Indicates that a command should have failed, but instead succeeded, which
is a test error</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#execute(org.apache.calcite.test.concurrent.ConcurrentTestCommandExecutor)">execute</a></span>&#8203;(<a href="ConcurrentTestCommandExecutor.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandExecutor</a>&nbsp;exec)</code></th>
<td class="colLast">
<div class="block">Executes this command.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isFailureExpected()">isFailureExpected</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns true if the command should fail.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent">ConcurrentTestCommand</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#markToFail()">markToFail</a></span>()</code></th>
<td class="colLast">
<div class="block">Set this command to expect a patternless failure.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent">ConcurrentTestCommand</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#markToFail(java.lang.String,java.lang.String)">markToFail</a></span>&#8203;(java.lang.String&nbsp;comment,
java.lang.String&nbsp;pattern)</code></th>
<td class="colLast">
<div class="block">Marks a command to show that it is expected to fail, and indicates how.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="execute(org.apache.calcite.test.concurrent.ConcurrentTestCommandExecutor)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>execute</h4>
<pre class="methodSignature">void&nbsp;execute&#8203;(<a href="ConcurrentTestCommandExecutor.html" title="class in org.apache.calcite.test.concurrent">ConcurrentTestCommandExecutor</a>&nbsp;exec)
throws java.lang.Exception</pre>
<div class="block">Executes this command. The ConcurrentTestCommandExecutor provides
access to a JDBC connection and previously prepared statements.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>exec</code> - the ConcurrentTestCommandExecutor firing this command.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - to indicate a test failure</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="ConcurrentTestCommandExecutor.html#getStatement()"><code>ConcurrentTestCommandExecutor.getStatement()</code></a>,
<a href="ConcurrentTestCommandExecutor.html#setStatement(java.sql.Statement)"><code>ConcurrentTestCommandExecutor.setStatement(java.sql.Statement)</code></a></dd>
</dl>
</li>
</ul>
<a id="markToFail(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>markToFail</h4>
<pre class="methodSignature"><a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent">ConcurrentTestCommand</a>&nbsp;markToFail&#8203;(java.lang.String&nbsp;comment,
java.lang.String&nbsp;pattern)</pre>
<div class="block">Marks a command to show that it is expected to fail, and indicates how.
Used for negative tests. Normally when a command fails the embracing test
fails.
But when a marked command fails, the error is caught and inspected: if it
matches the expected error, the test continues. However if it does not
match, if another kind of exception is thrown, or if no exception is
caught, then the test fails. Assumes the error is indicated by a
java.sql.SQLException. Optionally checks for the expected error condition
by matching the error message against a regular expression. (Scans the
list of chained SQLExceptions).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>comment</code> - a brief description of the expected error</dd>
<dd><code>pattern</code> - null, or a regular expression that matches the expected
error message.</dd>
</dl>
</li>
</ul>
<a id="isFailureExpected()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFailureExpected</h4>
<pre class="methodSignature">boolean&nbsp;isFailureExpected()</pre>
<div class="block">Returns true if the command should fail. This allows special error
handling for expected failures that don't have patterns.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if command is expected to fail</dd>
</dl>
</li>
</ul>
<a id="markToFail()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>markToFail</h4>
<pre class="methodSignature"><a href="ConcurrentTestCommand.html" title="interface in org.apache.calcite.test.concurrent">ConcurrentTestCommand</a>&nbsp;markToFail()</pre>
<div class="block">Set this command to expect a patternless failure.</div>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ConcurrentTestCommand.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>