]> SALOME platform Git repositories - modules/kernel.git/blob - src/Utils/Test/UtilsTest.cxx
Salome HOME
a82e9d55ec5d1a850c2fdcffa3ed74acf293d930
[modules/kernel.git] / src / Utils / Test / UtilsTest.cxx
1
2 #include "UtilsTest.hxx"
3
4 #include <iostream>
5 #include <fstream>
6 #include <string>
7 #include <cstdlib>
8 #include "Utils_SALOME_Exception.hxx"
9 #include "utilities.h"
10
11 using namespace std;
12
13 #define TRACEFILE "/tmp/traceUnitTest.log"
14
15 // ============================================================================
16 /*!
17  * Set Trace mecanism
18  * - delete preexisting trace classes if any
19  * - set trace on file
20  */
21 // ============================================================================
22
23 void 
24 UtilsTest::setUp()
25 {
26   LocalTraceBufferPool* bp1 = LocalTraceBufferPool::instance();
27   CPPUNIT_ASSERT(bp1);
28   bp1->deleteInstance(bp1);
29
30   // --- trace on file
31   char *theFileName = TRACEFILE;
32
33   string s = "file:";
34   s += theFileName;
35   CPPUNIT_ASSERT(! setenv("SALOME_trace",s.c_str(),1)); // 1: overwrite
36
37   ofstream traceFile;
38   traceFile.open(theFileName, ios::out | ios::app);
39   CPPUNIT_ASSERT(traceFile); // file created empty, then closed
40   traceFile.close();
41
42   bp1 = LocalTraceBufferPool::instance();
43   CPPUNIT_ASSERT(bp1);
44 }
45
46 // ============================================================================
47 /*!
48  *  - delete trace classes
49  */
50 // ============================================================================
51
52 void 
53 UtilsTest::tearDown()
54 {
55   LocalTraceBufferPool* bp1 = LocalTraceBufferPool::instance();
56   CPPUNIT_ASSERT(bp1);
57   bp1->deleteInstance(bp1);
58 }
59
60 int genExcept()
61 {
62   throw SALOME_Exception("a message");
63 };
64
65 // ============================================================================
66 /*!
67  * Check basic SALOME_exception mecanism
68  */
69 // ============================================================================
70
71 void
72 UtilsTest::testSALOME_ExceptionThrow()
73 {
74   CPPUNIT_ASSERT_THROW(genExcept(), SALOME_Exception);
75 }
76
77 // ============================================================================
78 /*!
79  * Check message on catch
80  */
81 // ============================================================================
82
83 void
84 UtilsTest::testSALOME_ExceptionMessage()
85 {
86 #define EXAMPLE_EXCEPTION_MESSAGE "something for the end user"
87   try
88     {
89       throw SALOME_Exception(EXAMPLE_EXCEPTION_MESSAGE);
90     }
91   catch (const SALOME_Exception &ex)
92     {
93       string expectedMessage = EXAMPLE_EXCEPTION_MESSAGE;
94       string actualMessage = ex.what();
95       CPPUNIT_ASSERT(actualMessage.find(expectedMessage) != string::npos);
96     }
97 }