#include <fmtmsg.h>
#include <mcheck.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MM_TEST 10
int
main (void)
{
int result = 0;
mtrace ();
char TEST[] = "ABCD";
if (addseverity (MM_TEST, TEST) != MM_OK)
{
puts ("addseverity failed");
result = 1;
}
strcpy (TEST, "TEST");
if (fmtmsg (MM_PRINT, "GLIBC:tst-fmtmsg", MM_HALT, "halt",
"should print message for MM_HALT", "GLIBC:tst-fmtmsg:1")
!= MM_OK)
result = 1;
if (fmtmsg (MM_PRINT, "GLIBC:tst-fmtmsg", MM_ERROR, "halt",
"should print message for MM_ERROR", "GLIBC:tst-fmtmsg:2")
!= MM_OK)
result = 1;
if (fmtmsg (MM_PRINT, "GLIBC:tst-fmtmsg", MM_WARNING, "halt",
"should print message for MM_WARNING", "GLIBC:tst-fmtmsg:3")
!= MM_OK)
result = 1;
if (fmtmsg (MM_PRINT, "GLIBC:tst-fmtmsg", MM_INFO, "halt",
"should print message for MM_INFO", "GLIBC:tst-fmtmsg:4")
!= MM_OK)
result = 1;
if (fmtmsg (MM_PRINT, "GLIBC:tst-fmtmsg", MM_NOSEV, "halt",
"should print message for MM_NOSEV", "GLIBC:tst-fmtmsg:5")
!= MM_OK)
result = 1;
if (fmtmsg (MM_PRINT, "GLIBC:tst-fmtmsg", MM_TEST, "halt",
"should print message for MM_TEST", "GLIBC:tst-fmtmsg:6")
!= MM_OK)
result = 1;
if (addseverity (MM_TEST, NULL) != MM_OK)
{
puts ("second addseverity failed");
result = 1;
}
if (addseverity (MM_TEST, NULL) != MM_NOTOK)
{
puts ("third addseverity unexpectedly succeeded");
result = 1;
}
char *p = strdup ("TEST2");
if (addseverity (MM_TEST, p) != MM_OK)
{
puts ("fourth addseverity failed");
result = 1;
}
if (addseverity (MM_TEST, "TEST3") != MM_OK)
{
puts ("fifth addseverity failed");
result = 1;
}
free (p);
return result;
}