home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / help / strongtest_1 / ReadMe < prev    next >
Encoding:
Text File  |  1996-02-27  |  9.9 KB  |  218 lines

  1.  
  2.  .##.  #                      #####            #        .#         .#  .##.
  3.  #.`#  #                        #              #        ##        .##  #'`#
  4.  `#.  ###  ###. .##. ###. .###  #   .##. .### ###        #       .#'#    .#
  5.   `#.  #   # `# #'`# # `# #' #  #   #'## ##.   #         #       #####  .#'
  6.  #.`#  #.  #    #..# #  # .##'  #   ##.   `##  #.       .#.   ..    #  .#'
  7.  `##'  `## #    '##' #  # #.    #   `##. ###'  `##      ###   ##    #  ####
  8.  27 February 1996         `###                          © Musus Umbra, 1996
  9.  
  10.  
  11. ReadMe file for StrongTest 1.42 (27-Feb-1996)
  12. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  13.  
  14. What is StrongTest?
  15. ~~~~~~~~~~~~~~~~~~~
  16.      Well, put simply, StrongTest is a simple utility that 
  17. attempts to test whether a stronghelp manual is internally 
  18. 'consistent'. By 'consistent' I mean that all the links to pages 
  19. can actually get to the pages they're supposed to, and that there 
  20. are no pages that can't be reached.
  21.  
  22.      The StrongTest distribution consists of the following 
  23. files/applications:
  24.           StrongTest     the executable
  25.           c.strongtest   the ANSI C source code
  26.           !strongtst     a DDE frontend for the executable
  27.           ReadMe         this file
  28.      I (Musus Umbra) retain copyright in the program at all 
  29. times. Permission is granted for unrestricted use. Permission is 
  30. granted for distribution provided that no profit is made and that 
  31. the distribution is supplied whole and unaltered.                    
  32.  
  33. But what if I patch a bug?
  34. ~~~~~~~~~~~~~~~~~~~~~~~~~~
  35.      Then send me a bug report (with your patch if possible) and 
  36. I'll fix the master version & re-release it.
  37.  
  38. How does it work?
  39. ~~~~~~~~~~~~~~~~~
  40.      Basically, it scans a stronghelp manual and records the full 
  41. filename and pagename of each page the manual contains. The code 
  42. then runs through all the pages, scanning each for links. When a 
  43. link is found, the list of pages is consulted to see if the page 
  44. the link refers to actually exists. If the page doesn't exist, an 
  45. error is reported. If the page does exist, then it is marked as 
  46. 'reachable'.
  47.      When all the pages have been scanned, each page's 
  48. 'reachable' status is examined, and any that are unreachable are 
  49. reported.
  50.  
  51.  
  52. How do I use it?
  53. ~~~~~~~~~~~~~~~~
  54.      Either with the DDE front end supplied, or from the command line
  55. or in a taskwindow, or whatever.
  56.      The syntax is:
  57.          *strongtest [-t] [-v] [-w] <manual>
  58.  
  59. The -t flag enables throwback (you'll need the DDEutils module & a
  60. text editor that supports throwback, DDEUtils is supplied with both
  61. DDE & Beebug's Easy C (& C++); any decent editor supports throwback).
  62.  
  63. The -v flag enables 'verbose' operation. Normally, very little output
  64. is genrated, just the diagnostic messages. With the -v option, all
  65. errors are detailed and warnings displayed.
  66.  
  67. The -w flag is used to unsuppress (enable) warnings when external links
  68. (ie. to pages in other manuals), or 'conversion' pages (eg. "strtol>sttrod")
  69. are encountered.
  70.  
  71. There is also a -d option that enables debugging mode. In debugging mode,
  72. lots (and I mean *lots*) of output is generated. Some of it may be useful
  73. if you're trying to modify my code :-)
  74.  
  75. Oh, the options -t & -v are independent. If you use -t, you'll get all the
  76. warnings & errors thrownback, even if you don't use -v.
  77.  
  78.  
  79. What *can't* it do?
  80. ~~~~~~~~~~~~~~~~~~~
  81.      At the moment, there are a number of restrictions (some more 
  82. serious than others). For my purposes none of these restrictions 
  83. matter, but if you want me to update the code, let me know and 
  84. I'll see what I can do.  Many more facilities have been implemented
  85. in this release than in the previous release.
  86.      Currently StrongTest can't cope with:
  87.          #Includes          These directives are currently ignored.
  88.                             This is a possible inclusion for the
  89.                             next release. This probably isn't too
  90.                             important, unless the #include has subpages
  91.                             that the page needs, or defines prefixes or
  92.                             postfixes for simple links.
  93.          External Links     Links to other manuals are not tested.  Again,
  94.                             this is a possibility (at least partially) for
  95.                             the next release.  You can use the -w flag to
  96.                             enable/disable reporting of these links.
  97.  
  98. What's new in this release?
  99. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  100.     Well, after some thoughtful email and a request for partial links (ie.
  101. a page PROC.sendfile accessed through the link <PROCsendfile>), the following
  102. have been added:
  103.  
  104.     * Partial links : Links of the form <a=>xy> where the target page is x.y
  105.                       are now checked correctly for all cases, rather than
  106.                       just the limited subset in the last release.
  107.  
  108.     * Prefix & Postfix : The pages are now scanned for #prefix & #postfix
  109.                          directives (just as StrongHelp does), and these are
  110.                          now taken into account when processing simple links
  111.                          (ie. those of the form <xyzzy>).
  112.  
  113.     * Subpages : Subpages (#Subpage y and <x=>.y>) are now tested.  In the
  114.                  previous release, they would have been reported as failed
  115.                  links.
  116.  
  117.     * Conversion Pages : By using the new -w flag, it's now possible to
  118.                          prevent strongtest from raising 'unreachable page'
  119.                          warnings for 'conversion' pages (ie. those of
  120.                          the form strtol>strtod that are empty and simply
  121.                          serve to direct stronghelp to a different page when
  122.                          a word is being looked up (eg F1 in StrongEd)).
  123.  
  124.     * Warning suppression : By default, warnings about external pages and
  125.                             conversion pages are *not* generated.  If you
  126.                             want these warnings, use the -w flag (or warn
  127.                             external in the front end).
  128.  
  129.     * Missing \ : I came across this one in the SWI manual, (in the context
  130.                   "R0 <> 0").  Strongtest now reports <>'s without the
  131.                   necessary \ (ie. \<>) as missing \s, rather than link <>
  132.                   failed.
  133.  
  134.     * Front end : The front end has a new 'Warn External' option button that
  135.                   contols the -w flag.
  136.  
  137.  
  138. Sadly, all these extra gadgets (except the frontend) mean that strongtest
  139. now runs slower than it used to... Sorry, it has to do a *lot* more work
  140. (mainly in the partial link testing stage).
  141.  
  142.  
  143. So, why did you write it?
  144. ~~~~~~~~~~~~~~~~~~~~~~~~~
  145.      Well, 'Two Witches & A Moogle' are working on a manual on 
  146. aromatherapy, and the 'Moogle' thought that he'd knock up a 
  147. little proggy to make sure that we don't leave any links 
  148. 'dangling' in our manual. So, I knocked up some beautiful C one 
  149. night (resisting the urge to hack it together in ½hour in BASIC) 
  150. and tried it. Didn't work - stronghelp's image filing system 
  151. doesn't support OS_GBPB 9. I deleted everything in a fit of pique.
  152. Then, to my utter embarassment, I found out that it does support 
  153. OS_GBPB 10, so I had to re-write the whole **&%*#&$(* thing. From 
  154. scratch. Bastard.
  155.  
  156.      However, re-write it I did, and the result is that which is 
  157. sat before thee. The reason that the features above are missing 
  158. is that I simply don't need them, and for a simple manual they're 
  159. certainly extraneous.
  160.  
  161. So why did you release it?
  162. ~~~~~~~~~~~~~~~~~~~~~~~~~~
  163.      Just in case anyone might find it useful. Hey, for all it's 
  164. limited, it is still quite good at what it does. And anyway, it's 
  165. free - what have you lost? And if it's that bad, let me know, or 
  166. better yet, patch it and let me know :-)
  167.  
  168.      Since the above was written, strongtest has been improved to the point
  169. that it isn't so limited anymore.  For instance, it can now (just about)
  170. cope with the 'standard' StrongHelp manuals - I've found all sorts of
  171. errors in them in the development of strongtest.  It just goes to show
  172. how hard it is making sure a manual is 'consistent' without some sort
  173. of automatic tool... Hence strongtest.
  174.  
  175.     Strongtest has been released in the hope that people developing manuals
  176. will find it useful in the endless search for perfection :-)
  177.  
  178. About the author
  179. ~~~~~~~~~~~~~~~~
  180.      StrongTest was written by The Musus Umbra, known in slightly 
  181. more real life as Andy. e-mail to A.J.Holdsworth@ncl.ac.uk, or 
  182. snail mail c/o 23 Baronsway, Whitkirk, Leeds, LS15 7AW, ENGLAND.
  183.  
  184.      Although this is 'free' ware, don't be put off if you want to
  185. send me a donation!
  186.  
  187.  
  188. History (releases)
  189. ~~~~~~~~~~~~~~~~~~
  190.      v0.00 - ?? Dec 95 - First version. Didn't work, deleted in fit of pique.
  191.      v1.00 - 13 Jan 96 - Rewrite having found out what went wrong.
  192.                          RELEASED 14 Jan 96
  193.      v1.42 - 27 Feb 96 - Added #prefix & #postfix capability
  194.                          Added subpage capability
  195.                          *Much* better partial link capability
  196.                          Added -w flag (& changed front end)
  197.                          Introduced 'missing \' error
  198.                          Added 'activity' messages
  199.                          Tidied messages
  200.                          RELEASED 28 Feb 96
  201.  
  202.  
  203. Disclaimer & Licence
  204. ~~~~~~~~~~~~~~~~~~~~
  205. Use of this software is completely at your own risk. The author can accept no
  206. responsibility for any damage/loss arising from the use, or inability to use
  207. this software. No warranty, express or implied, applies to this software.
  208. This is not PD: the Copyright in this software belongs at all times to the
  209. author. However, permission is granted for unrestricted distribution
  210. prodividing that *no* charge is made for the distribution [a charge may be made
  211. for handling/media] and that the whole of the software is supplied intact and
  212. unaltered. Permission is also granted for unrestricted use and alteration of
  213. the software [but if you fix a bug / add anything nice, let me know so I can
  214. patch the 'master' version].
  215.  
  216. Bug reports / comments / etc to:
  217. Musus Umbra c/o 23 Baronsway, Whitkirk, Leeds, LS15 7AW, England.
  218. (until Sept-ish '96: A.J.Holdsworth@ncl.ac.uk)