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">
5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6 <meta name="generator" content="Movable Type 5.2.3" />
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"$>" />
12 <title>Status for Andrew DeFaria: March 2008 Archives</title>
14 <link rel="start" href="http://defaria.com/blogs/Status/" title="Home" />
15 <link rel="prev" href="http://defaria.com/blogs/Status/archives/2008_02.html" title="February 2008" />
16 <link rel="next" href="http://defaria.com/blogs/Status/archives/2008_04.html" title="April 2008" />
18 <body class="layout-one-column">
20 <div id="container-inner" class="pkg">
23 <div id="banner-inner" class="pkg">
24 <h1 id="banner-header"><a href="http://defaria.com/blogs/Status/" accesskey="1">Status for Andrew DeFaria</a></h1>
25 <h2 id="banner-description">Searchable status reports and work log</h2>
30 <div id="pagebody-inner" class="pkg">
32 <div id="alpha-inner" class="pkg">
34 <p class="content-nav">
35 <a href="http://defaria.com/blogs/Status/archives/2008_02.html">« February 2008</a> |
36 <a href="http://defaria.com/blogs/Status/">Main</a>
37 | <a href="http://defaria.com/blogs/Status/archives/2008_04.html">April 2008 »</a>
42 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
43 xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
44 xmlns:dc="http://purl.org/dc/elements/1.1/">
46 rdf:about="http://defaria.com/blogs/Status/archives/2008_03.html#entry-000702"
47 trackback:ping="http://defaria.com/mt/mt-tb.cgi/89"
48 dc:title="Migrating colocated views from 6.0 -> 7.0"
49 dc:identifier="http://defaria.com/blogs/Status/archives/2008_03.html#entry-000702"
50 dc:subject="General Dynamics"
51 dc:description="I performed a test of my snapshot view p6258c_SIMCQ00000392_intview. This view is a colocated view and exists in my home directory (~p6258c). Clearcase administration of the registry can be tricky - you need to get several things correct before it..."
53 dc:date="2008-03-28T15:44:47-06:00" />
58 <h2 class="date-header">March 28, 2008</h2>
60 <div class="entry" id="entry-702">
61 <h3 class="entry-header">Migrating colocated views from 6.0 -> 7.0</h3>
62 <div class="entry-content">
63 <div class="entry-body">
64 <p>I performed a test of my snapshot view p6258c_SIMCQ00000392_intview.
65 This view is a colocated view and exists in my home directory
66 (~p6258c). Clearcase administration of the registry can be tricky - you
67 need to get several things correct before it will work.</p>
69 <p>Here's what the view looks like:</p>
72 $ ct lsview -l -full -properties
73 p6258c_SIMCQ00000392_intview
74 Tag: p6258c_SIMCQ00000392_intview
75 Global path: <b>/net/cclinux/export/home/p6258c/p6258c_SIMCQ00000392_intview/.view.stg</b>
76 Server host: <b>seast1</b>
79 View tag uuid:90c8b0d3.d9c311dc.92fe.00:09:3d:14:f4:70
80 View on host: <b>seast1</b>
81 View server access path: <b>/home/p6258c/p6258c_SIMCQ00000392_intview/.view.stg</b>
82 View uuid: 90c8b0d3.d9c311dc.92fe.00:09:3d:14:f4:70
83 View attributes: snapshot,ucmview
84 View owner: rantest/p6258c
86 Created 2008-02-12T16:31:00-07 by p6258c.cclinux@ranlin04
87 Last modified 2008-03-28T13:53:02-07 by p6258c.cclinux@raneast
88 Last accessed 2008-03-28T13:53:02-07 by p6258c.cclinux@raneast
89 Last read of private data 2008-03-28T13:53:02-07 by
90 p6258c.cclinux@raneast
91 Last config spec update 2008-03-28T13:22:18-07 by
92 p6258c.cclinux@raneast
93 Last view private object update 2008-03-28T13:53:02-07 by
94 p6258c.cclinux@raneastText mode: unix
95 Properties: snapshot ucmview readwrite
96 Owner: rantest/p6258c : rwx (all)
97 Group: rantest/cclinux : r-x (read)
99 Additional groups: rantest/east
102 <p>Here's what I did</p>
105 <li>cd'ed into this snapshot view
106 ~p6258c/p6258c_SIMCQ00000392_intview/vobs/simdev/bin</li>
108 <li>Checked out a script named east.</li>
110 <li>cd'ed out of the snapshot view to my home directory.</li>
113 <p>We now have a colocated snapshot view created on CC 6.0 and hosted by
114 seast1. The storage (my home directory) oddly enough is served by
118 <li>Moved the view database over to cclinux under it's gdviews
121 <div class=code><pre>
122 <font color="#ff6600"><b>Cclinux:</b></font><u>mv /home/p6258c/p6258c_SIMCQ00000392_intview/.view.stg \</u>
123 > <u>/gdviews/p6258c/p6258c_SIMCQ00000392_intview.vws</u>
128 <li>In the above command we also renamed .view.stg ->
129 <viewname>.vws.</li>
130 <li>We did a mv instead of cp. I suspect that if you are in the
131 snapshot view storage area and you perform a Clearcase operation,
132 cleartool will notice the .view.stg directory at the snapshot view's
133 root and not bother to attempt to contact the registry server to find
134 out where the view database is. Instead it just says "Well the view
135 database is right here". This would allow a disconnected, but colocated
136 snapshot view to be able to perform Clearcase operations while
141 <li>Reregistered the view:
143 <div class=code><pre>
144 <font color="#ff6600"><b>Cclinux:</b></font><u>ct register -view -replace -host cclinux \</u>
145 > <u>-hpath /gdviews/p6258c/p6258c_SIMCQ00000392.vws \</u>
146 > <u>/net/cclinux/gdviews/p6258c/p6258c_SIMCQ00000392.vws</u>
152 <li>The -host changed from seast1 -> cclinux</li>
154 <li>The -hpath changed to be relative to /gdviews (where we moved
158 <li>Retaged the view:</li>
160 <div class=code><pre>
161 <font color="#ff6600"><b>Cclinux:</b></font><u>ct mktag -replace -view -tag p6258c_SIMCQ00000392_intview \</u>
162 > <u>-host cclinux \</u>
163 > <u>-gpath /net/cclinux/gdviews/p6258c/p6258c_SIMCQ00000392_intview.vws \</u>
164 > </tt><u>/net/cclinux/gdviews/p6258c/p6258c_SIMCQ00000392_intview.vws</u>
168 <li>Again the -host changed from seast1 -> cclinux</li>
169 <li>The -gpath changed to a global path to /gdviews<br>
173 <li>Stop the view server:</li>
175 <div class=code><pre>
176 <font color="#ff6600"><b>Cclinux:</b></font><u>ct endview -server p6258c_SIMCQ00000392_intview</u>
180 <li>Set the config spec to current since the compiled config spec
181 still thinks it's on the old server. Note this will involve a ct update
182 too. Also, we need to cd to the snapshot view storage area:</li>
184 <div class=code><pre>
185 <font color="#ff6600"><b>Cclinux:</b></font><u>cd ~/p6258c_SIMCQ00000392_intview</u>
186 <font color="#ff6600"><b>Cclinux:</b></font><u>ct setcs -current > /dev/null 2>&1</u>
189 <p>Now we have the following view:</p>
191 <div class=code><pre>
192 $ ct lsview -l -full -properties p6258c_SIMCQ00000392_intview
193 Tag: p6258c_SIMCQ00000392_intview
194 Global path: <b>/net/cclinux/gdviews/p6258c/p6258c_SIMCQ00000392_intview.vws</b>
195 Server host: <b>cclinux</b>
198 View tag uuid:90c8b0d3.d9c311dc.92fe.00:09:3d:14:f4:70
199 View on host: <b>cclinux</b>
200 View server access path:
201 /gdviews/p6258c/p6258c_SIMCQ00000392_intview.vws
202 View uuid: 90c8b0d3.d9c311dc.92fe.00:09:3d:14:f4:70
203 View attributes: snapshot,ucmview
204 View owner: rantest/p6258c
206 Created 2008-02-12T16:31:00-07 by p6258c.cclinux@ranlin04
207 Last modified 2008-03-28T14:32:44-07 by p6258c.cclinux@ranlin04
208 Last accessed 2008-03-28T14:32:44-07 by p6258c.cclinux@ranlin04
209 Last read of private data 2008-03-28T14:32:44-07 by
210 p6258c.cclinux@ranlin04
211 Last config spec update 2008-03-28T14:32:42-07 by
212 p6258c.cclinux@ranlin04
213 Last view private object update 2008-03-28T14:32:44-07 by
214 p6258c.cclinux@ranlin04
216 Properties: snapshot ucmview readwrite
217 Owner: rantest/p6258c : rwx (all)
218 Group: rantest/cclinux : r-x (read)
220 Additional groups: rantest/east<br>
224 <p>Which is clearly on cclinux now.</p>
226 <p>Further, we can see that east is still checked out, we can modify it and even unco thus showing that our newly relocated snapshot view on cclinux works, from seast1, like it did before:</p>
228 <div class=code><pre>
229 <font color="#3333ff"><b>[p6258c@seast1 p6258c]$</b></font> <u>cd p6258c_SIMCQ00000392_intview/vobs/simdev/bin</u>
230 <b><font color="#3333ff">[p6258c@seast1 bin]$</font></b> <u>ct ls east</u>
231 east@@/main/simdev_integration/east_scripts_build1_integration/CHECKEDOUT from
232 /main/simdev_integration/east_scripts_build1_integration/0 Rule: CHECKEDOUT
233 <b><font color="#3333ff">[p6258c@seast1 bin]$</font></b> <u>echo "A change" >> east</u>
234 <b><font color="#3333ff">[p6258c@seast1 bin]$</font></b> <u>ct unco east</u>
235 Save private copy of "east"? [yes]
236 Private version of "east" saved in "east.keep".
237 Loading "vobs/simdev/bin/east" (353 bytes).
238 ClearTrigger removing empty branch
239 "/home/p6258c/p6258c_SIMCQ00000392_intview/vobs/simdev/bin/east@@/main/simdev_integration/east_scripts_build1_integration"...Updating
241 (/home/p6258c/p6258c_SIMCQ00000392_intview/vobs/simdev/bin/east)...
242 Loading "vobs/simdev/bin/east" (353 bytes).
243 Done loading "/vobs/simdev/bin/east" (1 objects, copied 0 KB).
244 Checkout cancelled for "east".
245 <b><font color="#3333ff">[p6258c@seast1 bin]$</font></b>
248 <p>It would not be that difficult to cook up a script to migrate all snapshot views...</p>
250 <p class="entry-footer">
251 <span class="post-footers">Posted by at 3:44 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000702.html">Permalink</a>
253 | <a href="http://defaria.com/blogs/Status/archives/000702.html#trackback">TrackBacks (0)</a>
260 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
261 xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
262 xmlns:dc="http://purl.org/dc/elements/1.1/">
264 rdf:about="http://defaria.com/blogs/Status/archives/2008_03.html#entry-000701"
265 trackback:ping="http://defaria.com/mt/mt-tb.cgi/88"
266 dc:title="EAST Automation"
267 dc:identifier="http://defaria.com/blogs/Status/archives/2008_03.html#entry-000701"
268 dc:subject="General Dynamics"
269 dc:description="What's been done The EAST test automation tool rantest currently can run properly formated EAST tests. By properly formated we mean that they 1) run to completion and 2) report a status in their log file. Logfile collection for EAST..."
271 dc:date="2008-03-27T10:30:05-06:00" />
276 <h2 class="date-header">March 27, 2008</h2>
278 <div class="entry" id="entry-701">
279 <h3 class="entry-header">EAST Automation</h3>
280 <div class="entry-content">
281 <div class="entry-body">
282 <h3>What's been done</h3>
285 <li>The EAST test automation tool rantest currently can run <i>properly
286 formated</i> EAST tests. By <i>properly formated</i> we mean that they
287 1) run to completion and 2) report a status in their log file.</li>
289 <li>Logfile collection for EAST tests is performed and a tar file,
290 EASTLogs.tgz, is created and if run for record (-rfr) specified that
291 log file will be checked in (coded but untested - see below).</li>
293 <li>Many tests can be run in succession using the -file option and
294 specifying multiple tests in the file (See <a
295 href="http://ranweb/dokuwiki/doku.php?id=ran:rantest">rantest</a> wiki
298 <li>A rudimentary conditional test execution facility exists. For
299 example, testers can name tests then refer to them in a subsequent test
300 with an "if" statement so as to say "run this test if <named
301 test> passed (See <a
302 href="http://ranweb/dokuwiki/doku.php?id=ran:rantest">rantest</a> wiki
305 <li>A facility for running test in the background has been
306 implemented as some EAST test script must run in the background while
307 other tests run simultaneously.</li>
309 <li>A crude rendezvous system has been implemented such that rantest
310 will poll the logfile looking for a rendezvous string that will
311 indicate to rantest that the backgrounded test has reached a certain
312 point and it's OK to proceed with other tests.</li>
314 <li>Logging of what rantest does has been implemented.</li>
316 <li>A crude -script test option has been implemented that allows
317 rantest to "farm out" the verification of a test for tests that
318 require more complex verification. Any script can be coded. The only
319 requirement is that it reports success or failure through it's exit
322 <li>Worked on learning moshell as some verifications require
325 <li>Implemented a simple case of verifying that a cell is set up (a
326 manual verification step for Sim Cell Setup of preSWIT).</li>
328 <li>Ngan has created test profiles and Ross Wilson says that we are
329 going to run these test profiles through rantest this afternoon.</li>
331 <li>Documented most of <a
332 href="http://ranweb/dokuwiki/doku.php?id=ran:rantest">rantest</a>'s
333 usage on the wiki.</li>
335 <li>Ross and Gantry have created Perl scripts and TPL's such that an
336 EAST test can drive a TM500. While rantest can run such tests it needs
337 to be taught how to gather the TM500 log files produced.</li>
340 <h3>What we're impeded on</h3>
343 <li>I believe many of the SWIT tests are not currently properly
344 formatted. Such tests will need to be altered before they can be truly
345 automated through rantest</li>
347 <li>WRT preSWIT testing, I need Leslie to modify her tests to
348 properly write rendezvous strings in SIM Cell Setup so that rendezvous
349 can work and sanity/preSWIT testing can proceed.</li>
351 <li>Gather tests from Ngan (and others) </li>
353 <li>We often don't have time on the various RNC's/etc. to perform
354 testing. Some tests, i.e. SIM Cell Setup, are interruptive of other
355 EAST engineer's work.</li>
357 <li>Moshell is crude, picky and buggy and... not supported by Ericson!</li>
363 <li>Create run for record view and test out -rfr checkin
366 <li>Get EAST/TM500 test to work (currently failing) so as to
367 check/modify TM500 logfile creation</li>
369 <li>Get EAST/NMS test to work (currently non-existant?) so as to
370 check/modify NMS logfile creation.</li>
372 <li>Implement XML parsing to determine whether or not we have TM500
373 logs or NMS logs to collect. Either that or get Gantry to change the
374 format of the message indicating where the logfile is to include what
375 type of logfile it is.</li>
377 <li>Once Leslie modifies tests for rendezvous, attempt sanity again
378 and add in the -script "IsCellUp <machine> <cell>"
381 <li>Bob wants us to write a simple and a complex example of test
382 verification. Based on Doug Elder's <i>How to Analyze rnc</i>
383 document, implement it's verification steps which get progressively
384 more complex. The IsCellUp script can also serve as an example
385 verification script.</li>
389 <p class="entry-footer">
390 <span class="post-footers">Posted by at 10:30 AM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000701.html">Permalink</a>
392 | <a href="http://defaria.com/blogs/Status/archives/000701.html#trackback">TrackBacks (0)</a>
399 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
400 xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
401 xmlns:dc="http://purl.org/dc/elements/1.1/">
403 rdf:about="http://defaria.com/blogs/Status/archives/2008_03.html#entry-000700"
404 trackback:ping="http://defaria.com/mt/mt-tb.cgi/87"
405 dc:title="Sharable vs Non-sharable derived objects"
406 dc:identifier="http://defaria.com/blogs/Status/archives/2008_03.html#entry-000700"
407 dc:subject="General Dynamics"
408 dc:description=" Resolved Helpdesk ticket involving non-sharable derived objects..."
410 dc:date="2008-03-17T15:40:07-06:00" />
415 <h2 class="date-header">March 17, 2008</h2>
417 <div class="entry" id="entry-700">
418 <h3 class="entry-header">Sharable vs Non-sharable derived objects</h3>
419 <div class="entry-content">
420 <div class="entry-body">
422 <li>Resolved Helpdesk ticket involving non-sharable derived objects</li>
425 <h2>Sharable vs Non-sharable DOs</h2>
427 <p>In Clearcase terms, DOs, or Derived Objects are objects created during a build. These are created when clearmake (or omake) is used. Clearmake will create a configuration record, AKA a bill of lading - basically a record of everything that went into making this derived object. Clearmake then adds a record to the vob saying that it made this DO and if any subsequent clearmake is attempting to make this same DO (given the same input or configuration record that is) then this DO is available for wink in. At this time the DO is copied to the vob and winked into the other view that was requesting this DO be build and the DOs reference count gets incremented. Or at least that's how DOs and winkins are supposed to work</p>
429 <p>Rational also introduced a concept of <i>express building</i> which essentially creates "non-sharable DOs". A sharable DO and a non-sharable DO are essentially the same except that the advertisement of the DO is not made in the VOB.</p>
431 <p>Here the error message stated:</p>
433 <div class=code><pre>
434 'Unable to change meta type of "/vobs/rnc/rnsap/trace_support/decoder_tmp" to create derived object reference count - No such file or directory'.
437 <p>Notice the "_tmp" portion. The DO was named decoder, not decoder_tmp. I first thought perhaps Clearcase is just having a problem creating decorder_tmp which it may have needed temporarily. I tried touching that file and it was OK. I then removed the decode_tmp file I touch and tried the checkin. It failed again.</p>
439 <p>The view was marked as nshareable_dos:
441 <div class=code><pre>
442 $ ct lsview -full -properties p57347_RANCQ00028109_devview | grep Properties
443 Properties: dynamic ucmview readwrite nshareable_dos
446 <p>This is odd because the default, as shown by:</p>
448 <div class=code><pre>
449 $ ct lssite -inquire | grep shareable
450 view_shareable_dos=TRUE
453 <p>is turned on for the site. I then thought that perhaps the problem is trying to check in a nonshareable DO is not allowed. Reading on the ct man winkin page is says:</p>
456 winkin also converts nonshareable DOs to shareable (promoted) DOs. If you specify a nonshareable DO, winkin first advertises the DO by writing information about it to the VOB, and then promotes it by copying its data container into the VOB and moving its configuration record into the VOB. Because a shareable DO cannot have nonshareable sub-DOs or sibling DOs, winking in a nonshareable DO also advertises its sub-DOs and siblings, converting them to shareable DOs. With -siblings, winkin advertises and promotes the DO's siblings.
459 <p>However even a ct winkin decoder gave the same error message. So then I again touched decoder_tmp and then ran the ct winkin and it worked! So I then checked in this derived object.</p>
461 <p><b>Note</b>: You can change changed a view to sharable_dos with:</p>
463 <div class=code><pre>
464 $ ct chview -sharable_dos p57347_RANCQ00028109_devview
468 <p class="entry-footer">
469 <span class="post-footers">Posted by at 3:40 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000700.html">Permalink</a>
471 | <a href="http://defaria.com/blogs/Status/archives/000700.html#trackback">TrackBacks (0)</a>
478 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
479 xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
480 xmlns:dc="http://purl.org/dc/elements/1.1/">
482 rdf:about="http://defaria.com/blogs/Status/archives/2008_03.html#entry-000699"
483 trackback:ping="http://defaria.com/mt/mt-tb.cgi/86"
484 dc:title="Santity Progress"
485 dc:identifier="http://defaria.com/blogs/Status/archives/2008_03.html#entry-000699"
486 dc:subject="General Dynamics"
487 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..."
489 dc:date="2008-03-05T11:33:58-06:00" />
494 <h2 class="date-header">March 5, 2008</h2>
496 <div class="entry" id="entry-699">
497 <h3 class="entry-header">Santity Progress</h3>
498 <div class="entry-content">
499 <div class="entry-body">
501 <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>
503 <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>
505 <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>
507 <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>
509 <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>
511 <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>
513 <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>
515 <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>
517 <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>
519 <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>
521 <li>Added hack to get around Expect problems</li>
523 <li>Determined that messages seen in the text logfile are not already shown in the binary logfile</li>
526 <h2>Expect problems</h2>
528 <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>
530 <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>
532 <div class=code><pre>
536 <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>
538 <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>
540 <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>
542 <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>
544 <p>Otherwise I cannot guarantee that testing will not occasionally fail because of this.</p>
546 <p class="entry-footer">
547 <span class="post-footers">Posted by at 11:33 AM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000699.html">Permalink</a>
549 | <a href="http://defaria.com/blogs/Status/archives/000699.html#trackback">TrackBacks (0)</a>