File: Advanced.shtml

package info (click to toggle)
dart 0.20061109-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, lenny
  • size: 5,668 kB
  • ctags: 247
  • sloc: tcl: 5,652; perl: 256; python: 141; cpp: 79; makefile: 68; sh: 36
file content (186 lines) | stat: -rw-r--r-- 6,491 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<!--#include file="Head.html"-->

<body bgcolor="#FFFFFF" leftmargin=0 topmargin=0 text="black" link="#0000FF"
vlink="#000000" alink="#000000">

<!--#include file="Table.html"-->

<table>

<tr>
<!--#include file="SideBar.html"-->

    <td width="550" valign="top" bgcolor="#FFFFFF">
    <div align="left">

    <a name="general"></a><font size=5>Advanced Dart</font>

<h3>Putting a Project Specific Logo on DartBoards</h3>

<h3>When a Test Crashes on Windows...</h3>

<p>When a test crashes on Windows, the operating system displays a
dialog asking whether you would like to debug or exit the application.
Dart will stop running tests until a user responds to this dialog.

<p>You can suppress this dialog by modifying two register settings for
<code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug</code>
to be

<ul>
<li> "Debugger"="dummy.bat"
<li> "Auto"="1"
</ul>

Setting "Auto" to "1" instructs the OS to run the program "dummy.bat"
automatically when an application crashes.  Since "dummy.bat" does not
exist, the application simply terminates when it crashes. Normally,
"Auto" is set to "0" indicating the dialog should be displayed and
"Debugger" is set to msdev.


<h3>Email Notifications for Continuous Builds</h3>

<h3>BuildName Notes, BuildStamp Notes</h3>

<h3>Code Coverage</h3>

<p>Assuming you are using <code>gcc</code>, add <code> -fprofile-arcs -ftest-coverage</code> to the compiler
flags. You may also need to use static library linking. Make sure your code is rebuilt from scratch. Then set-up Dart to
run with the <code>Test</code> and <code> Coverage</code> commands. While each test is run, your code will create a set
of coverage files. Dart invokes <code> gcov</code> to process these files.</p>

<p>Hint: Use static libs with coverage. It appears that the compiler flags are
not compatible with dynamic libraries.</p>

<p>Hint: Adding an empty file called .NoDartCoverage to a directory will cause Dart to
ignore any coverage information for files in that directory and its
subdirectories. Alternatively fill the file with one regular expression per line, to
match files you want ignored.</p>

<h3>Checking for memory errors</h3>
<h4>Purify</h4>
<h4>Valgrind</h4>
<p><a href="http://valgrind.kde.org/">valgrind</a> is an open-source profiling tool
that gives results similar to purify. You will need to set VALGRIND_COMMAND in CMake to
the location of your valgrind executable. Optionally, you can also set
VALGRIND_COMMAND_OPTIONS, though it defaults to the following.
<p><code> -q --skin=memcheck
--leak-check=yes --show-reachable=yes --workaround-gcc296-bugs=yes
--num-callers=100</code></p>
<p>Finally, specify the Valgrind
command when running the dashboard client</p>
<p><code>/usr/bin/tclsh /path/to/Dart/Source/Client/DashboardManager.tcl
DartConfiguration.tcl Nightly   Start Update Configure Build  Valgrind Submit</code></p>
<p>You can see an example of a working valgrind dashboard&nbsp; one
or two days per week (try Mondays) on the <a href="http://vxl.sourceforge.net/">VXL</a>
<a href="http://www.cs.rpi.edu/research/vision/vxl/Testing/Dashboard/MostRecentResults-Nightly/Dashboard.html">dashboard</a>.</p>



<h3>Named Measurements in Dart</h3>




    <p>&nbsp;&quot;Named measurements&quot; allow a test to
output information in its stdout stream that gets presented differently from the
remainder of the stdout of a test.&nbsp; Specifically, named measurements take
the form of</p>

<p><code>
&lt;DartMeasurement name=&quot;foo&quot; type=&quot;numeric/double&quot;
encoding=&quot;none&quot; compression=&quot;none&quot;&gt;
 data
&lt;/DartMeasurement&gt;</code></p>

<p><code>
&lt;DartMeasurementFile name=&quot;foo&quot; type=&quot;image/jpeg&quot;&gt;
 filename
&lt;/DartMeasrementFile&gt;</code></p>

<p>The &quot;type&quot; can be one of the following:
    <ul>
      <li><code>text/plain</code></li>
      <li><code>text/string</code></li>
      <li><code>text/html</code></li>
      <li><code>text/xml</code></li>
      <li><code>link/url</code></li>
      <li><code>link/image</code></li>
      <li><code>numeric/integer</code></li>
      <li><code>numeric/float</code></li>
      <li><code>numeric/double</code></li>
      <li><code>numeric/boolean</code></li>
      <li><code>image/png</code></li>
      <li><code>image/jpeg</code></li>
    </ul>
<p>
The &quot;encoding&quot; can be:
  <ul>
    <li><code>none</code> (default, does not have to
be specified)</li>
    <li><code>base64</code></li>
  </ul>
<p>
The &quot;compression&quot; can be:
  <ul>
    <li><code>none</code>&nbsp; (default, does not have to
be specified)</li>
    <li><code>gzip</code></li>
  </ul>
<p>
The &quot;encoding&quot; and &quot;compression&quot; attributes specify how the
data within the tag is encoded or
compressed. In most cases, the encoding and compression will be
&quot;none&quot;.
</p>
<p>
The <code> &lt;DartMeasurementFile&gt;&lt;/DartMeasurementFile&gt;</code> tags are provided
for convenience.&nbsp; This tag will
pick the appropriate encoding/compression schemes and convert the tag to a <code> &lt;DartMeasurement&gt;</code>
tag.
</p>
<p>
Stdout of the test will be scanned for these tags and the information extracted
into <code>Test.xml</code>. This
data will be presented in a table on the Test result HTML page.&nbsp; The row
headings will be the &quot;name&quot;
of the measurements.&nbsp; The table entries will provide the measurement values
for <code>text/string</code>, <code>link/url</code>, <code>link/image</code>, <code>numeric/*</code>,
<code> image/png</code> and <code>image/jpeg</code>.&nbsp; The table
entries will be links for <code>text/xml</code>, <code> text/html </code> and <code>text/plain</code>.
</p>
<p>
After the table of values, the &quot;rest&quot; (everything that was not within
a Dart tag) of the test's
stdout will be displayed.
</p>
<p>
Currently, the <code>numeric/*</code>, <code>text/string</code>, <code>link/*</code>, and
<code> image/*</code> named measurements
have been implemented
and are in the current repository. The named measurements <code>text/plain</code>,
<code> text/html</code>
and <code> text/xml</code> have not
been implemented yet. Furthermore, the combinations of encodings and
compressions have not been
completely flushed out. But given these restrictions, named measurements are
currently very useful.
</p>





<h3>Debug verses Release</h3>


    </div>
    </td>
</tr>

</body>