Initial add of defaria.com
[clearscm.git] / defaria.com / blogs / Status / archives / 000699.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
4 <head>
5    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6    <meta name="generator" content="Movable Type 5.2.3" />
7
8    <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles-site.css" type="text/css" />
9    <link rel="alternate" type="application/atom+xml" title="Atom" href="http://defaria.com/blogs/Status/atom.xml" />
10    <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://defaria.com/blogs/Status/index.xml" />
11
12    <title>Status for Andrew DeFaria: Santity Progress</title>
13
14    <link rel="start" href="http://defaria.com/blogs/Status/" title="Home" />
15    <link rel="prev" href="http://defaria.com/blogs/Status/archives/000698.html" title="New easter options" />
16    <link rel="next" href="http://defaria.com/blogs/Status/archives/000700.html" title="Sharable vs Non-sharable derived objects" />
17
18    <!--
19 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
20          xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
21          xmlns:dc="http://purl.org/dc/elements/1.1/">
22 <rdf:Description
23     rdf:about="http://defaria.com/blogs/Status/archives/000699.html"
24     trackback:ping="http://defaria.com/mt/mt-tb.cgi/86"
25     dc:title="Santity Progress"
26     dc:identifier="http://defaria.com/blogs/Status/archives/000699.html"
27     dc:subject="General Dynamics"
28     dc:description=" Spoke with Tom regarding making a rantools, or perhaps ran_swit_tools and ran_preswit_tools vob. Tom got the helpdesk ticket from Chris English regarding making a preswit vob. I added on the swit vob and discussed with Tom how to best..."
29     dc:creator=""
30     dc:date="2008-03-05T11:33:58-06:00" />
31 </rdf:RDF>
32 -->
33
34
35    
36
37    <script type="text/javascript" src="http://defaria.com/blogs/Status/mt-site.js"></script>
38 </head>
39 <body class="layout-one-column" onload="individualArchivesOnLoad(commenter_name)">
40    <div id="container">
41       <div id="container-inner" class="pkg">
42
43          <div id="banner">
44             <div id="banner-inner" class="pkg">
45                <h1 id="banner-header"><a href="http://defaria.com/blogs/Status/" accesskey="1">Status for Andrew DeFaria</a></h1>
46                <h2 id="banner-description">Searchable status reports and work log</h2>
47             </div>
48          </div>
49
50          <div id="pagebody">
51             <div id="pagebody-inner" class="pkg">
52                <div id="alpha">
53                   <div id="alpha-inner" class="pkg">
54
55                      <p class="content-nav">
56                         <a href="http://defaria.com/blogs/Status/archives/000698.html">&laquo; New easter options</a> |
57                         <a href="http://defaria.com/blogs/Status/">Main</a>
58                         | <a href="http://defaria.com/blogs/Status/archives/000700.html">Sharable vs Non-sharable derived objects &raquo;</a>
59                      </p>
60
61                      <a id="a000699"></a>
62                      <div class="entry" id="entry-699">
63                         <h3 class="entry-header">Santity Progress</h3>
64                         <div class="entry-content">
65                            <div class="entry-body">
66                               <ul>
67   <li>Spoke with Tom regarding making a rantools, or perhaps ran_swit_tools and ran_preswit_tools vob. Tom got the helpdesk ticket from Chris English regarding making a preswit vob. I added on the swit vob and discussed with Tom how to best do this.</li>
68
69   <li>Re-ported changes from Rexec version of easter -> non-Rexec version. Looks like we will be having a rantools vob replicated to cclinux. In any event, easter has been redesigned to run locally on seast1.</li>
70
71   <li>Figured out the problem with Rexec (and Expect for that matter). Turns out the Expect problem is the same Expect problem it always seems to be. Expecting a certain string and not seeing it. The twist is that this is indeterministic due to timing and stems from the odd way that start_auto_east operates. You see after executing start_auto_east control gets returned to you, thus you get a prompt, however background processes are also started and they write to the terminal, sometimes interrupting the prompt! This is not good. In general background processes should not be writing to the screen. I need to see if they can turn this off.</li>
72
73   <li>Learned that specifying "-run -log" will run the test but <b>not</b> turn on logging! You must do "-log -run"! In the past sometimes log files would not appear. They would appear if logging was turned on in the profile but not appear if it wasn't. IOW -log was not working because of option ordering! Fixed</li>
74
75   <li>Added rendezvous method and option to that we can run something in the background and then rendezvous with it by searching for a string in the produced logfile.</li>
76
77   <li>Learned that the logfile's presence is not immediate. IOW we start a configuration task, running it in the background, then call rendezvous in order to search the logfile for the message stating it's ready. However the logfile does not exist at this moment. So we must wait. Currently rendezvous uses timeout to wait. It does so by trying then taking 1/10 of timeout and sleeping, proceeding 10 times and then timing out. I need to include the locating of the logfile in this timeout cycle.</li>
78
79   <li>Moved stackOptions and -name, -if and -renedezvous into East.pm and process options using GetOptions. The problem was that I'm coming from a string, the test name followed by test options, and with -if and -rendezvous there's a good chance that the user wants to specify a quoted string. Yet GetOptions only works on @ARGV. So how to get a $str -> @ARGV taking into account that if you hit a quote you need to combine all tokens until the closing quote? Well that's what stackOptions does. So now this is all handled in East.pm. Additionally the test results hash needed to be passed to exec so that exec could do conditional test execution. This makes us pass two hashes and thus need to use references. All this is working now. Need to check to make sure that test results hash is updating in exec and that conditional test execution is working</li>
80
81   <li>Fixed problem in getting logfile name in that $self->{testName} was not getting set properly. Now it is and logfile names are being found</li>
82
83   <li>Still am not seeing what I'm expecting to see in the logfiles for rendezvous. Need to do testing by hand again and save the logfiles to show Leslie/Jonathan.</li>
84
85   <li>Changed to use a hash for all statistics. Added stats for skipped tests and rendezvous tests. This method is much more flexible and counters can be easily added</li>
86
87   <li>Added hack to get around Expect problems</li>
88
89   <li>Determined that messages seen in the text logfile are not already shown in the binary logfile</li>
90 </ul>
91                            </div>
92                            <div id="more" class="entry-more">
93                               <h2>Expect problems</h2>
94
95 <p>Last night I managed to discover what was causing my intermittent problem. This problem turns out to be one from Expect but it's more of a challenge. You see whenever you are writing stuff in Expect you are usually participating in a little black art. The challenge often is distinguishing between what you are looking for that you expect and what you get, which is sometimes not what you expect.</p>
96
97 <p>In general you are often issuing commands to the underlying process and then searching to see when it is done. So you are often looking for a prompt. The regular expression that I use for standard prompt is:</p>
98
99 <div class=code><pre>
100 qr'[#>:%$] $'
101 </pre></div>
102
103 <p>For seast1 this generally matches the "$ " that appears at the end of the prompt. There are two problems that can occur: First, output from a command can output exactly what you are looking for ("$ "). Fortunately having a command output a "$" followed by a " " at the end of a line is relatively rare.</p>
104
105 <p>The other problem that can happen is when something interferes with terminal I/O when outputting the prompt. How can this happen? Well when background processes indiscriminately write to the terminal at random times. What does this? start_east_auto does! Or rather things that start_east_auto calls does. For example, it calls restart_servers, which does an echo and calls other scripts, which probably also echo stuff.</p>
106
107 <p>If any of this background I/O gets written while the prompt is being written there's a chance (and it happens) that my Expect call will never see the prompt and it will timeout. The general rule is if you are processing in the background - don't output anything to the screen!</p>
108
109 <p>Can somebody look into this to see if these echo statements can be eliminated or at the very least, sent to a logfile that the user can examine if they want?</p>
110
111 <p>Otherwise I cannot guarantee that testing will not occasionally fail because of this.</p>
112                            </div>
113                         </div>
114                         <p class="entry-footer">
115                            <span class="post-footers">Posted by  on March  5, 2008 11:33 AM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000699.html">Permalink</a>
116                         </p>
117                      </div>
118
119                      
120                      <div class="trackbacks">
121                         <h3 id="trackback" class="trackbacks-header">TrackBack</h3>
122                         <div id="trackbacks-info">
123                            <p>TrackBack URL for this entry:<br />http://defaria.com/mt/mt-tb.cgi/86</p>
124                         </div>
125                         <div class="trackbacks-content">
126                            
127                         </div>
128                      </div>
129                      
130
131                      
132                   </div>
133                </div>
134             </div>
135          </div>
136       </div>
137    </div>
138 </body>
139 </html>