MPS Internal Tests

This document contains a guide to the MPS Internal Tests. There is no historical initial design, but there is a placeholder for early ideas and discussions: initial ideas. References, History, Copyright and License are at the end.

Guide

Readership: any MPS developer. Not confidential.

zmess.c

Tests message lifecycle, and finalization (by using finalization messages).

zcoll.c

Tests collection scheduling, and collection feedback.

Finalization Tests

There are three main ones:

finalcv.c
Oldest. Registers a few objects (for finalization) and pseudorandomly makes them unreachable, deregisters them, etc. Churns to provoke minor (nursery) collection.
finaltest.c
Uses newer fmtdytst facilities. Creates a large binary tree, and registers every node. Drops top ref, requests collection, and counts the messages.
fin1658a.c -- deleted
[Subsumed into and replaced by zmess.c, 2009-02-17]. fin1658a.c was a single-issue test: see job001658. Drops refs and requests collection. Verifies that all non-E-reachable registered objects are finalized in a single collection, even if there are >1 segs of poolmrg guardians.

There's also expt825.c, which verifies that protection expose/remember works correctly for poolmrg (scanned but not GC'd segs); see job000825.

Initial Ideas

There never was an initial design document. This is a placeholder for links to early ideas and discussions.

A. References

B. Document History

2008-12-04 RHSK Create. Describe finalization tests.
2010-03-03 RHSK Correction: it's fin1658a.c and job001658, not 1638.
2010-03-03 RHSK Add zmess.c, zcoll.c. zmess.c subsumes and replaces fin1658a.c.