From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 2 Sep 2019 13:46:59 +0900
Subject: Initial commit

---
 support/vvcode/doc/vvtest.tex | 432 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 432 insertions(+)
 create mode 100644 support/vvcode/doc/vvtest.tex

(limited to 'support/vvcode/doc/vvtest.tex')

diff --git a/support/vvcode/doc/vvtest.tex b/support/vvcode/doc/vvtest.tex
new file mode 100644
index 0000000000..60fef19959
--- /dev/null
+++ b/support/vvcode/doc/vvtest.tex
@@ -0,0 +1,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
-- 
cgit v1.2.3

