1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-05 03:20:39 -08:00
emacs/mps/code/testlib.h
Richard Brooksby 3d5e2ca85f Adding hopenames back into the master sources, so that they can be included in the union sources along with the id keywords.
This was achieved by partially undoing changelist 24817, including an accidental corruption of eventgen.pl.

Copied from Perforce
 Change: 24877
 ServerID: perforce.ravenbrook.com
2001-12-06 18:14:02 +00:00

154 lines
3.6 KiB
C

/* impl.h.testlib: TEST LIBRARY INTERFACE
*
* $Id$
* $HopeName: MMsrc!testlib.h(trunk.22) $
* Copyright (c) 2001 Ravenbrook Limited.
*
* .purpose: A library of functions that may be of use to unit tests.
*/
#ifndef testlib_h
#define testlib_h
#include "mps.h"
#include "misc.h" /* for STR */
/* Include system header hackery. */
#include "mpstd.h"
#ifdef MPS_OS_SU
#include "ossu.h"
#endif
#ifdef MPS_OS_XC
#include "osxc.h"
#endif
#include <stdio.h>
/* Suppress Visual C warnings at warning level 4, */
/* see mail.richard.1997-09-25.13-26. */
/* Essentially the same settings are done in config.h. */
#ifdef MPS_BUILD_MV
/* "unreferenced inline function has been removed" (windows.h) */
#pragma warning(disable: 4514)
/* "constant conditional" (MPS_END) */
#pragma warning(disable: 4127)
/* MSVC 2.0 generates a warning when using NOCHECK or UNUSED */
#ifdef _MSC_VER
#if _MSC_VER < 1000
#pragma warning(disable: 4705)
#endif
#else /* _MSC_VER */
#error "Expected _MSC_VER to be defined for builder.mv"
#endif /* _MSC_VER */
/* MSVC 10.00 on PowerPC generates erroneous warnings about */
/* uninitialized local variables, if you take their address. */
#ifdef MPS_ARCH_PP
#pragma warning(disable: 4701)
#endif
/* In white-hot versions, absolutely no checking is done. This leads to
* many spurious warnings because parameters are suddenly unused, etc.
* We aren't interested in these.
*/
#if defined(CONFIG_VAR_WI)
/* "unreferenced formal parameter" */
#pragma warning(disable: 4100)
/* "unreferenced local function has been removed" */
#pragma warning(disable: 4505)
#endif
#endif /* MPS_BUILD_MV */
/* testlib_unused -- declares that a variable is unused
*
* It should be used to prevent compiler warnings about unused
* variables. Care should be exercised; the fact that a variable
* is unused may need justification.
*/
#define testlib_unused(v) ((void)(v))
/* die -- succeed or die
*
* If the first argument is not ResOK then prints the second
* argument on stderr and exits the program. Otherwise does nothing.
*
* Typical use:
* die(mps_ap_create(&ap, pool, MPS_RANK_EXACT), "APCreate");
*/
extern void die(mps_res_t res, const char *s);
/* die_expect -- get expected result or die
*
* If the first argument is not thename as the second argument,
* prints the third argument on stderr and exits the program.
* Otherwise does nothing.
*
* Typical use:
* die_expect(res, MPS_RES_COMMIT_LIMIT, "Commit limit allocation");
*/
extern void die_expect(mps_res_t res, mps_res_t expected, const char *s);
/* cdie -- succeed or die
*
* If the first argument is not true (non-zero) then prints the second
* argument on stderr and exits the program. Otherwise does nothing.
*
* Typical use:
* cdie(foo != NULL, "No foo");
*/
extern void cdie(int res, const char *s);
/* error, verror -- die with message */
extern void error(const char *format, ...);
extern void verror(const char *format, va_list args);
/* Insist -- like assert, but even in release varieties */
#define Insist(cond) insist1(cond, #cond)
#define insist1(cond, condstring) \
cdie(cond, condstring "\n" __FILE__ "\n" STR(__LINE__))
/* rnd -- random number generator
*
* rnd() generates a sequence of integers in the range [0, 2^31-2].
*/
extern unsigned long rnd(void);
/* randomize -- randomize the generator, or initialize to replay
*
* randomize(argc, argv) randomizes the rnd generator (using time(3))
* and prints out the randomization seed, or takes a seed (as a command-
* line argument) and initializes the generator to the same state.
*/
extern void randomize(int argc, char **argv);
#endif /* testlib_h */