2 <html lang="en-us" itemscope itemtype="http://schema.org/Article">
5 <meta name="description" content="Easter Paged usage Added logfile analysis Added Timeout detection Added environment variable support Changed to use GetConfig for -file...">
6 <meta name="generator" content="Movable Type 5.2.3">
7 <title>easter: Indecision is the key to flexibility! - Status</title>
8 <link rel="alternate" type="application/atom+xml" title="Recent Entries" href="http://defaria.com/blogs/Status/atom.xml">
9 <link rel="canonical" href="http://defaria.com/blogs/Status/2008/01/easter-indecisi.html">
10 <meta name="viewport" content="width=device-width,initial-scale=1">
11 <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles.css">
13 <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles_ie.css">
14 <script src="/mt/mt-static/support/theme_static/rainier/js/html5shiv.js"></script>
17 <link rel="start" href="http://defaria.com/blogs/Status/">
19 <link rel="prev" href="http://defaria.com/blogs/Status/2008/01/eastpm.html" title="East.pm">
20 <link rel="next" href="http://defaria.com/blogs/Status/2008/02/rexec-2.html" title="Rexec">
21 <!-- Open Graph Protocol -->
22 <meta property="og:type" content="article">
23 <meta property="og:locale" content="en-us">
24 <meta property="og:title" content="easter: Indecision is the key to flexibility!">
25 <meta property="og:url" content="http://defaria.com/blogs/Status/2008/01/easter-indecisi.html">
26 <meta property="og:description" content="Easter Paged usage Added logfile analysis Added Timeout detection Added environment variable support Changed to use GetConfig for -file...">
27 <meta property="og:site_name" content="Status">
28 <meta property="og:image" content="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
30 <meta itemprop="description" content="Easter Paged usage Added logfile analysis Added Timeout detection Added environment variable support Changed to use GetConfig for -file...">
31 <link itemprop="url" href="http://defaria.com/blogs/Status/2008/01/easter-indecisi.html">
32 <link itemprop="image" href="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
37 <div id="container-inner">
38 <header id="header" role="banner">
39 <div id="header-inner">
40 <div id="header-content">
42 <a href="http://defaria.com/blogs/Status/">
51 <nav role="navigation">
53 <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
62 <div id="content-inner">
63 <ul class="breadcrumb breadcrumb-list">
64 <li class="breadcrumb-list-item"><a href="http://defaria.com/blogs/Status/">Home</a></li>
65 <li class="breadcrumb-list-item">easter: Indecision is the key to flexibility!</li>
67 <div id="individual-main" class="main" role="main">
68 <article id="entry-1942" class="entry entry-asset asset hentry">
69 <div class="asset-header">
70 <h2 itemprop="name" class="asset-name entry-title">easter: Indecision is the key to flexibility!</h2>
71 <footer class="asset-meta">
72 <ul class="asset-meta-list">
73 <li class="asset-meta-list-item">Posted on <time datetime="2008-01-30T17:55:37-08:00" itemprop="datePublished">January 30, 2008</time></li>
74 <li class="asset-meta-list-item">by <span class="author entry-author vcard"></span></li>
77 <li class="asset-meta-list-item">in <a itemprop="articleSection" rel="tag" href="http://defaria.com/blogs/Status/general-dynamics/">General Dynamics</a></li>
83 <div class="entry-content asset-content" itemprop="articleBody">
89 <li>Added logfile analysis</li>
91 <li>Added Timeout detection</li>
93 <li>Added environment variable support</li>
95 <li>Changed to use GetConfig for -file</li>
97 <p>The following progress has been made on easter, the EAST Test Driver:</p>
100 <li>easter -usage has gotten bigger so it's now piped to $ENV{PAGER}</li>
102 <li>Added log file analysis: easter now examines the log file produced by the running of test cases. It does this by extracting the test case name, not to be confused with the test case <u>file</u> name, from the profile file and composing a (long) path to the log file that the running of East produces. Note that easter is running remotely from a workstation on the RAN and driving tests and processes on raneast and ceast<n>. As such it dynamically expands environment
103 variables like $MNT_DIR and $EAST_REL in composing the path to the log file so that in the event of a change in either of these environment variables will be automatically sense and it will Just Work®.<br>
105 <br>An additional complexity is that part of the path to the logfile contains a timestamp down to the millisecond. It's difficult (read impossible) to determine the exact timestamp that will be issues and guessing has it's challenges too. Instead, easter takes the approach of using "ls -t | head -1" to determine the most recently modified directory (timestamp directory that is). This works reasonably well provided we don't have multiple tests or processes writing in that directory.<br>
107 <br>Once the logfile is determined it is examined for "EXECUTION STATUS" and that is reported back to the user.</li>
109 <li>Implemented rudimentary detection of timeouts. In testing I noticed that TS_default.profile never exits. So instead it times out. This situation is detected and counted as a timeout (I'd still like an example test case that exits without indicating Success or Failure).<br>
112 <small><p><b>Note: </b>It's been observes that other timeouts have been happening. For example, sometimes the connection to raneast seems to just hang. This could be due to abnormal load on raneast, ceast<n> or other hardware. The easter script does not always handle such things that gracefully yet. In general easter allows for up to 30 seconds for each remote execution of a command, including tests. How long do tests take?</p></small>
116 <li>Added environment variables. The user can now set into the environment various parameters for easter so that they need not have to specify them on the command line. Generally this is used to set things that remain the same for the whole execution of easter like <view>, <type> and <unit>. There is a scheme for overriding that being environment, command line and config file. The environment variables are as follows:<br>
118 <div class=code><pre>
119 EASTER_VIEW Analogous to -view (e.g. export EASTER_VIEW=p6258c_easter)
120 EASTER_TYPE Analogous to -type (e.g. export EASTER_TYPE=rbs)
121 EASTER_CLASS Analogous to -class (e.g. export EASTER_CLASS=ts)
122 EASTER_UNIT Analogous to -unit (e.g. export EASTER_UNIT=5)
123 EASTER_TEST Analogous to -test (e.g. export EASTER_TEST=test1.profile)
124 EASTER_FILE Analogous to -file (e.g. export EASTER_FILE=testsuite.conf)
127 <p><font color="#c0c0c0">(and I was real tempted to make an EASTER_EGG!)</font></p>
129 <p>Any options specified on the command line override any options specified in the environment. So the user can do something like:</p>
131 <div class=code><pre>
132 $ export EASTER_FILE=testsuite.conf
137 <li>Expanded the syntax of the -file file. This now uses the GetConfig module. This is a more simplex form of config file, less complicated than say XML. It's more akin to X Resource files and allows for commenting. The config file now can contain configuration options embedded in the file as well as test executions. Comments are supported with the standard "#". Here's an example file:
139 <div class=code><pre>
140 ##############################################################################
144 # Description: Test suite file to test easter
146 # Author: <a class="moz-txt-link-abbreviated" href="mailto:Andrew@DeFaria.com">Andrew@DeFaria.com</a>
148 # (c) Copyright 2008, General Dynamics, all rights reserved
150 ##############################################################################
152 # Use the following view
153 view: p63630_SIMCQ00000607_intview
155 # Set type and unit to rbs 6
159 # Execute the following ts tests
160 exec: TS_b2_l3_auto_test.profile
161 exec: TS_success.profile
162 exec: TS_failure.profile
163 exec: TS_profile.profile
164 exec: TS_default.profile
167 <p>We can see that we are using a specific view, type and unit, which holds for all tests. Each exec line is cumulative (passes in an array to the script) of test cases to run. We can easily execute this "testsuite" then by doing either of:</p>
169 <div class=code><pre>
170 $ easter -f testsuite.conf
175 <div class=code><pre>
176 $ export EASTER_FILE=testsuite.conf
180 <p>The resulting output is:</p>
182 <table bgcolor="black" border="0" cellpadding="2" cellspacing="0" width="90%">
185 <td valign="top"><font color="#ffffff"><tt><b><font color="yellow">Randws016:</font></b><font color="yellow"><font color="#ffffff">ct setview p6258c_RANCQ00023645_devview</font></font><b><font color="yellow"><br></font></b></tt></font><font color="#ffffff"><tt><b><font color="yellow">Randws016:</font></b><font color="yellow"><font color="#ffffff">cd /vobs/rantest/tools/lib/Nethawk</font></font><br>
186 </tt></font><font color="#ffffff"><tt><b><font color="yellow">Randws016:</font></b></tt></font><font color="#ffffff"><tt>export EASTER_FILE=testsuite.conf</tt></font><br>
187 <font color="#ffffff"><tt><b><font color="yellow">Randws016:</font></b><font
188 color="#ffffff">easter</font></tt></font><br>
189 <font color="#ffffff"><tt>Please be patient while we set up
190 the test environment... done<br>
191 <font color="cyan">ts</font> <font color="yellow">TS_b2_l3_auto_test_.profile</font>
192 <font color="green">Success</font><br>
193 </tt></font><font color="#ffffff"><tt><font color="cyan">
194 ts</font></tt></font><font color="#ffffff"><tt> <font
195 color="yellow">TS_success.profile</font> <font color="green">Success</font><br>
196 </tt></font><font color="#ffffff"><tt><font color="cyan">
197 ts</font></tt></font><font color="#ffffff"><tt> <font
198 color="yellow">TS_success.profile</font> <font color="red">Failure</font><br>
199 </tt></font><font color="#ffffff"><tt><font color="cyan">
200 ts</font></tt></font><font color="#ffffff"><tt> <font
201 color="yellow">TS_success.profile</font> <font color="red">Failure</font><br>
202 </tt></font><font color="#ffffff"><tt><font color="cyan">
203 ts</font></tt></font><font color="#ffffff"><tt> <font
204 color="yellow">TS_default.profile</font> <font color="cyan">Timed out<br>
205 <font color="#ffffff">easter summary</font><br>
206 <font color="yellow">5 tests run</font><br>
207 <font color="green">2 tests passed</font><br>
208 <font color="red">2 tests failed</font><br>
209 1 test incomplete<br>
210 </font></tt></font></td>
218 <nav class="page-navigation entry-navigation pagination content-nav">
219 <ul class="page-navigation-list">
221 <li class="page-navigation-list-item page-navigation-prev"><a rel="prev" href="http://defaria.com/blogs/Status/2008/01/eastpm.html" title="East.pm">Previous entry</a></li>
224 <li class="page-navigation-list-item page-navigation-next"><a rel="next" href="http://defaria.com/blogs/Status/2008/02/rexec-2.html" title="Rexec">Next entry</a></li>
229 <aside id="zenback" class="zenback feedback">
230 Please paste Zenback script code here.
237 <aside class="widgets related" role="complementary">
238 <nav class="widget-search widget">
239 <div class="widget-content">
240 <form method="get" id="search" action="http://defaria.com/mt/mt-search.cgi">
242 <input type="text" name="search" value="" placeholder="Search...">
244 <input type="hidden" name="IncludeBlogs" value="8">
246 <input type="hidden" name="limit" value="20">
247 <button type="submit" name="button">
248 <img alt="Search" src="/mt/mt-static/support/theme_static/rainier/img/search-icon.png">
254 <nav class="widget-archive-category widget">
255 <h3 class="widget-header">Categories</h3>
256 <div class="widget-content">
259 <ul class="widget-list">
262 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/ameriquest/">Ameriquest (99)</a>
270 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/audience/">Audience (3)</a>
278 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/broadcom/">Broadcom (76)</a>
286 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/gpdb/">GPDB (35)</a>
294 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-dynamics/">General Dynamics (61)</a>
302 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-electric/">General Electric (13)</a>
310 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/hewlett-packard/">Hewlett Packard (13)</a>
318 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/lynuxworks/">LynuxWorks (162)</a>
326 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/pqa/">PQA (35)</a>
334 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/salira/">Salira (79)</a>
342 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/tellabs/">Tellabs (2)</a>
350 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/texas-instruments/">Texas Instruments (31)</a>
362 <nav class="widget-archive-dropdown widget">
363 <h3 class="widget-header">Archives</h3>
364 <div class="widget-content">
366 <option>Select a Month...</option>
368 <option value="http://defaria.com/blogs/Status/2016/02/">February 2016</option>
372 <option value="http://defaria.com/blogs/Status/2014/09/">September 2014</option>
376 <option value="http://defaria.com/blogs/Status/2014/04/">April 2014</option>
380 <option value="http://defaria.com/blogs/Status/2014/03/">March 2014</option>
384 <option value="http://defaria.com/blogs/Status/2013/02/">February 2013</option>
388 <option value="http://defaria.com/blogs/Status/2012/09/">September 2012</option>
392 <option value="http://defaria.com/blogs/Status/2012/08/">August 2012</option>
396 <option value="http://defaria.com/blogs/Status/2012/05/">May 2012</option>
400 <option value="http://defaria.com/blogs/Status/2012/04/">April 2012</option>
404 <option value="http://defaria.com/blogs/Status/2012/02/">February 2012</option>
408 <option value="http://defaria.com/blogs/Status/2012/01/">January 2012</option>
412 <option value="http://defaria.com/blogs/Status/2011/10/">October 2011</option>
416 <option value="http://defaria.com/blogs/Status/2011/07/">July 2011</option>
420 <option value="http://defaria.com/blogs/Status/2010/09/">September 2010</option>
424 <option value="http://defaria.com/blogs/Status/2010/08/">August 2010</option>
428 <option value="http://defaria.com/blogs/Status/2010/04/">April 2010</option>
432 <option value="http://defaria.com/blogs/Status/2010/03/">March 2010</option>
436 <option value="http://defaria.com/blogs/Status/2010/02/">February 2010</option>
440 <option value="http://defaria.com/blogs/Status/2009/05/">May 2009</option>
444 <option value="http://defaria.com/blogs/Status/2009/04/">April 2009</option>
448 <option value="http://defaria.com/blogs/Status/2008/07/">July 2008</option>
452 <option value="http://defaria.com/blogs/Status/2008/05/">May 2008</option>
456 <option value="http://defaria.com/blogs/Status/2008/04/">April 2008</option>
460 <option value="http://defaria.com/blogs/Status/2008/03/">March 2008</option>
464 <option value="http://defaria.com/blogs/Status/2008/02/">February 2008</option>
468 <option value="http://defaria.com/blogs/Status/2008/01/">January 2008</option>
472 <option value="http://defaria.com/blogs/Status/2007/12/">December 2007</option>
476 <option value="http://defaria.com/blogs/Status/2007/11/">November 2007</option>
480 <option value="http://defaria.com/blogs/Status/2007/10/">October 2007</option>
484 <option value="http://defaria.com/blogs/Status/2007/09/">September 2007</option>
488 <option value="http://defaria.com/blogs/Status/2007/08/">August 2007</option>
492 <option value="http://defaria.com/blogs/Status/2007/07/">July 2007</option>
496 <option value="http://defaria.com/blogs/Status/2007/06/">June 2007</option>
500 <option value="http://defaria.com/blogs/Status/2007/05/">May 2007</option>
504 <option value="http://defaria.com/blogs/Status/2007/04/">April 2007</option>
508 <option value="http://defaria.com/blogs/Status/2007/03/">March 2007</option>
512 <option value="http://defaria.com/blogs/Status/2007/01/">January 2007</option>
516 <option value="http://defaria.com/blogs/Status/2006/12/">December 2006</option>
520 <option value="http://defaria.com/blogs/Status/2006/11/">November 2006</option>
524 <option value="http://defaria.com/blogs/Status/2006/10/">October 2006</option>
528 <option value="http://defaria.com/blogs/Status/2006/09/">September 2006</option>
532 <option value="http://defaria.com/blogs/Status/2006/07/">July 2006</option>
536 <option value="http://defaria.com/blogs/Status/2006/06/">June 2006</option>
540 <option value="http://defaria.com/blogs/Status/2006/05/">May 2006</option>
544 <option value="http://defaria.com/blogs/Status/2006/04/">April 2006</option>
548 <option value="http://defaria.com/blogs/Status/2006/03/">March 2006</option>
552 <option value="http://defaria.com/blogs/Status/2006/02/">February 2006</option>
556 <option value="http://defaria.com/blogs/Status/2006/01/">January 2006</option>
560 <option value="http://defaria.com/blogs/Status/2005/12/">December 2005</option>
564 <option value="http://defaria.com/blogs/Status/2005/11/">November 2005</option>
568 <option value="http://defaria.com/blogs/Status/2005/10/">October 2005</option>
572 <option value="http://defaria.com/blogs/Status/2005/09/">September 2005</option>
576 <option value="http://defaria.com/blogs/Status/2005/08/">August 2005</option>
580 <option value="http://defaria.com/blogs/Status/2005/07/">July 2005</option>
584 <option value="http://defaria.com/blogs/Status/2005/06/">June 2005</option>
588 <option value="http://defaria.com/blogs/Status/2005/05/">May 2005</option>
592 <option value="http://defaria.com/blogs/Status/2005/04/">April 2005</option>
596 <option value="http://defaria.com/blogs/Status/2005/03/">March 2005</option>
600 <option value="http://defaria.com/blogs/Status/2005/02/">February 2005</option>
604 <option value="http://defaria.com/blogs/Status/2005/01/">January 2005</option>
608 <option value="http://defaria.com/blogs/Status/2004/12/">December 2004</option>
612 <option value="http://defaria.com/blogs/Status/2004/09/">September 2004</option>
616 <option value="http://defaria.com/blogs/Status/2004/08/">August 2004</option>
620 <option value="http://defaria.com/blogs/Status/2004/07/">July 2004</option>
624 <option value="http://defaria.com/blogs/Status/2004/06/">June 2004</option>
628 <option value="http://defaria.com/blogs/Status/2004/05/">May 2004</option>
632 <option value="http://defaria.com/blogs/Status/2004/04/">April 2004</option>
636 <option value="http://defaria.com/blogs/Status/2004/03/">March 2004</option>
640 <option value="http://defaria.com/blogs/Status/2004/02/">February 2004</option>
644 <option value="http://defaria.com/blogs/Status/2004/01/">January 2004</option>
648 <option value="http://defaria.com/blogs/Status/2003/12/">December 2003</option>
652 <option value="http://defaria.com/blogs/Status/2003/11/">November 2003</option>
660 <div class="widget-syndication widget section">
661 <div class="widget-content">
662 <p><img src="http://defaria.com/mt/mt-static/images/status_icons/feed.gif" alt="Subscribe to feed" width="9" height="9" /> <a href="http://defaria.com/blogs/Status/atom.xml">Subscribe to this blog's feed</a></p>
670 <footer id="footer" role="contentinfo">
671 <div id="footer-inner">
672 <div id="footer-content">
673 <nav role="navigation">
675 <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
681 <p class="license">© Copyright 2016.</p>
682 <p class="poweredby">Powered by <a href="http://www.movabletype.org/">Movable Type</a></p>
688 <script src="http://defaria.com/mt/mt-static/jquery/jquery.min.js"></script>
689 <script src="http://defaria.com/blogs/Status/mt-theme-scale2.js"></script>