You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
/* So var inside pre gets same font as var in paragraphs. */
14
11
var { font-family: monospace; }
15
12
</style>
16
13
</head>
17
14
18
15
<body>
19
-
<divclass="title">
20
-
<H1>Title</H1>
21
-
A Scheme API for test suites
22
-
</div>
16
+
<h1><ahref="https://srfi.schemers.org/"><imgclass="srfi-logo" src="https://srfi.schemers.org/srfi-logo.svg" alt="SRFI surfboard logo" /></a>64: A Scheme API for test suites</h1>
<p>This SRFI is currently in <em>final</em> status. Here is <ahref="https://srfi.schemers.org/srfi-process.html">an explanation</a> of each status that a SRFI can hold. To provide input on this SRFI, please send email to <code><ahref="mailto:srfi+minus+64 +at+srfi+dotschemers+dot+org">srfi-64 @<spanclass="antispam">nospam</span>srfi.schemers.org</a></code>. To subscribe to the list, follow <ahref="https://srfi.schemers.org/srfi-list-subscribe.html">these instructions</a>. You can access previous messages via the mailing list <ahref="https://srfi-email.schemers.org/srfi-64 ">archive</a>.</p>
31
24
<ul>
@@ -39,7 +32,7 @@ <H1>Status</H1>
39
32
</p>
40
33
41
34
42
-
<H1>Abstract</H1>
35
+
<h2>Abstract</h2>
43
36
<p>
44
37
This defines an API for writing <dfn>test suites</dfn>, to make it easy
45
38
to portably test Scheme APIs, libraries, applications, and implementations.
@@ -48,7 +41,7 @@ <H1>Abstract</H1>
48
41
also supports writing new test-runners, to allow customization
49
42
of reporting and processing the result of running test suites.</p>
50
43
51
-
<h1>Rationale</h1>
44
+
<h2>Rationale</h2>
52
45
53
46
<p>The Scheme community needs a standard for writing test suites.
54
47
Every SRFI or other library should come with a test suite.
@@ -87,14 +80,14 @@ <h1>Rationale</h1>
87
80
syntax is to allow specific tests to be skipped without evaluating sub-expressions, or for implementations
88
81
to add features such as printing line numbers or catching exceptions.</p>
89
82
90
-
<h1>Specification</h1>
83
+
<h2>Specification</h2>
91
84
92
85
<p>While this is a moderately complex specification,
93
86
you should be able to write simple test suites after just reading the
94
87
first few sections below. More advanced functionality, such
95
88
as writing a custom test-runner, is at the end of the specification.</p>
96
89
97
-
<h2>Writing basic test suites</h2>
90
+
<h3>Writing basic test suites</h3>
98
91
<p>Let's start with a simple example.
99
92
This is a complete self-contained test-suite.</p>
100
93
@@ -129,7 +122,7 @@ <h2>Writing basic test suites</h2>
129
122
and <code>test-end</code> will cause a summary to be displayed
130
123
in an implementation-specified manner.</p>
131
124
132
-
<h3>Simple test-cases</h3>
125
+
<h4>Simple test-cases</h4>
133
126
<p>
134
127
Primitive test cases test that a given condition is true.
135
128
They may have a name.
@@ -188,7 +181,7 @@ <h3>Simple test-cases</h3>
188
181
(<= test-expr (+ expected error))))
189
182
</pre>
190
183
191
-
<h3>Tests for catching errors</h3>
184
+
<h4>Tests for catching errors</h4>
192
185
<p>
193
186
We need a way to specify that evaluation <em>should</em> fail.
194
187
This verifies that errors are detected when required.</p>
@@ -225,7 +218,7 @@ <h3>Tests for catching errors</h3>
225
218
An implementation that cannot catch exceptions should skip
226
219
<code>test-error</code> forms.</p>
227
220
228
-
<h3>Testing syntax</h3>
221
+
<h4>Testing syntax</h4>
229
222
<p>
230
223
Testing syntax is tricky, especially if we want to
@@ -352,7 +345,7 @@ <h3>Handling set-up and cleanup</h3>
352
345
<p><b>Erratum note:</b><ahref="https://github.com/scheme-requests-for-implementation/srfi-64/blob/4470ffdec71b1cf61633b664958a3ce5e6997710/srfi-64.html">Earlier versions</a> had a non-working example.
353
346
354
347
<!--
355
-
<h2>Test suites</h2>
348
+
<h3>Test suites</h3>
356
349
<p>
357
350
<i>(Not sure how useful this is, given <code>test-group</code>).</i>
358
351
<p>A <dfn>test suite</dfn> is a test group that can (and must) be
@@ -374,12 +367,12 @@ <h2>Test suites</h2>
374
367
</pre>
375
368
-->
376
369
377
-
<h2>Conditonal test-suites and other advanced features</h2>
370
+
<h3>Conditonal test-suites and other advanced features</h3>
378
371
<p>
379
372
The following describes features for controlling which tests to execute,
380
373
or specifing that some tests are <em>expected</em> to fail.</p>
381
374
382
-
<h3>Test specifiers</h3>
375
+
<h4>Test specifiers</h4>
383
376
<p>Sometimes we want to only run certain tests, or we know that
384
377
certain tests are expected to fail.
385
378
A <dfn>test specifier</dfn> is one-argument function that takes a test-runner
@@ -428,7 +421,7 @@ <h3>Test specifiers</h3>
428
421
<code><var>name</var></code><i>(i.e. a string)</i><br/>
429
422
Convenience short-hand for <code>(test-match-name <var>name</var>)</code>.</p>
0 commit comments