You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
br-parser-tools/collects/tests/mred
Matthew Flatt 94e3de51bd import
original commit: f06c1626f7d4154a72427096b2993d49db72ceb1
27 years ago
..
startup import 27 years ago
README import 27 years ago
draw.ss import 27 years ago
imred.ss import 27 years ago
item.ss import 27 years ago
mem.ss import 27 years ago
nruter.xbm import 27 years ago
random.ss import 27 years ago
showkey.ss import 27 years ago
steps.txt import 27 years ago
tests.ss import 27 years ago

README

The "item.ss" test (use load/cd) creates a frame to select
among several types of control-testing frames:

 * Big - Tests basic controls; try everything

 * Medium - Tests sliders & gauges; keep a new Big or
         Medium frame open while getting a new Medium
         frame to use the "Enable Previous Frame" test

 * Menu - contains its own test instructions

 * Button, Checkbox, etc. - Test everything, watching for
         messages in the console

For Big & Medium, verify that hide & disbale work (via the checkboxes
on the right). Hiding or disabling a panel should hde or disable all
its contained controls. Disbaling a frame (a "Previous" frame) should
also disbale all of the contained controls.  When "Null label" is
used, there should *not* be extra space left where a label might have
gone.

---------------------------------------------------------------------------

The "draw.ss" test (use load/cd) tests drawing commands. There
is a checkbox for testing drawing into an intermediate offscreen
bitmap as well. The drawing area should have the following
features:

  At the top, "Pen 0 x 0" in a consistent font (i.e., re-painting
    should not change the font)
  "Pen 1 x 1" in a possibly different font
  "Pen 2 x 2" in a bold font (bold version of 1x1 font)
  
  the drawings under 0x0 and 1x1 should look the same:
    TopLeft: h-line should be left-aligned with box below it,
             but extend 1 extra pixel. v-line similarly should be
             top-aligned and 1 pixel longer. The lines should not 
             touch the box - there should be 2 pixels of space.
    Top: Lines for the rotated L's should join in a sharp corner
    Second from Top: like top-left, but lines should touch the box
    Four shape lines: First and second should be exactly the same
             shape, with the first hollow and the second filled.
             Third shape and 2x2 shapes are ill-defined.
    Octagons: two hollow octagons exactly the same shape.
    Line: actually two lines, but they should form a single
             unbroken line
    Images: MrEd logo (b & w)
            BB logo (color)
            Down-left arrow (b & w)
            Down-left arrow - B & W, *not* red
            Down-left arrow - red with white background
            BB logo, possibly reddened
            Down-left arrow - red with *white* background

---------------------------------------------------------------------------

The "imred.ss" test is used to check for memory leaks in a loop
invoking the mred system. Call the `go' procedure with a list
of symbol flags:
  'force not included:
     Use the current eventspaces; expects mred:run-exit-callbacks
     to terminate everything properly
  'force included:
     Use a new eventspace; don't run mred:run-exit-callbacks and
     call wx:kill-eventspace instead.
  'console included:
     Open a MrEd console
  'thread included:
     Spawn a sleeping-and-looping thread during each invocation.
     Also tests semaphore-callback (because it has to)
  'eventspace included:
     Create a new sub-eventspace during each invocation with
     a wx:frame% shown

---------------------------------------------------------------------------

The "mem.ss" test should be loaded at startup:
  mred -nu -f tests/mem.ss
It will create a lot of frames and instance of other objects, 
reporting memory information along the way. At the end,
before the last memory dump, objects that are still allocated
are displayed like this:
  (frame (1 . 5))
This means that the frame allocated by thread #1 at cycle 5
(counting down from some number) hasn't been garbage-collected.
If there's a few of these lines (less than 10), that's ok.
A large number of lines indicates a GC problem.

---------------------------------------------------------------------------

The "setup.ss" test is a randomized test of the MrEd classes that tests
MrEd's stability. Load/cd setup.ss, and then run
  (init)
This attempts to create instances of classes using random
intialization arguments. (init) can be run any number of times. Then
run
  (call-all-random) 
This calls every method of every class (skipping some "dangerous" ones
that modify the file system) with a random instance and with random
arguments.