$Id: //info.ravenbrook.com/project/mps/master/test/README#12 $

This is the Memory Management QA test harness. To use it you need Perl
5 (or higher).


Quick start
-----------

In a shell in the test directory::

    perl test/qa clib
    perl test/qa run function/5.c
    perl test/qa runset testsets/passing
    perl test/qa debug argerr/12.c


Usage and options
-----------------

Run ``perl test/qa help`` for help; run ``perl test/qa options`` to
see what version of the harness you have (or look at the file
``test/version``) and which options are available.

The most important options are the ``-p`` option which specifies the
platform (for example, ``-p lii6ll``) if the auto-detected platform is
not the one you want to test, and the ``-v`` option which specifies
the variety (for example ``-v hot``) if the cool variety is not the
one you want to test.


Debugging
---------

MMQA sets its own assertion handler, so you'll probably want to set a
breakpoint on ``mmqa_assert_handler``.


Windows
-------

Use a Cygwin shell. Set the ``LANG`` environment variable::

    export LANG=C

to avoid locale warnings from Perl.

The runset command can result in this error::

    LINK : fatal error LNK1168: cannot open test/obj/nt_AMD64__pc/tmp_test.exe for writing

You may be able to avoid this by running "View Local Services" from
the Windows Control Panel, double-clicking the "Application
Experience" service, and switching "Startup type" to "Automatic". See
the documentation for LNK1168_.

.. _LNK1168: https://msdn.microsoft.com/en-us/library/hhbdtt6d.aspx