X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/35cd3d66a276b47386bab662f867309a91a231c2..320dd2ebba27932ac6cbec8b51dd50cc169a61f4:/testsuite/msg/messages.h diff --git a/testsuite/msg/messages.h b/testsuite/msg/messages.h index 5571a68751..0508c142d8 100644 --- a/testsuite/msg/messages.h +++ b/testsuite/msg/messages.h @@ -1,4 +1,15 @@ -/**** MSG_LICENCE DO NOT REMOVE ****/ +/* $Id$ */ + +/* Copyright (c) 2002,2003,2004 Arnaud Legrand. All rights reserved. */ + +/* This program is free software; you can redistribute it and/or modify it + * under the terms of the license (GNU LGPL) which comes with this package. */ + +/** \file messages.h + * \ingroup MSG_examples + * \brief Convenient debuging functions that should be used in combination with + * the perl-script tools/MSG_visualization/colorize.pl. +*/ #ifndef MESSAGES_H #define MESSAGES_H @@ -8,6 +19,33 @@ #include "msg/datatypes.h" #include "xbt/error.h" +/** just like an assert. + * This function is used to ensure that a condition is true. + * If not, it prints an error message (with the virtual date and the + * PID of the #m_process_t that called it). + */ +static void ASSERT(int value, const char *fmt, ...) +{ + m_process_t self = MSG_process_self(); + va_list ap; + + if(!value) { + va_start(ap, fmt); + if (self) + fprintf(stderr, "[%g] P%d | ", MSG_getClock(), + MSG_process_get_PID(self)); + vfprintf(stderr, fmt, ap); + va_end(ap); + + xbt_abort(); + } + return; +} + +/** Die + * Just like #ASSERT() except you already know that the condition does not hold + * true. + */ static void DIE(const char *fmt, ...) { m_process_t self = MSG_process_self(); @@ -15,7 +53,7 @@ static void DIE(const char *fmt, ...) va_start(ap, fmt); if (self) - fprintf(stderr, "[%Lg] P%d | ", MSG_getClock(), + fprintf(stderr, "[%g] P%d | ", MSG_getClock(), MSG_process_get_PID(self)); vfprintf(stderr, fmt, ap); va_end(ap); @@ -24,6 +62,10 @@ static void DIE(const char *fmt, ...) return; } +/** + * Print a one-line message with the virtual date and the PID of the #m_process_t + * that called it + */ static void PRINT_MESSAGE(const char *fmt, ...) { #ifdef VERBOSE @@ -32,14 +74,17 @@ static void PRINT_MESSAGE(const char *fmt, ...) va_start(ap, fmt); if (self) - fprintf(stderr, "[%Lg] P%d | ", MSG_getClock(), - MSG_process_get_PID(self)); + fprintf(stderr, "[%g] P%d | (%s:%s) ", MSG_getClock(), + MSG_process_get_PID(self), MSG_host_self()->name, self->name); vfprintf(stderr, fmt, ap); va_end(ap); #endif return; } +/** + * Just like #PRINT_MESSAGE() except that it prints DEBUG in front of the line. + */ static void PRINT_DEBUG_MESSAGE(const char *fmt, ...) { #ifdef VERBOSE @@ -48,8 +93,8 @@ static void PRINT_DEBUG_MESSAGE(const char *fmt, ...) va_start(ap, fmt); if (self) - fprintf(stderr, "DEBUG [%Lg] P%d | ", MSG_getClock(), - MSG_process_get_PID(self)); + fprintf(stderr, "DEBUG [%g] P%d | (%s) ", MSG_getClock(), + MSG_process_get_PID(self), MSG_host_self()->name); vfprintf(stderr, fmt, ap); va_end(ap); #endif