Notes: FullBlownTestFilePageMgrImpl needs the comment marks taken away from the calls to FileMap.VerifyNoneRegistered and DummyFileMapPrivate changed to FileMapPrivate as soon as FileMap gets up to speed.
later note: actually calling an enumeration routine in FileMap will perform the function of VerifyNoneRegistered; FileMap.VerifyNoneRegistered no longer exists.
note:  Only FullBlownTestFilePageMgrImpl has the needed mods to call FileMap.InitializeFileMap.


There are six test sets for FilePageMgr:  3 showing known anomalies, two tests to get timings for lots of operations, and one test to test integrity in the presence of overlapping processes.  These test sets and various supporting utilities are specified by 5.0FilePageMgrTests.df.

Some of the tests sets (those other than Anomalies>CreateFile and FullBlownTest) expect an input file containing a set of FileIDs for its "data" files.  This set of IDs points to especially preallocated disk-contiguous files.  The IDs are in ContiguousFilesFiles.IDs.  The IDs are obtained from the output of a utility program:  CreateAlpineFile;  some hand editing is necessary, see the descriptions below for more details.  Do not port the "data" files or uids from machine to machine, or across erases, obviously.  To delete "data" files at the end of all testing, set a breakpoint in any test set after the cleanup routine.

Each of the tests sets except FullBlownTest expects an input parameter file named <something>.Params, which specifies no. of files, no. of chunks in caches normal, log, leader.  FullBlownTest also expects <something>.Params, but it contains more info (see the source).

Each of the tests sets appends to an output file <something>.results, so you may wish to delete these result files to start with.



Anomalies>CreateFile>:
    What: show the anomaly connected with CreateFile timing.
    Input files: AnomaliesCreateFile.Params
    Output files: AnomaliesCreateFile.Results.
    How: Run CreateTestFilePageMgrImpls,
      then ← CreateTestFilePageMgrImpl.Main[].

Anomalies>ReadAheadDelay> -- show the anomaly connected with ReadAhead and delays.
    Input files: ContiguousFilesFiles.IDs, AnomaliesReadAhead.Params
    Output files: AnomaliesReadAhead.Results.
    How: set up a correct file ContiguousFilesFiles.IDs, if necessary, by copying
      CreateAlpineContiguousFiles.Results (See Utilities>CreateAlpineFile> below, for directions on
      how to create CreateAlpineContiguousFiles.Results for at least the number of IDs specified
      by AnomaliesReadAhead.Params) and inserting in the front of it the number
      of ids it specifies.  As a historical artifact, this test expects to be fed
      at least 5 files, and only tests the 5th (index = 4) one, which must have a
      size of 500 pages or an error will be returned.  Then Run
      ReadAheadTestFilePageMgrImpls, then ← ReadAheadTestFilePageMgrImpl.Main[].

Anomalies>WriteBehind> -- show that WriteBehind needs help.
    Input files: ContiguousFilesFiles.IDs, AnomaliesWriteBehind.Params
    Output files: AnomaliesWriteBehind.Results.
    How: set up a correct file ContiguousFilesFiles.IDs (see description in
      Anomalies>ReadAheadDelay). As a historical artifact, this test expects to
      be fed at least 6 files, and only tests the 6th (index = 5) one, which must
      have a size of 1000 pages or an error will be returned.  Then Run
      WriteBehindTestFilePageMgrImpls, then ←
      WriteBehindTestFilePageMgrImpl.Main[].

TimingTest> -- gets lots of timing information.
    Input files: ContiguousFilesFiles.IDs, TimingTest.Params
    Output files: TimingTest.Results.
    How: set up a correct file ContiguousFilesFiles.IDs (see description in
      Anomalies>ReadAheadDelay).  Then Run TimingTestFilePageMgrImpls, then ←
      TimingTestFilePageMgrImpl.Main[].

TimingTest2> -- gets lots of timing information.
    Input files: ContiguousFilesFiles.IDs, TimingTest2.Params
    Output files: TimingTest2.Results.
    How: set up a correct file ContiguousFilesFiles.IDs (see description in
      Anomalies>ReadAheadDelay).  Then Run TimingTestFilePageMgrImpls2, then ←
      TimingTestFilePageMgrImpl2.Main[].

FullBlownTest> -- test integrity with multiple things going on.
    Input files: FullBlownTest.Params
    Output files: FullBlownTest.Results.
    How:  Run FullBlownTestFilePageMgrImpls, then ←
      FullBlownTestFilePageMgrImpl.Main[].


Utilities>CreateAlpineFile>:
    What: makes files that are contiguous on the disk and are the
      interactively specified number of pages long.  Typical file sizes used are
      1, 5, 100, 200, 500, 1000 pages, in that order.
    Input files: none.
    Output files: see "What."  Also CreateAlpineContiguousFiles.Results
    How: Run CreateAlpineFileImpl.  Then Main and answer its questions.
Utilities>PerfStats>:
    What: my modified copy of Mark's perf stats, with a more condensed output
      and some twiddles.
Utilities>Delay>:
    What: find out about forced delays, so we know our test programs are doing
      them correctly.  Probably don't need this any more, but just in case.....
    Input files: none.
    Output files: Delay.Results
    How: Run DelayImpl, then ← DelayImpl.Main[].
Utilities>AlpineZonesStub>:
    What: stub to create static zone.