45. Tests¶
45.1. Introduction¶
.intro: This document contains a guide to the Memory Pool System tests.
.readership: This document is intended for any MPS developer.
45.2. Smoke tests¶
.smoke: The “smoke tests” provide quick checks that the MPS is working. They run quickly enough for it to be practical to run them every time the MPS is built.
.randomize: Each time a test case is run, it randomly chooses some of its parameters (for example, the sizes of objects, or how many links to create in a graph of references). This allows a fast test to cover many cases over time.
.randomize.repeatable: The random numbers are chosen pseudo-randomly based on a seed initialized from environmental data (the time and the processor cycle count). The seed is reported at test startup. Each test can be run with a specified seed. This ensures that the deterministic tests are repeatable.
45.2.1. Smoke test list¶
.test.finalcv: Registers objects for finalization, makes them unreachable, deregisters them, etc. Churns to provoke minor (nursery) collection.
.test.finaltest: Creates a large binary tree, and registers every node. Drops the top reference, requests collection, and counts the finalization messages.
.test.zcoll: Collection scheduling, and collection feedback.
.test.zmess: Message lifecycle and finalization messages.