(#|
                      Framework Test Suite Overview

Each test will rely on the successfully completion of all of the ones
before it. In addition, all test suites rely on the sucessful
completion of the engine test suites and the mzscheme test suites.

All of these tests reside in PLTHOME/collects/tests/framework/

There will be a main mzscheme process which will start up a new gracket
as necessary for the test suites. Since some tests actually require
gracket to exit in order to pass, this governor is required.

To run a test use:

   framework-test <test.rkt> ...

where <test.rkt> is the name of one of the tests below.  Alternatively,
pass no command-line arguments to run all of the tests.

Some of the tests in this file are not yet present in the
testing directory. They are planned future expansions of
this test suite (and have been for some time....)

OS X: you will have to click on the newly started gracket
processes in the doc while the test suite runs or it will
signal failures when there aren't any.

- load: |# load.rkt #|

  | This tests that the advertised ways of loading the framework at
  | its components all work.

- exit: |# exit.rkt #|

  | This tests that exit:exit really exits and that the exit callbacks
  | are actually run.

- preferences: |# prefs.rkt #|

  | This tests that preferences are saved and restored correctly, both
  | immediately and across reboots of gracket.


- individual object tests:

  | These tests are simple object creation and basic operations.
  | Each test assumes that the others pass; this may yield strange
  | error messages when one fails.

  - frames: |# frame.rkt #|
  - canvases: |# canvas.rkt #|
  - texts: |# text.rkt #|
  - pasteboards: |# pasteboard.rkt #|

- keybindings: |# keys.rkt #|

  | This tests the misc (non-scheme) keybindings

- searching: |# search.rkt #|

  | This tests the search results

- group tests: |# group-test.rkt #|

  | make sure that mred:the-frame-group records frames correctly.
  | fake user input expected.

- number snip: |# number-snip.rkt #|

  | some tests for the number-snip% class

- scheme tests:

  | Tests the scheme: section

  |# racket.rkt #|

- panel tests:

 |# panel.rkt #|

- |# (interactive #| tests

  | these tests require intervention by people. Clicking and whatnot

  - panel:single |# panel-single.rkt #|

  - garbage collection: |# mem.rkt #|

    | These tests will create objects in various configurations and
    | make sure that they are garbage collected

|#))
