Tests

author Richard Kistruck
date 2008-12-04
revision //info.ravenbrook.com/project/mps/version/1.114/design/tests.txt#1
status incomplete design
tag design.mps.tests

Introduction

.intro: This document contains a guide to the Memory Pool System tests.

.readership: This document is intended for any MPS developer.

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.

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.

Document History

  • 2008-12-04 Richard Kistruck. Create. Describe finalization tests.
  • 2010-03-03 Richard Kistruck. Correction: it's fin1658a.c and job001658, not 1638.
  • 2010-03-03 Richard Kistruck. Add zmess.c, zcoll.c. zmess.c subsumes and replaces fin1658a.c.
  • 2013-05-23 GDR Converted to reStructuredText.