• Home
  • History
  • Annotate
  • only in /external/webkit/Source/JavaScriptCore/tests/mozilla/
NameDateSize

..21-Nov-20124 KiB

ecma/21-Nov-20124 KiB

ecma_2/21-Nov-20124 KiB

ecma_3/21-Nov-20124 KiB

expected.html21-Nov-201232.1 KiB

Getopt/21-Nov-20124 KiB

importList.html21-Nov-20122.1 KiB

js1_1/21-Nov-20124 KiB

js1_2/21-Nov-20124 KiB

js1_3/21-Nov-20124 KiB

js1_4/21-Nov-20124 KiB

js1_5/21-Nov-20124 KiB

js1_6/21-Nov-20124 KiB

jsDriver.pl21-Nov-201238.6 KiB

Makefile21-Nov-2012110

menufoot.html21-Nov-2012153

menuhead.html21-Nov-20123.6 KiB

mkhtml.pl21-Nov-20122.5 KiB

mklistpage.pl21-Nov-20127.7 KiB

README-jsDriver.html21-Nov-201214.2 KiB

runtests.pl21-Nov-201214.4 KiB

template.js21-Nov-20122.1 KiB

README-jsDriver.html

1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2<html>
3  <head>
4    <title>jsDriver.pl</title>
5  </head>
6
7  <body bgcolor="white">
8    <h1 align="right">jsDriver.pl</h1>
9
10    <dl>
11      <dt><b>NAME</b></dt>
12      <dd>
13        <b>jsDriver.pl</b> - execute JavaScript programs in various shells in
14        batch or single mode, reporting on failures encountered.
15        <br>
16        <br>
17
18      <dt><b>SYNOPSIS</b></dt>
19      <dd>
20        <table>
21          <tr>
22            <td align="right" valign="top">
23              <code>
24                <b>jsDriver.pl</b>
25              </code>
26            </td>
27            <td>
28              <code>
29                [-hkt] [-b BUGURL] [-c CLASSPATH] [-f OUTFILE]
30                [-j JAVAPATH] [-l TESTLIST ...] [-L NEGLIST ...] [-p TESTPATH]
31                [-s SHELLPATH] [-u LXRURL] [--help] [--confail] [--trace]
32                [--classpath=CLASSPATH] [--file=OUTFILE] [--javapath=JAVAPATH]
33                [--list=TESTLIST] [--neglist=TESTLIST] [--testpath=TESTPATH]
34                [--shellpath=SHELLPATH] [--lxrurl=LXRURL] {-e ENGINETYPE |
35                --engine=ENGINETYPE}
36              </code>
37            </td>
38          </tr>
39        </table>
40        <br>
41        <br>
42
43      <dt><b>DESCRIPTION</b></dt>
44      <dd>
45        <b>jsDriver.pl</b> is normally used to run a series of tests against
46        one of the JavaScript shells.  These tests are expected to be laid out
47        in a directory structure exactly three levels deep.  The first level
48        is considered the <b>root</b> of the tests, subdirectories under the
49        <b>root</b> represent <b>Test Suites</b> and generally mark broad
50        categories such as <i>ECMA Level 1</i> or <i>Live Connect 3</i>.  Under the
51        <b>Test Suites</b> are the <b>Test Categories</b>, which divide the 
52        <b>Test Suite</b> into smaller categories, such as <i>Execution Contexts</i>
53        or <i>Lexical Rules</i>.  Testcases are located under the
54        <B>Test Categories</b> as normal JavaScript (*.js) files.  
55        <p>
56          If a file named <b>shell.js</b> exists in either the
57          <b>Test Suite</b> or the <b>Test Category</b> directory, it is
58          loaded into the shell before the testcase.  If <b>shell.js</b>
59          exists in both directories, the version in the <b>Test Suite</b>
60          directory is loaded <i>first</i>, giving the version associated with
61          the <b>Test Category</b> the ability to override functions previously
62          declared.  You can use this to
63          create functions and variables common to an entire suite or category.
64        <p>
65          Testcases can report failures back to <b>jsDriver.pl</b> in one of
66          two ways.  The most common is to write a line of text containing
67          the word <code>FAILED!</code> to <b>STDOUT</b> or <b>STDERR</b>.
68          When the engine encounters a matching line, the test is marked as
69          failed, and any line containing <code>FAILED!</code> is displayed in
70          the failure report.  The second way a test case can report failure is
71          to return an unexpected exit code.  By default, <b>jsDriver.pl</b>
72          expects all test cases to return exit code 0, although a test
73          can output a line containing <code>EXPECT EXIT <i>n</i></code> where
74          <i>n</i> is the exit code the driver should expect to see.  Testcases
75          can return a nonzero exit code by calling the shell function
76          <code>quit(<i>n</i>)</code> where <code><i>n</i></code> is the
77          code to exit with.  The various JavaScript shells report
78          non-zero exit codes under the following conditions:
79
80          <center>
81            <table border="1">
82              <tr>
83                <th>Reason</th>
84                <th>Exit Code</th>
85              </tr>
86              <tr>
87                <td>
88                  Engine initialization failure.
89                </td>
90                <td>
91                  1
92                </td>
93              </tr>
94              <tr>
95                <td>
96                  Invalid argument on command line.
97                </td>
98                <td>
99                  2
100                </td>
101              </tr>
102              <tr>
103                <td>
104                  Runtime error (uncaught exception) encountered.
105                </td>
106                <td>
107                  3
108                </td>
109              </tr>
110              <tr>
111                <td>
112                  File argument specified on command line not found.
113                </td>
114                <td>
115                  4
116                </td>
117              </tr>
118              <tr>
119                <td>
120                  Reserved for future use.
121                </td>
122                <td>
123                  5-9
124                </td>
125              </tr>
126            </table>
127          </center>
128          <br>
129          <br>
130
131      <dt><b>OPTIONS</b></dt>
132      <dd>
133        <dl>
134          <dt><b>-b URL, --bugurl=URL</b></dt>
135          <dd>
136            Bugzilla URL.  When a testcase writes a line in the format
137            <code>BUGNUMBER <i>n</i></code> to <b>STDOUT</b> or <b>STDERR</b>,
138            <b>jsDriver.pl</b> interprets <code><i>n</i></code> as a bugnumber
139            in the <a href="http://bugzilla.mozilla.org">BugZilla</a> bug
140            tracking system.  In the event that a testcase which has specified
141            a bugnumber fails, a hyperlink to the BugZilla database
142            will be included in the output by prefixing the bugnumber with the
143            URL specified here.  By default, URL is assumed to be
144            &quot;http://bugzilla.mozilla.org/show_bug.cgi?id=";.
145            <br>
146            <br>
147            <a name="classpath"></a>
148          <dt><b>-c PATH, --classpath=PATH</b></dt>
149          <dd>
150            Classpath to pass the the Java Virtual Machine.  When running tests
151            against the <b>Rhino</b> engine, PATH will be passed in as the value
152            to an argument named &quot;-classpath&quot;.  If your particular JVM
153            does not support this option, it is recommended you specify your
154            class path via an environment setting.  Refer to your JVM
155            documentation for more details about CLASSPATH.
156            <br>
157            <br>
158          <dt><b>-e TYPE ..., --engine=TYPE ...</b></dt>
159          <dd>
160            Required.  Type of engine(s) to run the tests against.  TYPE can be
161            one or more of the following values:
162            <center>
163              <table border="1">
164                <tr>
165                  <th>TYPE</th>
166                  <th>Engine</th>
167                </tr>
168                <tr>
169                  <td>lcopt</td>
170                  <td>LiveConnect, optimized</td>
171                </tr>
172                <tr>
173                  <td>lcdebug</td>
174                  <td>LiveConnect, debug</td>
175                </tr>
176                <tr>
177                  <td>rhino</td>
178                  <td>Rhino compiled mode</td>
179                </tr>
180                <tr>
181                  <td>rhinoi</td>
182                  <td>Rhino interpreted mode</td>
183                </tr>
184                <tr>
185                  <td>rhinoms</td>
186                  <td>Rhino compiled mode for the Microsoft VM (jview)</td>
187                </tr>
188                <tr>
189                  <td>rhinomsi</td>
190                  <td>Rhino interpreted mode for the Microsoft VM (jview)</td>
191                </tr>
192                <tr>
193                  <td>smopt</td>
194                  <td>Spider-Monkey, optimized</td>
195                </tr>
196                <tr>
197                  <td>smdebug</td>
198                  <td>Spider-Monkey, debug</td>
199                </tr>
200                <tr>
201                  <td>xpcshell</td>
202                  <td>XPConnect shell</td>
203                </tr>
204              </table>
205            </center>
206            <br>
207            <br>
208          <dt><b>-f FILE, --file=FILE</b></dt>
209          <dd>
210            Generate html output to the HTML file named by FILE.  By default,
211            a filename will be generated using a combination of the engine type
212            and a date/time stamp, in the format: 
213            <code>results-<i>&lt;engine-type&gt;</i>-<i>&lt;date-stamp&gt;</i>.html</code>
214            <br>
215            <br>
216          <dt><b>-h, --help</b></dt>
217          <dd>
218            Prints usage information.
219            <br>
220            <br>
221          <dt><b>-j PATH, --javapath=PATH</b></dt>
222          <dd>
223            Set the location of the Java Virtual Machine to use when running
224            tests against the <b>Rhino</b> engine.  This can be used to test
225            against multiple JVMs on the same system.
226            <br>
227            <br>
228          <dt><b>-k, --confail</b></dt>
229          <dd>
230            Log failures to the console.  This will show any failures, as they
231            occur, on <b>STDERR</b> in addition to creating the HTML results
232            file.  This can be useful for times when it may be 
233            counter-productive to load an HTML version of the results each time
234            a test is re-run.
235            <br>
236            <br>
237          <dt><b>-l FILE ..., --list=FILE ...</b></dt>
238          <dd>
239            Specify a list of tests to execute.  FILE can be a plain text file
240            containing a list of testcases to execute, a subdirectory 
241            in which to
242            <a href="http://www.instantweb.com/~foldoc/foldoc.cgi?query=grovel">grovel</a>
243            for tests, or a single testcase to execute.  Any number of FILE 
244            specifiers may follow this option.  The driver uses the fact that a
245            valid testcase should be a file ending in .js to make the distinction
246            between a file containing a list of tests and an actual testcase.
247            <br>
248            <br>
249          <dt><b>-L FILE ..., --neglist=FILE ...</b></dt>
250          <dd>
251            Specify a list of tests to skip.  FILE has the same meaning as in
252            the <b>-l</b> option.  This option is evaluated after
253            <b>all</b> <b>-l</b> and <b>--list</b> options, allowing a user
254            to subtract a single testcase, a directory of testcases, or a
255            collection of unrelated testcases from the execution list.
256            <br>
257            <br>
258          <dt><b>-p PATH, --testpath=PATH</b></dt>
259          <dd>
260            Directory holding the &quot;Test Suite&quot; subdirectories.  By
261            default this is ./
262            <br>
263            <br>
264          <dt><b>-s PATH, --shellpath=PATH</b></dt>
265          <dd>
266            Directory holding the JavaScript shell.  This can be used to override
267            the automatic shell location <b>jsDriver.pl</b> performs based on
268            you OS and engine type.  For Non <b>Rhino</b> engines, this 
269            includes the name of the executable as well as the path.  In
270            <b>Rhino</b>, this path will be appended to your 
271            <a href="#classpath">CLASSPATH</a>.  For the 
272            <b>SpiderMonkey</b> shells, this value defaults to
273            /src/&lt;Platform-and-buildtype-specific-directory&gt;/[js|jsshell],
274            for the
275            <b>LiveConnect</b> shells,
276            /src/liveconnect/src/&lt;Platform-and-buildtype-specific-directory&gt;/lschell
277            and for the <b>xpcshell</b> the default is the value of your 
278            <code>MOZILLA_FIVE_HOME</code> environment variable.  There is no
279            default (as it is usually not needed) for the <b>Rhino</b> shell.
280            <br>
281            <br>
282          <dt><b>-t, --trace</b></dt>
283          <dd>
284            Trace execution of <b>jsDriver.pl</b>.  This option is primarily
285            used for debugging of the script itself, but if you are interested in
286            seeing the actual command being run, or generally like gobs of
287            useless information, you may find it entertaining.
288            <br>
289            <br>
290          <dt><b>-u URL, --lxrurl=URL</b></dt>
291          <dd>
292            Failures listed in the HTML results will be hyperlinked to the
293            lxr source available online by prefixing the test path and
294            name with this URL.  By default, URL is
295            http://lxr.mozilla.org/mozilla/source/js/tests/
296            <br>
297            <br>
298
299        </dl>
300      <dt><b>SEE ALSO</b></dt>
301      <dd>
302        <a href="http://lxr.mozilla.org/mozilla/source/js/tests/jsDriver.pl">jsDriver.pl</a>,
303        <a href="http://lxr.mozilla.org/mozilla/source/js/tests/mklistpage.pl">mklistpage.pl</a>,
304        <a href="http://www.mozilla.org/js/">http://www.mozilla.org/js/</a>,
305        <a href="http://www.mozilla.org/js/tests/library.html">http://www.mozilla.org/js/tests/library.html</a>
306        <br>
307        <br>
308
309      <dt><b>REQUIREMENTS</b></dt>
310      <dd>
311        <b>jsDriver.pl</b> requires the
312        <a href="http://search.cpan.org/search?module=Getopt::Mixed">Getopt::Mixed</a>
313        perl package, available from <a href="http://www.cpan.org">cpan.org</a>.
314        <br>
315        <br>
316      <dt><b>EXAMPLES</b></dt>
317      <dd>
318          <code>perl jsDriver.pl -e smdebug -L lc*</code><br>
319          Executes all tests EXCEPT the liveconnect tests against the
320          SpiderMonkey debug shell, writing the results
321          to the default result file.  (NOTE: Unix shells take care of wildcard
322          expansion, turning <code>lc*</code> into <code>lc2 lc3</code>.  Under
323          a DOS shell, you must explicitly list the directories.)
324        <p>
325          <code>perl jsDriver.pl -e rhino -L rhino-n.tests</code><br>
326          Executes all tests EXCEPT those listed in the
327          <code>rhino-n.tests</code> file.
328        <p>
329          <code>perl -I/home/rginda/perl/lib/ jsDriver.pl -e lcopt -l lc2
330            lc3 -f lcresults.html -k</code><br>
331          Executes ONLY the tests under the <code>lc2</code> and <code>lc3</code>
332          directories against the LiveConnect shell.  Results will be written to
333          the file <code>lcresults.html</code> <b>AND</b> the console.  The 
334          <code>-I</code> option tells perl to look for modules in the
335          <code>/home/rginda/perl/lib</code> directory (in addition to the
336          usual places), useful if you do not have root access to install new
337          modules on the system.
338    </dl>
339    <hr>
340    Author: Robert Ginda<br>
341    Currently maintained by <i><a href="mailto:pschwartau@netscape.com">Phil Schwartau</a> </i><br>
342<!-- Created: Thu Dec  2 19:08:05 PST 1999 -->
343  </body>
344</html>
345