summaryrefslogtreecommitdiff
path: root/support/vvcode/doc/vvtest.tex
blob: 60fef1995906713d868df6c8b91b51c42869da7c (plain)
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
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
@c *************************************************************************
@c CHAPTER: How to test VVcode
@c *************************************************************************
@c    node-name, next, previous,  up
@node Testing Guide, Testing Guide, Top, Top
@chapter How to test VVcode


@c =========================================================================
@c SECTION: Testing VVencode
@c =========================================================================
@section Testing VVencode


@subsection User Help
@itemize @bullet
  @item @samp{help} qualifier should cause ``usage'' message to be displayed
  @item invalid qualifier (e.g. @samp{ZZZZ}) should cause ``usage'' message
        to be displayed
@end itemize


@subsection User Information (@samp{log} & @samp{debug} qualifiers)
@itemize @bullet
  @item @samp{log} with no qualifier value writes to @code{stderr}
  @item @samp{log} qualifier value specifying invalid output file
  @item @samp{log} file spec missing @file{.log} extension component
        @file{.log} added if @code{STICKY_DEFAULTS} defined)
  @item @samp{debug} writes extra information to @code{stderr}
  @item @samp{debug} assumes @samp{log} even if @samp{log} not specified
@end itemize


@subsection File overwriting (@samp{overwrite_files} qualifier)
@itemize @bullet
  @item @samp{overwrite_files} should always overwrite unless the operating
        system objects
  @item should ask before overwriting an existing file
  @item don't ask whether to overwrite if reading from @code{stdin} - just
        fail
@end itemize


@subsection VVE header file specification (@samp{header_file} qualifier)
@itemize @bullet
  @item missing qualifier value
  @item if @samp{header_file} not specified, the input file specification
        is used, stripped of any preamble and postamble components
  @item check that command line value overrides input file specification
        and is used without modification
@end itemize


@subsection Maximum VVE file size (@samp{split_size} qualifier)
@itemize @bullet
  @item missing qualifier value
  @item invalid qualifier (less than 4)
  @item check that O/P files are really no greater than this size
  @item file splitting disabled when writing to @code{stdout}, a pipe or
        non-file device
@end itemize


@subsection Input file examination
@itemize @bullet
  @item mode
  @item format
  @item modification time (unsupported timestamps ``normalized'')
  @item maximum record length
  @item longest record length
  @item unsupported file organizations rejected (mainly by format and
        record length)
@end itemize


@subsection File mode (@samp{mode} qualifier)
@itemize @bullet
  @item missing qualifier value
  @item invalid qualifier value
  @item check that command line value overrides @code{examine_file()} and
        default mode values
  @item check that @code{examine_file()} mode value overrides default
@end itemize


@subsection File format (@samp{format} qualifier)
@itemize @bullet
  @item missing qualifier value
  @item invalid qualifier value
  @item check that command line value overrides @code{examine_file()} and
        default format values
  @item check that @code{examine_file()} format value overrides default
@end itemize


@subsection File record length (@samp{record_length} qualifier)
@itemize @bullet
  @item missing qualifier value
  @item invalid qualifier value (within OS limits and < 65536)
  @item check that command line value overrides @code{examine_file()} and
        default format values and also resets longest record length
  @item check that @code{examine_file()} format value overrides default
@end itemize


@subsection File timestamp (@samp{timestamp} qualifier)
@itemize @bullet
  @item missing qualifier value (optional on some systems, required on
        others)
  @item invalid qualifier value (before 1970 or after 2037)
  @item check that command line value overrides @code{examine_file()} value 
@end itemize


@subsection Encoding table (@samp{encoding_table} qualifier)
@itemize @bullet
  @item missing qualifier file spec
  @item non-existent file specified
  @item file spec missing @file{.enc} extension component 
  @item short encoding table file: @file{tooshort.enc}
  @item long encoding table file: @file{toolong.enc}
  @item correct encoding table file: @file{uucode.enc}
  @item duplication of character(s) in encoding file: @file{duplicat.enc}
  @item contents of file specified on command line overrides default
        table
@end itemize


@subsection Character set translation (@samp{translation_file} qualifier)
@itemize @bullet
  @item missing qualifier file spec
  @item non-existent file specified
  @item file spec missing @file{.xlt} extension component
  @item comment handling
  @item correct translation table file: @file{encode.xlt}
  @item short translation table file: @file{tooshort.xlt}
  @item long translation table file: @file{toolong.xlt}
  @item translation table with invalid values: @file{badvalue.xlt}
  @item translation of unsupported characters: @file{toascii.xlt}
  @item missing @file{xlt-from} header: @file{frommiss.xlt}
  @item invalid @file{xlt-from} header value: @file{frombad.xlt}
  @item missing @file{xlt-to} header: @file{tomiss.xlt}
  @item invalid @file{xlt-to} header value: @file{tobad.xlt}
  @item missing @file{xlt-substchar} header: @file{submiss.xlt}
  @item invalid @file{xlt-substchar} header value: @file{subbad.xlt}
  @item @file{xlt-from} character set different to the local character set:
        @file{difffrom.xlt}
@end itemize


@subsection Input file
@itemize @bullet
  @item missing command line value
  @item non-existent file specified
  @item file opened using the correct parameters (mode, format etc)
  @item rejection of unsupported file types
  @item specify null device (@code{NUL}, @code{NL:}, @code{/dev/null} etc)
  @item specify zero length (empty) file
  @item specify @code{stdin}
@end itemize


@subsection Output file
@itemize @bullet
  @item missing command line value - use input file name plus @file{.vve}
        extension
  @item invalid or unwritable file specification
  @item check correct application of file specification defaults when
        partial specification is supplied (if @code{STICKY_DEFAULTS}
        defined) 
  @item O/P file opened using the correct parameters (mode, format etc)
  @item specify null device (@code{NUL}, @code{NL:}, @code{/dev/null} etc)
  @item specify @code{stdout}
@end itemize


@subsection Internal
@itemize @bullet
  @item for variable length records, check that zero and maximum length
        records are handled and recorded correctly
  @item total byte count - may be different for text/binary
  @item CRC-32 value (check with ZIP or ARJ) - may be different for
        text/binary
  @item internal buffer allocation
  @item file closing
  @item running out of memory
  @item log information
@end itemize
      


@c =========================================================================
@c SECTION: Testing VVdecode
@c =========================================================================
@section Testing VVdecode

@subsection User Help
@itemize @bullet
  @item @samp{help} qualifier should cause ``usage'' message to be displayed
  @item invalid qualifier (e.g. @samp{ZZZZ}) should cause ``usage'' message
        to be displayed
@end itemize


@subsection User Information (@samp{log} & @samp{debug} qualifiers)
@itemize @bullet
  @item @samp{log} with no qualifier value
  @item @samp{log} qualifier value specifying invalid output file
  @item @samp{log} file spec missing @file{.log} extension component
  @item @samp{debug} generates extra information
  @item @samp{debug} assumes @samp{log} even if @samp{log} not specified
@end itemize


@subsection File overwriting (@samp{overwrite_files} qualifier)
@itemize @bullet
  @item @samp{overwrite_files} should always overwrite unless the operating
        system objects
  @item should ask before overwriting an existing file
  @item when reading from a pipe or non-file device, don't ask whether
        to overwrite - just fail
@end itemize


@subsection VVE input file examination
@itemize @bullet
  @item @code{decodeversion}
  @item @code{operatingsystem}
  @item @code{characterset}
  @item @code{comment}
  @item @code{mode}
  @item @code{format}
  @item @code{modification time}
  @item @code{recordlength}
  @item @code{table}
@end itemize


@subsection File mode (@samp{mode qualifier})
@itemize @bullet
  @item missing qualifier value
  @item invalid qualifier value
  @item check that command line value overrides VVE file and default
        mode values
  @item check that VVE file mode value overrides default
@end itemize


@subsection File format (@samp{format qualifier})
@itemize @bullet
  @item missing qualifier value
  @item invalid qualifier value
  @item check that command line value overrides VVE file and default
        format values
  @item check that VVE file format value overrides default
@end itemize


@subsection File record length (@samp{record_length} qualifier)
@itemize @bullet
  @item missing qualifier value
  @item invalid qualifier value (within OS limits and < 65536)
  @item check that command line value overrides VVE file and default
        format values and also resets longest record length
  @item check that VVE file format value overrides default
@end itemize


@subsection File timestamp (@samp{timestamp} qualifier)
@itemize @bullet
  @item missing qualifier value (optional on some systems, required on
        others)
  @item invalid qualifier value (before 1970 or after 2037)
  @item check that command line value overrides VVE file value 
@end itemize


@subsection Encoding table (@samp{encoding_table} qualifier)
@itemize @bullet
  @item missing qualifier file spec
  @item non-existent file specified
  @item file spec missing @file{.enc} extension component 
  @item short encoding table file: @file{tooshort.enc}
  @item long encoding table file: @file{toolong.enc}
  @item correct encoding table file: @file{uucode.enc}
  @item duplication of character(s) in encoding file: @file{duplicat.enc}
  @item contents of file specified on command line overrides VVE table
        and default table
  @item VVE table overrides default table
@end itemize


@subsection Character set translation (@samp{translation_file} qualifier)
@itemize @bullet
  @item missing qualifier file spec
  @item non-existent file specified
  @item file spec missing @file{.xlt} extension component
  @item comment handling
  @item correct translation table file: @file{decode.xlt}
  @item short translation table file: @file{tooshort.xlt}
  @item long translation table file: @file{toolong.xlt}
  @item translation table with invalid values: @file{badvalue.xlt}
  @item translation of unsupported characters: @file{toascii.xlt}
  @item missing @samp{xlt-from} header: @file{frommiss.xlt}
  @item invalid @samp{xlt-from} header value: @file{frombad.xlt}
  @item missing @samp{xlt-to} header: @file{tomiss.xlt}
  @item invalid @samp{xlt-to} header value: @file{tobad.xlt}
  @item missing @samp{xlt-substchar} header: @file{submiss.xlt}
  @item invalid @samp{xlt-substchar} header value: @file{subbad.xlt}
  @item @samp{xlt-from} character set different to the VVE character set:
        @file{difffrom.xlt}
  @item @samp{xlt-to} character set different to the local character set:
        @file{diffto.xlt}
  @item @samp{xlt-from} character set different to the VVE character set
        and @samp{xlt-to} character set different to the local character
        set: @file{diffboth.xlt}
@end itemize


@subsection File padding character (@samp{pad_character} qualifier)
@itemize @bullet
  @item missing qualifier value
  @item invalid qualifier
  @item qualifier value overrides default values
  @item use of different default values for text and binary files
@end itemize


@subsection UUdecoding (@samp{uudecode} qualifier)
@itemize @bullet
  @item correct decoding of UUencoded file without @samp{Vv} line start
  @item error if file contains VVcode specific headers
@end itemize


@subsection XXdecoding (@samp{xxdecode} qualifier)
@itemize @bullet
  @item correct decoding of XXencoded file without @samp{Vv} line start
  @item error if file contains VVcode specific headers
@end itemize


@subsection Input file
@itemize @bullet
  @item missing command line value
  @item non-existent file specified
  @item file opened using the correct parameters (mode, format etc)
  @item specify null device (@code{NUL}, @code{NL:}, @code{/dev/null} etc)
  @item specify zero length (empty) file
  @item specify @code{stdin}
@end itemize


@subsection Output file
@itemize @bullet
  @item missing command line value - use of VVE header
  @item invalid or unwritable file specification
  @item check correct application of file specification defaults (for those
        systems that use support them)
  @item file opened using the correct parameters (mode, format etc)
  @item specify null device (@code{NUL}, @code{NL:}, @code{/dev/null} etc)
  @item specify @code{stdout}
@end itemize


@subsection Internal
@itemize @bullet
  @item for variable length records, check that zero and maximum length
        records in the VVE file are handled and recorded correctly
  @item total byte count
  @item CRC-32 value (check with ZIP or ARJ)
  @item internal buffer allocation
  @item file closing
  @item running out of memory
@end itemize
      

@c =========================================================================
@c SECTION: Testing file interchnage
@c =========================================================================
@section Testing file interchange


@c -------------------------------------------------------------------------
@c SUBSECTION: Interchange of Common Files between Operating Systems
@c -------------------------------------------------------------------------
@subsection Interchange of Common Files between Operating Systems
@itemize @bullet
  @item text file
  @item @TeX{} @file{.dvi}file
  @item @TeX{} @file{.tfm} file
  @item @TeX{} @file{.pk} file
@end itemize


@c -------------------------------------------------------------------------
@c SUBSECTION: Operating System-specific Files
@c -------------------------------------------------------------------------
@subsection Operating System-specific Files

@subsubsection MS-DOS
@itemize @bullet
  @item @file{.zip} file
  @item @file {.Z} @code{compress} file
@end itemize

@subsubsection OS/2
@itemize @bullet
  @item @file{.zip} file
  @item @file {.Z} @code{compress} file
@end itemize

@subsubsection Unix
@itemize @bullet
  @item @file{.tar} file
  @item @file {.Z} @code{compress} file
@end itemize

@subsubsection VAX/VMS
@itemize @bullet
  @item backup save set (fixed length 32256 byte records)
  @item @file{.obj} file (variable length binary)
  @item @file{.exe} file (fixed length 512 byte records)
  @item text file (@code{STREAM_LF} format)
  @item compress @file{.Z} file (variable length binary)
@end itemize

@subsubsection VM/CMS
@itemize @bullet
  @item @code{EXEC} file
  @item @code{MODULE} file (variable length 65535 byte records)
@end itemize