source: trunk/IPs/systemC/processor/Morpheo/Common/include/Test.h @ 50

Last change on this file since 50 was 50, checked in by rosiere, 17 years ago

Changement dans le répertoire "New_Component" afin que les composants nouvellement crées peuvent compiler

File size: 1.6 KB
Line 
1#ifndef TEST_H
2#define TEST_H
3
4#include <iostream>
5#include <sstream>
6#include <stdint.h>
7#include "Common/include/ErrorMorpheo.h"
8using namespace std;
9
10//-----[ Routine de test ]---------------------------------------
11
12static uint32_t num_test;
13
14template <class T>
15void test_ko (T exp1, T exp2, char * file, uint32_t line)
16{
17  string msg = ("<"+toString(num_test)+"> : Test KO\n" +
18                " * Localisation\n"                    +
19                "   - File : "+file+"\n"               +
20                "   - Line : "+toString(line)+"\n"     +
21                " * Expression is different\n"         +
22                "   - exp1 : "+toString(exp1)+"\n"     +
23                "   - exp2 : "+toString(exp2)+"\n");
24 
25  throw (ErrorMorpheo (msg));
26};
27
28void test_ko (char * file, uint32_t line)
29{
30  string msg = ("<"+toString(num_test)+"> : Test KO\n" +
31                " * Localisation\n"                    +
32                "   - File : "+file+"\n"               +
33                "   - Line : "+toString(line)+"\n");
34 
35  throw (ErrorMorpheo (msg));
36};
37
38void test_ok ()
39{
40  cout << "{" << num_test << "} : Test OK" << endl;
41
42  num_test ++;
43};
44
45template <class T>
46void test(T exp1, T exp2, char * file, uint32_t line)
47{
48  if (exp1 != exp2)
49    test_ko <T> (exp1,exp2,file,line);
50  else
51    test_ok     ();
52};
53
54#define TEST(type,exp1,exp2)            do {test<type> (exp1,exp2,__FILE__,__LINE__);} while(0)
55#define TEST_STR(type,exp1,exp2,str...) do {fprintf(stdout,str); fprintf(stdout,"\n"); test<type> (exp1,exp2,__FILE__,__LINE__);} while(0)
56#define TEST_OK(str...)                 do {fprintf(stdout,str); fprintf(stdout,"\n"); test_ok();} while(0)
57#define TEST_KO(str...)                 do {fprintf(stdout,str); fprintf(stdout,"\n"); test_ko(__FILE__,__LINE__);} while(0)
58
59
60#endif
Note: See TracBrowser for help on using the repository browser.