Salome HOME
Merge from V6_main 11/02/2013
[modules/hexablock.git] / src / HEXABLOCK / test_tools.cxx
1
2 // C++ : Outils communs aux tests unitaires
3
4 //  Copyright (C) 2009-2011  CEA/DEN, EDF R&D
5 //
6 //  This library is free software; you can redistribute it and/or
7 //  modify it under the terms of the GNU Lesser General Public
8 //  License as published by the Free Software Foundation; either
9 //  version 2.1 of the License.
10 //
11 //  This library is distributed in the hope that it will be useful,
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 //  Lesser General Public License for more details.
15 //
16 //  You should have received a copy of the GNU Lesser General Public
17 //  License along with this library; if not, write to the Free Software
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 //  See http://www.salome-platform.org/ 
21 //  or email : webmaster.salome@opencascade.com
22
23
24 #include "test_unit.hxx"
25
26 #include <string>
27 #include <cstdlib>
28 #include <unistd.h>
29
30 #include <sys/types.h>   // pour getpid()
31 #include <unistd.h>      // pour getpid()
32
33 static int nbr_vtk = 0;
34 static cpchar case_name = "hexa";
35 static Hex::Document*   docu = NULL;
36
37 static string workspace = "/tmp/test_hexablock";
38 static bool   w_default = true;
39
40 // ======================================================== call_system 
41 void call_system (const string&  command)
42 {
43    system (command.c_str());
44 }
45 // ======================================================== goto_workspace
46 void goto_workspace ()
47 {
48    string rmdir = "rm -rf ";
49    string mkdir = "mkdir -p ";
50
51    if (w_default)
52       {
53       pid_t pid = getpid ();
54       char     bufpid [8];
55       sprintf (bufpid, "_p%d", pid);
56       workspace += bufpid;
57       w_default = false;
58       }
59
60    call_system (rmdir + workspace);
61    call_system (mkdir + workspace);
62
63    chdir (workspace.c_str());
64 }
65 // ======================================================== free_workspace
66 void free_workspace ()
67 {
68    string chmod = "chmod 777 ";
69
70    call_system (chmod + workspace);
71    call_system (chmod + workspace + "/*");
72 }