Salome HOME
add doc/build for EZ direct html or pdf
[tools/sat.git] / doc / build / html / _modules / src / test_module.html
1
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5
6 <html xmlns="http://www.w3.org/1999/xhtml">
7   <head>
8     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9     
10     <title>src.test_module &mdash; salomeTools 5.0.0dev documentation</title>
11     
12     <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
13     <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
14     <link rel="stylesheet" href="/volatile/wambeke/SAT5/SAT5_S840_MATIX24/SAT/doc/src/custom.css" type="text/css" />
15     
16     <script type="text/javascript">
17       var DOCUMENTATION_OPTIONS = {
18         URL_ROOT:    '../../',
19         VERSION:     '5.0.0dev',
20         COLLAPSE_INDEX: false,
21         FILE_SUFFIX: '.html',
22         HAS_SOURCE:  true
23       };
24     </script>
25     <script type="text/javascript" src="../../_static/jquery.js"></script>
26     <script type="text/javascript" src="../../_static/underscore.js"></script>
27     <script type="text/javascript" src="../../_static/doctools.js"></script>
28     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
29     <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
30     <link rel="up" title="Module code" href="../index.html" />
31    
32   <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
33   
34   
35   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
36
37   </head>
38   <body>
39   
40
41     <div class="document">
42       <div class="documentwrapper">
43         <div class="bodywrapper">
44           <div class="body" role="main">
45             
46   <h1>Source code for src.test_module</h1><div class="highlight"><pre>
47 <span class="c">#!/usr/bin/env python</span>
48 <span class="c">#-*- coding:utf-8 -*-</span>
49 <span class="c">#  Copyright (C) 2010-2013  CEA/DEN</span>
50 <span class="c">#</span>
51 <span class="c">#  This library is free software; you can redistribute it and/or</span>
52 <span class="c">#  modify it under the terms of the GNU Lesser General Public</span>
53 <span class="c">#  License as published by the Free Software Foundation; either</span>
54 <span class="c">#  version 2.1 of the License.</span>
55 <span class="c">#</span>
56 <span class="c">#  This library is distributed in the hope that it will be useful,</span>
57 <span class="c">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
58 <span class="c">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
59 <span class="c">#  Lesser General Public License for more details.</span>
60 <span class="c">#</span>
61 <span class="c">#  You should have received a copy of the GNU Lesser General Public</span>
62 <span class="c">#  License along with this library; if not, write to the Free Software</span>
63 <span class="c">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
64
65 <span class="c"># Python 2/3 compatibility for execfile function</span>
66 <span class="k">try</span><span class="p">:</span>
67     <span class="nb">execfile</span>
68 <span class="k">except</span><span class="p">:</span>
69     <span class="k">def</span> <span class="nf">execfile</span><span class="p">(</span><span class="n">somefile</span><span class="p">,</span> <span class="n">global_vars</span><span class="p">,</span> <span class="n">local_vars</span><span class="p">):</span>
70         <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">somefile</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
71             <span class="n">code</span> <span class="o">=</span> <span class="nb">compile</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">(),</span> <span class="n">somefile</span><span class="p">,</span> <span class="s">&#39;exec&#39;</span><span class="p">)</span>
72             <span class="k">exec</span><span class="p">(</span><span class="n">code</span><span class="p">,</span> <span class="n">global_vars</span><span class="p">,</span> <span class="n">local_vars</span><span class="p">)</span>
73
74
75 <span class="kn">import</span> <span class="nn">os</span>
76 <span class="kn">import</span> <span class="nn">sys</span>
77 <span class="kn">import</span> <span class="nn">datetime</span>
78 <span class="kn">import</span> <span class="nn">shutil</span>
79 <span class="kn">import</span> <span class="nn">string</span>
80 <span class="kn">import</span> <span class="nn">imp</span>
81 <span class="kn">import</span> <span class="nn">subprocess</span>
82
83 <span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">fork</span>
84 <span class="kn">import</span> <span class="nn">src</span>
85
86 <span class="c"># directories not considered as test grids</span>
87 <span class="n">C_IGNORE_GRIDS</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;.git&#39;</span><span class="p">,</span> <span class="s">&#39;.svn&#39;</span><span class="p">,</span> <span class="s">&#39;RESSOURCES&#39;</span><span class="p">]</span>
88
89 <span class="n">DEFAULT_TIMEOUT</span> <span class="o">=</span> <span class="mi">150</span>
90
91 <span class="c"># Get directory to be used for the temporary files.</span>
92 <span class="c">#</span>
93 <div class="viewcode-block" id="getTmpDirDEFAULT"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.getTmpDirDEFAULT">[docs]</a><span class="k">def</span> <span class="nf">getTmpDirDEFAULT</span><span class="p">():</span>
94     <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">architecture</span><span class="o">.</span><span class="n">is_windows</span><span class="p">():</span>
95         <span class="n">directory</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s">&quot;TEMP&quot;</span><span class="p">)</span>
96     <span class="k">else</span><span class="p">:</span>
97         <span class="c"># for Linux: use /tmp/logs/{user} folder</span>
98         <span class="n">directory</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> <span class="s">&#39;/tmp&#39;</span><span class="p">,</span> <span class="s">&#39;logs&#39;</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s">&quot;USER&quot;</span><span class="p">,</span> <span class="s">&quot;unknown&quot;</span><span class="p">))</span>
99     <span class="k">return</span> <span class="n">directory</span>
100 </div>
101 <div class="viewcode-block" id="Test"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test">[docs]</a><span class="k">class</span> <span class="nc">Test</span><span class="p">:</span>
102     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
103                  <span class="n">config</span><span class="p">,</span>
104                  <span class="n">logger</span><span class="p">,</span>
105                  <span class="n">tmp_working_dir</span><span class="p">,</span>
106                  <span class="n">testbase</span><span class="o">=</span><span class="s">&quot;&quot;</span><span class="p">,</span>
107                  <span class="n">grids</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
108                  <span class="n">sessions</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
109                  <span class="n">launcher</span><span class="o">=</span><span class="s">&quot;&quot;</span><span class="p">,</span>
110                  <span class="n">show_desktop</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span>
111         <span class="bp">self</span><span class="o">.</span><span class="n">grids</span> <span class="o">=</span> <span class="n">grids</span>
112         <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="o">=</span> <span class="n">config</span>
113         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span> <span class="o">=</span> <span class="n">logger</span>
114         <span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span> <span class="o">=</span> <span class="n">tmp_working_dir</span>
115         <span class="bp">self</span><span class="o">.</span><span class="n">sessions</span> <span class="o">=</span> <span class="n">sessions</span>
116         <span class="bp">self</span><span class="o">.</span><span class="n">launcher</span> <span class="o">=</span> <span class="n">launcher</span>
117         <span class="bp">self</span><span class="o">.</span><span class="n">show_desktop</span> <span class="o">=</span> <span class="n">show_desktop</span>
118
119         <span class="n">res</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepare_testbase</span><span class="p">(</span><span class="n">testbase</span><span class="p">)</span>
120         <span class="bp">self</span><span class="o">.</span><span class="n">test_base_found</span> <span class="o">=</span> <span class="bp">True</span>
121         <span class="k">if</span> <span class="n">res</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
122             <span class="c"># Fail</span>
123             <span class="bp">self</span><span class="o">.</span><span class="n">test_base_found</span> <span class="o">=</span> <span class="bp">False</span>
124         
125         <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="p">{}</span>
126         <span class="bp">self</span><span class="o">.</span><span class="n">known_errors</span> <span class="o">=</span> <span class="bp">None</span>
127
128         <span class="c"># create section for results</span>
129         <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">TESTS</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">pyconf</span><span class="o">.</span><span class="n">Sequence</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
130
131         <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="o">=</span> <span class="mi">0</span>
132         <span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span> <span class="o">=</span> <span class="mi">0</span>
133         <span class="bp">self</span><span class="o">.</span><span class="n">nb_timeout</span> <span class="o">=</span> <span class="mi">0</span>
134         <span class="bp">self</span><span class="o">.</span><span class="n">nb_not_run</span> <span class="o">=</span> <span class="mi">0</span>
135         <span class="bp">self</span><span class="o">.</span><span class="n">nb_acknoledge</span> <span class="o">=</span> <span class="mi">0</span>
136
137     <span class="k">def</span> <span class="nf">_copy_dir</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source</span><span class="p">,</span> <span class="n">target</span><span class="p">):</span>
138         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">python</span> <span class="o">&gt;=</span> <span class="s">&quot;2.6&quot;</span><span class="p">:</span>
139             <span class="n">shutil</span><span class="o">.</span><span class="n">copytree</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">target</span><span class="p">,</span>
140                             <span class="n">symlinks</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
141                             <span class="n">ignore</span><span class="o">=</span><span class="n">shutil</span><span class="o">.</span><span class="n">ignore_patterns</span><span class="p">(</span><span class="s">&#39;.git*&#39;</span><span class="p">,</span><span class="s">&#39;.svn*&#39;</span><span class="p">))</span>
142         <span class="k">else</span><span class="p">:</span>
143             <span class="n">shutil</span><span class="o">.</span><span class="n">copytree</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">target</span><span class="p">,</span>
144                             <span class="n">symlinks</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
145
146 <div class="viewcode-block" id="Test.prepare_testbase_from_dir"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.prepare_testbase_from_dir">[docs]</a>    <span class="k">def</span> <span class="nf">prepare_testbase_from_dir</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">testbase_name</span><span class="p">,</span> <span class="n">testbase_dir</span><span class="p">):</span>
147         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;get test base from dir: </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">)</span> <span class="o">%</span> \
148                           <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span><span class="n">testbase_dir</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
149         <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">access</span><span class="p">(</span><span class="n">testbase_dir</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">X_OK</span><span class="p">):</span>
150             <span class="k">raise</span> <span class="n">src</span><span class="o">.</span><span class="n">SatException</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;testbase </span><span class="si">%(name)s</span><span class="s"> (</span><span class="si">%(dir)s</span><span class="s">) does not &quot;</span>
151                                      <span class="s">&quot;exist ...</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="p">{</span> <span class="s">&#39;name&#39;</span><span class="p">:</span> <span class="n">testbase_name</span><span class="p">,</span>
152                                                        <span class="s">&#39;dir&#39;</span><span class="p">:</span> <span class="n">testbase_dir</span> <span class="p">})</span>
153
154         <span class="bp">self</span><span class="o">.</span><span class="n">_copy_dir</span><span class="p">(</span><span class="n">testbase_dir</span><span class="p">,</span>
155                        <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s">&#39;BASES&#39;</span><span class="p">,</span> <span class="n">testbase_name</span><span class="p">))</span>
156 </div>
157 <div class="viewcode-block" id="Test.prepare_testbase_from_git"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.prepare_testbase_from_git">[docs]</a>    <span class="k">def</span> <span class="nf">prepare_testbase_from_git</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
158                                   <span class="n">testbase_name</span><span class="p">,</span>
159                                   <span class="n">testbase_base</span><span class="p">,</span>
160                                   <span class="n">testbase_tag</span><span class="p">):</span>
161         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span>
162             <span class="n">_</span><span class="p">(</span><span class="s">&quot;get test base &#39;</span><span class="si">%(testbase)s</span><span class="s">&#39; with &#39;</span><span class="si">%(tag)s</span><span class="s">&#39; tag from git</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="p">{</span>
163                         <span class="s">&quot;testbase&quot;</span> <span class="p">:</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span><span class="n">testbase_name</span><span class="p">),</span>
164                         <span class="s">&quot;tag&quot;</span> <span class="p">:</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span><span class="n">testbase_tag</span><span class="p">)},</span>
165                           <span class="mi">3</span><span class="p">)</span>
166         <span class="k">try</span><span class="p">:</span>
167             <span class="k">def</span> <span class="nf">set_signal</span><span class="p">():</span> <span class="c"># pragma: no cover</span>
168                 <span class="sd">&quot;&quot;&quot;see http://bugs.python.org/issue1652&quot;&quot;&quot;</span>
169                 <span class="kn">import</span> <span class="nn">signal</span>
170                 <span class="n">signal</span><span class="o">.</span><span class="n">signal</span><span class="p">(</span><span class="n">signal</span><span class="o">.</span><span class="n">SIGPIPE</span><span class="p">,</span> <span class="n">signal</span><span class="o">.</span><span class="n">SIG_DFL</span><span class="p">)</span>
171
172             <span class="n">cmd</span> <span class="o">=</span> <span class="s">&quot;git clone --depth 1 </span><span class="si">%(base)s</span><span class="s"> </span><span class="si">%(dir)s</span><span class="s">&quot;</span>
173             <span class="n">cmd</span> <span class="o">+=</span> <span class="s">&quot; &amp;&amp; cd </span><span class="si">%(dir)s</span><span class="s">&quot;</span>
174             <span class="k">if</span> <span class="n">testbase_tag</span><span class="o">==</span><span class="s">&#39;master&#39;</span><span class="p">:</span>
175                 <span class="n">cmd</span> <span class="o">+=</span> <span class="s">&quot; &amp;&amp; git fetch origin </span><span class="si">%(branch)s</span><span class="s">&quot;</span>
176             <span class="k">else</span><span class="p">:</span>
177                 <span class="n">cmd</span> <span class="o">+=</span> <span class="s">&quot; &amp;&amp; git fetch origin </span><span class="si">%(branch)s</span><span class="s">:</span><span class="si">%(branch)s</span><span class="s">&quot;</span>
178             <span class="n">cmd</span> <span class="o">+=</span> <span class="s">&quot; &amp;&amp; git checkout </span><span class="si">%(branch)s</span><span class="s">&quot;</span>
179             <span class="n">cmd</span> <span class="o">=</span> <span class="n">cmd</span> <span class="o">%</span> <span class="p">{</span> <span class="s">&#39;branch&#39;</span><span class="p">:</span> <span class="n">testbase_tag</span><span class="p">,</span>
180                          <span class="s">&#39;base&#39;</span><span class="p">:</span> <span class="n">testbase_base</span><span class="p">,</span>
181                          <span class="s">&#39;dir&#39;</span><span class="p">:</span> <span class="n">testbase_name</span> <span class="p">}</span>
182
183             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;&gt; </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">cmd</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
184             <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">architecture</span><span class="o">.</span><span class="n">is_windows</span><span class="p">():</span>
185                 <span class="c"># preexec_fn not supported on windows platform</span>
186                 <span class="n">res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span>
187                                 <span class="n">cwd</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s">&#39;BASES&#39;</span><span class="p">),</span>
188                                 <span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
189                                 <span class="n">stdout</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="p">,</span>
190                                 <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
191             <span class="k">else</span><span class="p">:</span>
192                 <span class="n">res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span>
193                                 <span class="n">cwd</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s">&#39;BASES&#39;</span><span class="p">),</span>
194                                 <span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
195                                 <span class="n">preexec_fn</span><span class="o">=</span><span class="n">set_signal</span><span class="p">,</span>
196                                 <span class="n">stdout</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="p">,</span>
197                                 <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
198             <span class="k">if</span> <span class="n">res</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
199                 <span class="k">raise</span> <span class="n">src</span><span class="o">.</span><span class="n">SatException</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;Error: unable to get test base &quot;</span>
200                                          <span class="s">&quot;&#39;</span><span class="si">%(name)s</span><span class="s">&#39; from git &#39;</span><span class="si">%(repo)s</span><span class="s">&#39;.&quot;</span><span class="p">)</span> <span class="o">%</span> \
201                                        <span class="p">{</span> <span class="s">&#39;name&#39;</span><span class="p">:</span> <span class="n">testbase_name</span><span class="p">,</span>
202                                         <span class="s">&#39;repo&#39;</span><span class="p">:</span> <span class="n">testbase_base</span> <span class="p">})</span>
203
204         <span class="k">except</span> <span class="ne">OSError</span><span class="p">:</span>
205             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;git is not installed. exiting...</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">))</span>
206             <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
207 </div>
208 <div class="viewcode-block" id="Test.prepare_testbase_from_svn"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.prepare_testbase_from_svn">[docs]</a>    <span class="k">def</span> <span class="nf">prepare_testbase_from_svn</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">testbase_name</span><span class="p">,</span> <span class="n">testbase_base</span><span class="p">):</span>
209         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;get test base &#39;</span><span class="si">%s</span><span class="s">&#39; from svn</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">)</span> <span class="o">%</span> \
210                           <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span><span class="n">testbase_name</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
211         <span class="k">try</span><span class="p">:</span>
212             <span class="k">def</span> <span class="nf">set_signal</span><span class="p">():</span> <span class="c"># pragma: no cover</span>
213                 <span class="sd">&quot;&quot;&quot;see http://bugs.python.org/issue1652&quot;&quot;&quot;</span>
214                 <span class="kn">import</span> <span class="nn">signal</span>
215                 <span class="n">signal</span><span class="o">.</span><span class="n">signal</span><span class="p">(</span><span class="n">signal</span><span class="o">.</span><span class="n">SIGPIPE</span><span class="p">,</span> <span class="n">signal</span><span class="o">.</span><span class="n">SIG_DFL</span><span class="p">)</span>
216
217             <span class="n">cmd</span> <span class="o">=</span> <span class="s">&quot;svn checkout --username </span><span class="si">%(user)s</span><span class="s"> </span><span class="si">%(base)s</span><span class="s"> </span><span class="si">%(dir)s</span><span class="s">&quot;</span>
218             <span class="n">cmd</span> <span class="o">=</span> <span class="n">cmd</span> <span class="o">%</span> <span class="p">{</span> <span class="s">&#39;user&#39;</span><span class="p">:</span> <span class="n">user</span><span class="p">,</span>
219                          <span class="s">&#39;base&#39;</span><span class="p">:</span> <span class="n">testbase_base</span><span class="p">,</span>
220                          <span class="s">&#39;dir&#39;</span><span class="p">:</span> <span class="n">testbase_name</span> <span class="p">}</span>
221             
222             <span class="c"># Get the application environment</span>
223             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;Set the application environment</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">),</span> <span class="mi">5</span><span class="p">)</span>
224             <span class="n">env_appli</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">SalomeEnviron</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span>
225                                       <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">Environ</span><span class="p">(</span><span class="nb">dict</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">)))</span>
226             <span class="n">env_appli</span><span class="o">.</span><span class="n">set_application_env</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
227             
228             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;&gt; </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">cmd</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
229             <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">architecture</span><span class="o">.</span><span class="n">is_windows</span><span class="p">():</span>
230                 <span class="c"># preexec_fn not supported on windows platform</span>
231                 <span class="n">res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span>
232                                 <span class="n">cwd</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s">&#39;BASES&#39;</span><span class="p">),</span>
233                                 <span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
234                                 <span class="n">stdout</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="p">,</span>
235                                 <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
236             <span class="k">else</span><span class="p">:</span>
237                 <span class="n">res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span>
238                                 <span class="n">cwd</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s">&#39;BASES&#39;</span><span class="p">),</span>
239                                 <span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
240                                 <span class="n">preexec_fn</span><span class="o">=</span><span class="n">set_signal</span><span class="p">,</span>
241                                 <span class="n">stdout</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">logTxtFile</span><span class="p">,</span>
242                                 <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span>
243                                 <span class="n">env</span><span class="o">=</span><span class="n">env_appli</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">environ</span><span class="p">,)</span>
244
245             <span class="k">if</span> <span class="n">res</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
246                 <span class="k">raise</span> <span class="n">src</span><span class="o">.</span><span class="n">SatException</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;Error: unable to get test base &#39;%(nam&quot;</span>
247                                          <span class="s">&quot;e)s&#39; from svn &#39;</span><span class="si">%(repo)s</span><span class="s">&#39;.&quot;</span><span class="p">)</span> <span class="o">%</span> \
248                                        <span class="p">{</span> <span class="s">&#39;name&#39;</span><span class="p">:</span> <span class="n">testbase_name</span><span class="p">,</span>
249                                         <span class="s">&#39;repo&#39;</span><span class="p">:</span> <span class="n">testbase_base</span> <span class="p">})</span>
250
251         <span class="k">except</span> <span class="ne">OSError</span><span class="p">:</span>
252             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;svn is not installed. exiting...</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">))</span>
253             <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
254
255     <span class="c">##</span>
256     <span class="c"># Configure tests base.</span></div>
257 <div class="viewcode-block" id="Test.prepare_testbase"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.prepare_testbase">[docs]</a>    <span class="k">def</span> <span class="nf">prepare_testbase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test_base_name</span><span class="p">):</span>
258         <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">print_value</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span>
259                                     <span class="n">_</span><span class="p">(</span><span class="s">&quot;Test base&quot;</span><span class="p">),</span>
260                                     <span class="n">test_base_name</span><span class="p">,</span>
261                                     <span class="mi">3</span><span class="p">)</span>
262         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
263
264         <span class="c"># search for the test base</span>
265         <span class="n">test_base_info</span> <span class="o">=</span> <span class="bp">None</span>
266         <span class="k">for</span> <span class="n">project_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">PROJECTS</span><span class="o">.</span><span class="n">projects</span><span class="p">:</span>
267             <span class="n">project_info</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">PROJECTS</span><span class="o">.</span><span class="n">projects</span><span class="p">[</span><span class="n">project_name</span><span class="p">]</span>
268             <span class="k">if</span> <span class="s">&quot;test_bases&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">project_info</span><span class="p">:</span>
269                 <span class="k">continue</span>
270             <span class="k">for</span> <span class="n">t_b_info</span> <span class="ow">in</span> <span class="n">project_info</span><span class="o">.</span><span class="n">test_bases</span><span class="p">:</span>
271                 <span class="k">if</span> <span class="n">t_b_info</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">test_base_name</span><span class="p">:</span>
272                     <span class="n">test_base_info</span> <span class="o">=</span> <span class="n">t_b_info</span>
273         
274         <span class="k">if</span> <span class="ow">not</span> <span class="n">test_base_info</span><span class="p">:</span>
275             <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">test_base_name</span><span class="p">):</span>
276                 <span class="bp">self</span><span class="o">.</span><span class="n">prepare_testbase_from_dir</span><span class="p">(</span><span class="s">&quot;DIR&quot;</span><span class="p">,</span> <span class="n">test_base_name</span><span class="p">)</span>
277                 <span class="bp">self</span><span class="o">.</span><span class="n">currentTestBase</span> <span class="o">=</span> <span class="s">&quot;DIR&quot;</span>
278                 <span class="k">return</span> <span class="mi">0</span>
279         
280         <span class="k">if</span> <span class="ow">not</span> <span class="n">test_base_info</span><span class="p">:</span>
281             <span class="n">message</span> <span class="o">=</span> <span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;########## ERROR: test base &#39;</span><span class="si">%s</span><span class="s">&#39; not found</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">)</span> <span class="o">%</span> 
282                        <span class="n">test_base_name</span><span class="p">)</span>
283             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcError</span><span class="p">(</span><span class="n">message</span><span class="p">))</span>
284             <span class="k">return</span> <span class="mi">1</span>
285
286         <span class="k">if</span> <span class="n">test_base_info</span><span class="o">.</span><span class="n">get_sources</span> <span class="o">==</span> <span class="s">&quot;dir&quot;</span><span class="p">:</span>
287             <span class="bp">self</span><span class="o">.</span><span class="n">prepare_testbase_from_dir</span><span class="p">(</span><span class="n">test_base_name</span><span class="p">,</span>
288                                            <span class="n">test_base_info</span><span class="o">.</span><span class="n">info</span><span class="o">.</span><span class="n">dir</span><span class="p">)</span>
289         <span class="k">elif</span> <span class="n">test_base_info</span><span class="o">.</span><span class="n">get_sources</span> <span class="o">==</span> <span class="s">&quot;git&quot;</span><span class="p">:</span>
290             <span class="bp">self</span><span class="o">.</span><span class="n">prepare_testbase_from_git</span><span class="p">(</span><span class="n">test_base_name</span><span class="p">,</span>
291                                        <span class="n">test_base_info</span><span class="o">.</span><span class="n">info</span><span class="o">.</span><span class="n">base</span><span class="p">,</span>
292                                        <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">test_base</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
293         <span class="k">elif</span> <span class="n">test_base_info</span><span class="o">.</span><span class="n">get_sources</span> <span class="o">==</span> <span class="s">&quot;svn&quot;</span><span class="p">:</span>
294             <span class="n">svn_user</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_cfg_param</span><span class="p">(</span><span class="n">test_base_info</span><span class="o">.</span><span class="n">info</span><span class="p">,</span>
295                                          <span class="s">&quot;svn_user&quot;</span><span class="p">,</span>
296                                          <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">USER</span><span class="o">.</span><span class="n">svn_user</span><span class="p">)</span>
297             <span class="bp">self</span><span class="o">.</span><span class="n">prepare_testbase_from_svn</span><span class="p">(</span><span class="n">svn_user</span><span class="p">,</span>
298                                        <span class="n">test_base_name</span><span class="p">,</span>
299                                        <span class="n">test_base_info</span><span class="o">.</span><span class="n">info</span><span class="o">.</span><span class="n">base</span><span class="p">)</span>
300         <span class="k">else</span><span class="p">:</span>
301             <span class="k">raise</span> <span class="n">src</span><span class="o">.</span><span class="n">SatException</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;unknown source type &#39;</span><span class="si">%(type)s</span><span class="s">&#39; for test b&quot;</span>
302                                      <span class="s">&quot;ase &#39;</span><span class="si">%(base)s</span><span class="s">&#39; ...</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="p">{</span>
303                                         <span class="s">&#39;type&#39;</span><span class="p">:</span> <span class="n">test_base_info</span><span class="o">.</span><span class="n">get_sources</span><span class="p">,</span>
304                                         <span class="s">&#39;base&#39;</span><span class="p">:</span> <span class="n">test_base_name</span> <span class="p">})</span>
305
306         <span class="bp">self</span><span class="o">.</span><span class="n">currentTestBase</span> <span class="o">=</span> <span class="n">test_base_name</span>
307
308     <span class="c">##</span>
309     <span class="c"># Searches if the script is declared in known errors pyconf.</span>
310     <span class="c"># Update the status if needed.</span></div>
311 <div class="viewcode-block" id="Test.search_known_errors"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.search_known_errors">[docs]</a>    <span class="k">def</span> <span class="nf">search_known_errors</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">test_grid</span><span class="p">,</span> <span class="n">test_session</span><span class="p">,</span> <span class="n">test</span><span class="p">):</span>
312         <span class="n">test_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">test_grid</span><span class="p">,</span> <span class="n">test_session</span><span class="p">,</span> <span class="n">test</span><span class="p">)</span>
313         <span class="k">if</span> <span class="ow">not</span> <span class="n">src</span><span class="o">.</span><span class="n">config_has_application</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">):</span>
314             <span class="k">return</span> <span class="n">status</span><span class="p">,</span> <span class="p">[]</span>
315
316         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">known_errors</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
317             <span class="k">return</span> <span class="n">status</span><span class="p">,</span> <span class="p">[]</span>
318
319         <span class="n">platform</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">arch</span>
320         <span class="n">application</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">application</span>
321         <span class="n">error</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">known_errors</span><span class="o">.</span><span class="n">get_error</span><span class="p">(</span><span class="n">test_path</span><span class="p">,</span> <span class="n">application</span><span class="p">,</span> <span class="n">platform</span><span class="p">)</span>
322         <span class="k">if</span> <span class="n">error</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
323             <span class="k">return</span> <span class="n">status</span><span class="p">,</span> <span class="p">[]</span>
324         
325         <span class="k">if</span> <span class="n">status</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">OK_STATUS</span><span class="p">:</span>
326             <span class="k">if</span> <span class="ow">not</span> <span class="n">error</span><span class="o">.</span><span class="n">fixed</span><span class="p">:</span>
327                 <span class="c"># the error is fixed</span>
328                 <span class="bp">self</span><span class="o">.</span><span class="n">known_errors</span><span class="o">.</span><span class="n">fix_error</span><span class="p">(</span><span class="n">error</span><span class="p">)</span>
329                 <span class="c">#import testerror</span>
330                 <span class="c">#testerror.write_test_failures(</span>
331                 <span class="c">#                        self.config.TOOLS.testerror.file_path,</span>
332                 <span class="c">#                        self.known_errors.errors)</span>
333             <span class="k">return</span> <span class="n">status</span><span class="p">,</span> <span class="p">[</span> <span class="n">error</span><span class="o">.</span><span class="n">date</span><span class="p">,</span>
334                             <span class="n">error</span><span class="o">.</span><span class="n">expected</span><span class="p">,</span>
335                             <span class="n">error</span><span class="o">.</span><span class="n">comment</span><span class="p">,</span>
336                             <span class="n">error</span><span class="o">.</span><span class="n">fixed</span> <span class="p">]</span>
337
338         <span class="k">if</span> <span class="n">error</span><span class="o">.</span><span class="n">fixed</span><span class="p">:</span>
339             <span class="bp">self</span><span class="o">.</span><span class="n">known_errors</span><span class="o">.</span><span class="n">unfix_error</span><span class="p">(</span><span class="n">error</span><span class="p">)</span>
340             <span class="c">#import testerror</span>
341             <span class="c">#testerror.write_test_failures(self.config.TOOLS.testerror.file_path,</span>
342             <span class="c">#                              self.known_errors.errors)</span>
343
344         <span class="n">delta</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">known_errors</span><span class="o">.</span><span class="n">get_expecting_days</span><span class="p">(</span><span class="n">error</span><span class="p">)</span>
345         <span class="n">kfres</span> <span class="o">=</span> <span class="p">[</span> <span class="n">error</span><span class="o">.</span><span class="n">date</span><span class="p">,</span> <span class="n">error</span><span class="o">.</span><span class="n">expected</span><span class="p">,</span> <span class="n">error</span><span class="o">.</span><span class="n">comment</span><span class="p">,</span> <span class="n">error</span><span class="o">.</span><span class="n">fixed</span> <span class="p">]</span>
346         <span class="k">if</span> <span class="n">delta</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
347             <span class="k">return</span> <span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span><span class="p">,</span> <span class="n">kfres</span>
348         <span class="k">return</span> <span class="n">src</span><span class="o">.</span><span class="n">KNOWNFAILURE_STATUS</span><span class="p">,</span> <span class="n">kfres</span>
349
350     <span class="c">##</span>
351     <span class="c"># Read the *.result.py files.</span></div>
352 <div class="viewcode-block" id="Test.read_results"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.read_results">[docs]</a>    <span class="k">def</span> <span class="nf">read_results</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listTest</span><span class="p">,</span> <span class="n">has_timed_out</span><span class="p">):</span>
353         <span class="n">results</span> <span class="o">=</span> <span class="p">{}</span>
354         <span class="k">for</span> <span class="n">test</span> <span class="ow">in</span> <span class="n">listTest</span><span class="p">:</span>
355             <span class="n">resfile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span>
356                                    <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
357                                    <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">,</span>
358                                    <span class="n">test</span><span class="p">[:</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span> <span class="o">+</span> <span class="s">&quot;.result.py&quot;</span><span class="p">)</span>
359
360             <span class="c"># check if &lt;test&gt;.result.py file exists</span>
361             <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">resfile</span><span class="p">):</span>
362                 <span class="n">results</span><span class="p">[</span><span class="n">test</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="s">&quot;?&quot;</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&quot;&quot;</span><span class="p">,</span> <span class="p">[]]</span>
363             <span class="k">else</span><span class="p">:</span>
364                 <span class="n">gdic</span><span class="p">,</span> <span class="n">ldic</span> <span class="o">=</span> <span class="p">{},</span> <span class="p">{}</span>
365                 <span class="nb">execfile</span><span class="p">(</span><span class="n">resfile</span><span class="p">,</span> <span class="n">gdic</span><span class="p">,</span> <span class="n">ldic</span><span class="p">)</span>
366
367                 <span class="n">status</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">TIMEOUT_STATUS</span>
368                 <span class="k">if</span> <span class="ow">not</span> <span class="n">has_timed_out</span><span class="p">:</span>
369                     <span class="n">status</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span>
370
371                 <span class="k">if</span> <span class="n">ldic</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s">&#39;status&#39;</span><span class="p">):</span>
372                     <span class="n">status</span> <span class="o">=</span> <span class="n">ldic</span><span class="p">[</span><span class="s">&#39;status&#39;</span><span class="p">]</span>
373
374                 <span class="n">expected</span> <span class="o">=</span> <span class="p">[]</span>
375                 <span class="k">if</span> <span class="n">status</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span> <span class="ow">or</span> <span class="n">status</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">OK_STATUS</span><span class="p">:</span>
376                     <span class="n">status</span><span class="p">,</span> <span class="n">expected</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">search_known_errors</span><span class="p">(</span><span class="n">status</span><span class="p">,</span>
377                                                             <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
378                                                             <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">,</span>
379                                                             <span class="n">test</span><span class="p">)</span>
380
381                 <span class="n">callback</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>
382                 <span class="k">if</span> <span class="n">ldic</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s">&#39;callback&#39;</span><span class="p">):</span>
383                     <span class="n">callback</span> <span class="o">=</span> <span class="n">ldic</span><span class="p">[</span><span class="s">&#39;callback&#39;</span><span class="p">]</span>
384                 <span class="k">elif</span> <span class="n">status</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span><span class="p">:</span>
385                     <span class="n">callback</span> <span class="o">=</span> <span class="s">&quot;CRASH&quot;</span>
386
387                 <span class="n">exec_time</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
388                 <span class="k">if</span> <span class="n">ldic</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s">&#39;time&#39;</span><span class="p">):</span>
389                     <span class="k">try</span><span class="p">:</span>
390                         <span class="n">exec_time</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">ldic</span><span class="p">[</span><span class="s">&#39;time&#39;</span><span class="p">])</span>
391                     <span class="k">except</span><span class="p">:</span>
392                         <span class="k">pass</span>
393
394                 <span class="n">results</span><span class="p">[</span><span class="n">test</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">status</span><span class="p">,</span> <span class="n">exec_time</span><span class="p">,</span> <span class="n">callback</span><span class="p">,</span> <span class="n">expected</span><span class="p">]</span>
395             
396             <span class="c"># check if &lt;test&gt;.py file exists</span>
397             <span class="n">testfile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span>
398                                    <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
399                                    <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">,</span>
400                                    <span class="n">test</span><span class="p">)</span>
401             
402             <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">testfile</span><span class="p">):</span>
403                 <span class="n">results</span><span class="p">[</span><span class="n">test</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">)</span>
404             <span class="k">else</span><span class="p">:</span>
405                 <span class="n">text</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">testfile</span><span class="p">,</span> <span class="s">&quot;r&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
406                 <span class="n">results</span><span class="p">[</span><span class="n">test</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
407
408             <span class="c"># check if &lt;test&gt;.out.py file exists</span>
409             <span class="n">outfile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span>
410                                    <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
411                                    <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">,</span>
412                                    <span class="n">test</span><span class="p">[:</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span> <span class="o">+</span> <span class="s">&quot;.out.py&quot;</span><span class="p">)</span>
413             
414             <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">outfile</span><span class="p">):</span>
415                 <span class="n">results</span><span class="p">[</span><span class="n">test</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">)</span>
416             <span class="k">else</span><span class="p">:</span>
417                 <span class="n">text</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="s">&quot;r&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
418                 <span class="n">results</span><span class="p">[</span><span class="n">test</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
419
420         <span class="k">return</span> <span class="n">results</span>
421
422     <span class="c">##</span>
423     <span class="c"># Generates the script to be run by Salome.</span>
424     <span class="c"># This python script includes init and close statements and a loop</span>
425     <span class="c"># calling all the scripts of a single directory.</span></div>
426 <div class="viewcode-block" id="Test.generate_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.generate_script">[docs]</a>    <span class="k">def</span> <span class="nf">generate_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listTest</span><span class="p">,</span> <span class="n">script_path</span><span class="p">,</span> <span class="n">ignoreList</span><span class="p">):</span>
427         <span class="c"># open template file</span>
428         <span class="n">template_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">srcDir</span><span class="p">,</span>
429                                           <span class="s">&quot;test&quot;</span><span class="p">,</span>
430                                           <span class="s">&quot;scriptTemplate.py&quot;</span><span class="p">),</span> <span class="s">&#39;r&#39;</span><span class="p">)</span>
431         <span class="n">template</span> <span class="o">=</span> <span class="n">string</span><span class="o">.</span><span class="n">Template</span><span class="p">(</span><span class="n">template_file</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
432         
433         <span class="c"># create substitution dictionary</span>
434         <span class="n">d</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span>
435         <span class="n">d</span><span class="p">[</span><span class="s">&#39;resourcesWay&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span> <span class="s">&#39;RESSOURCES&#39;</span><span class="p">)</span>
436         <span class="n">d</span><span class="p">[</span><span class="s">&#39;tmpDir&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s">&#39;WORK&#39;</span><span class="p">)</span>
437         <span class="n">d</span><span class="p">[</span><span class="s">&#39;toolsWay&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">VARS</span><span class="o">.</span><span class="n">srcDir</span><span class="p">,</span> <span class="s">&quot;test&quot;</span><span class="p">)</span>
438         <span class="n">d</span><span class="p">[</span><span class="s">&#39;sessionDir&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span>
439                                     <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
440                                     <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">)</span>
441         <span class="n">d</span><span class="p">[</span><span class="s">&#39;resultFile&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span>
442                                        <span class="s">&#39;WORK&#39;</span><span class="p">,</span>
443                                        <span class="s">&#39;exec_result&#39;</span><span class="p">)</span>
444         <span class="n">d</span><span class="p">[</span><span class="s">&#39;listTest&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">listTest</span>
445         <span class="n">d</span><span class="p">[</span><span class="s">&#39;sessionName&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span>
446         <span class="n">d</span><span class="p">[</span><span class="s">&#39;ignore&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ignoreList</span>
447
448         <span class="c"># create script with template</span>
449         <span class="n">script</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">script_path</span><span class="p">,</span> <span class="s">&#39;w&#39;</span><span class="p">)</span>
450         <span class="n">script</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">template</span><span class="o">.</span><span class="n">safe_substitute</span><span class="p">(</span><span class="n">d</span><span class="p">))</span>
451         <span class="n">script</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
452
453     <span class="c"># Find the getTmpDir function that gives access to *pidict file directory.</span>
454     <span class="c"># (the *pidict file exists when SALOME is launched) </span></div>
455 <div class="viewcode-block" id="Test.get_tmp_dir"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.get_tmp_dir">[docs]</a>    <span class="k">def</span> <span class="nf">get_tmp_dir</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
456         <span class="c"># Rare case where there is no KERNEL in grid list </span>
457         <span class="c"># (for example MED_STANDALONE)</span>
458         <span class="k">if</span> <span class="p">(</span><span class="s">&#39;APPLICATION&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span> 
459                 <span class="ow">and</span> <span class="s">&#39;KERNEL&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span> 
460                 <span class="ow">and</span> <span class="s">&#39;KERNEL_ROOT_DIR&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
461             <span class="k">return</span> <span class="n">getTmpDirDEFAULT</span>
462         
463         <span class="c"># Case where &quot;sat test&quot; is launched in an existing SALOME environment</span>
464         <span class="k">if</span> <span class="s">&#39;KERNEL_ROOT_DIR&#39;</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
465             <span class="n">root_dir</span> <span class="o">=</span>  <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s">&#39;KERNEL_ROOT_DIR&#39;</span><span class="p">]</span>
466         
467         <span class="k">if</span> <span class="p">(</span><span class="s">&#39;APPLICATION&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span> 
468                 <span class="ow">and</span> <span class="s">&#39;KERNEL&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">):</span>
469             <span class="n">root_dir</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span>
470                                                       <span class="s">&quot;KERNEL&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">install_dir</span>
471
472         <span class="c"># Case where there the appli option is called (with path to launcher)</span>
473         <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">launcher</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
474             <span class="c"># There are two cases : The old application (runAppli) </span>
475             <span class="c"># and the new one</span>
476             <span class="n">launcherName</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">launcher</span><span class="p">)</span>
477             <span class="n">launcherDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">launcher</span><span class="p">)</span>
478             <span class="k">if</span> <span class="n">launcherName</span> <span class="o">==</span> <span class="s">&#39;runAppli&#39;</span><span class="p">:</span>
479                 <span class="c"># Old application</span>
480                 <span class="n">cmd</span> <span class="o">=</span> <span class="p">(</span><span class="s">&quot;for i in &quot;</span> <span class="o">+</span> <span class="n">launcherDir</span> <span class="o">+</span> <span class="s">&quot;/env.d/*.sh; do source ${i};&quot;</span>
481                        <span class="s">&quot; done ; echo $KERNEL_ROOT_DIR&quot;</span><span class="p">)</span>
482             <span class="k">else</span><span class="p">:</span>
483                 <span class="c"># New application</span>
484                 <span class="n">cmd</span> <span class="o">=</span> <span class="p">(</span><span class="s">&quot;echo -e &#39;import os</span><span class="se">\n</span><span class="s">print os.environ[</span><span class="se">\&quot;</span><span class="s">KERNEL_&quot;</span> <span class="o">+</span> 
485                        <span class="s">&quot;ROOT_DIR</span><span class="se">\&quot;</span><span class="s">]&#39; &gt; tmpscript.py; </span><span class="si">%s</span><span class="s"> shell&quot;</span> <span class="o">+</span> 
486                        <span class="s">&quot; tmpscript.py&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">launcher</span>
487
488             <span class="c"># OP 14/11/2017 Ajout de traces pour essayer de decouvrir le pb</span>
489             <span class="c">#               de remontee de log des tests</span>
490             <span class="c">#root_dir = subprocess.Popen(cmd,</span>
491             <span class="c">#                stdout=subprocess.PIPE,</span>
492             <span class="c">#                shell=True,</span>
493             <span class="c">#                executable=&#39;/bin/bash&#39;).communicate()[0].split()[-1]</span>
494             <span class="n">subproc_res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span>
495                             <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span>
496                             <span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
497                             <span class="n">executable</span><span class="o">=</span><span class="s">&#39;/bin/bash&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
498             <span class="c">#print &quot;TRACES OP - test_module.py/Test.get_tmp_dir() subproc_res = &quot;</span>
499             <span class="k">for</span> <span class="n">resLine</span> <span class="ow">in</span> <span class="n">subproc_res</span><span class="p">:</span>
500                 <span class="k">print</span> <span class="s">&quot;- &#39;#</span><span class="si">%s</span><span class="s">#&#39;&quot;</span> <span class="o">%</span><span class="n">resLine</span>
501             
502             <span class="n">root_dir</span> <span class="o">=</span> <span class="n">subproc_res</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">()[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
503
504         <span class="c"># OP 14/11/2017 Ajout de traces pour essayer de decouvrir le pb</span>
505         <span class="c">#               de remontee de log des tests</span>
506         <span class="c">#print &quot;TRACES OP - test_module.py/Test.get_tmp_dir() root_dir = &#39;#%s#&#39;&quot; %root_dir</span>
507         
508         <span class="c"># import grid salome_utils from KERNEL that gives </span>
509         <span class="c"># the right getTmpDir function</span>
510         <span class="p">(</span><span class="n">file_</span><span class="p">,</span> <span class="n">pathname</span><span class="p">,</span> <span class="n">description</span><span class="p">)</span> <span class="o">=</span> <span class="n">imp</span><span class="o">.</span><span class="n">find_module</span><span class="p">(</span><span class="s">&quot;salome_utils&quot;</span><span class="p">,</span>
511                                                          <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root_dir</span><span class="p">,</span>
512                                                                     <span class="s">&#39;bin&#39;</span><span class="p">,</span>
513                                                                     <span class="s">&#39;salome&#39;</span><span class="p">)])</span>
514         <span class="k">try</span><span class="p">:</span>
515             <span class="n">grid</span> <span class="o">=</span> <span class="n">imp</span><span class="o">.</span><span class="n">load_module</span><span class="p">(</span><span class="s">&quot;salome_utils&quot;</span><span class="p">,</span>
516                                      <span class="n">file_</span><span class="p">,</span>
517                                      <span class="n">pathname</span><span class="p">,</span>
518                                      <span class="n">description</span><span class="p">)</span>
519             <span class="k">return</span> <span class="n">grid</span><span class="o">.</span><span class="n">getLogDir</span>
520         <span class="k">except</span><span class="p">:</span>
521             <span class="n">grid</span> <span class="o">=</span> <span class="n">imp</span><span class="o">.</span><span class="n">load_module</span><span class="p">(</span><span class="s">&quot;salome_utils&quot;</span><span class="p">,</span>
522                                      <span class="n">file_</span><span class="p">,</span>
523                                      <span class="n">pathname</span><span class="p">,</span>
524                                      <span class="n">description</span><span class="p">)</span>
525             <span class="k">return</span> <span class="n">grid</span><span class="o">.</span><span class="n">getTmpDir</span>
526         <span class="k">finally</span><span class="p">:</span>
527             <span class="k">if</span> <span class="n">file_</span><span class="p">:</span>
528                 <span class="n">file_</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
529
530 </div>
531 <div class="viewcode-block" id="Test.get_test_timeout"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.get_test_timeout">[docs]</a>    <span class="k">def</span> <span class="nf">get_test_timeout</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">test_name</span><span class="p">,</span> <span class="n">default_value</span><span class="p">):</span>
532         <span class="k">if</span> <span class="p">(</span><span class="s">&quot;timeout&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="ow">and</span> 
533                 <span class="n">test_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s">&quot;timeout&quot;</span><span class="p">]):</span>
534             <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s">&quot;timeout&quot;</span><span class="p">][</span><span class="n">test_name</span><span class="p">]</span>
535
536         <span class="k">return</span> <span class="n">default_value</span>
537 </div>
538 <div class="viewcode-block" id="Test.generate_launching_commands"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.generate_launching_commands">[docs]</a>    <span class="k">def</span> <span class="nf">generate_launching_commands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
539         <span class="c"># Case where &quot;sat test&quot; is launched in an existing SALOME environment</span>
540         <span class="k">if</span> <span class="s">&#39;KERNEL_ROOT_DIR&#39;</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
541             <span class="n">binSalome</span> <span class="o">=</span> <span class="s">&quot;runSalome&quot;</span>
542             <span class="n">binPython</span> <span class="o">=</span> <span class="s">&quot;python&quot;</span>
543             <span class="n">killSalome</span> <span class="o">=</span> <span class="s">&quot;killSalome.py&quot;</span>
544         
545         <span class="c"># Rare case where there is no KERNEL in grid list </span>
546         <span class="c"># (for example MED_STANDALONE)</span>
547         <span class="k">if</span> <span class="p">(</span><span class="s">&#39;APPLICATION&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="ow">and</span> 
548                 <span class="s">&#39;KERNEL&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">):</span>
549             <span class="n">binSalome</span> <span class="o">=</span> <span class="s">&quot;runSalome&quot;</span>
550             <span class="n">binPython</span> <span class="o">=</span> <span class="s">&quot;python&quot;</span> 
551             <span class="n">killSalome</span> <span class="o">=</span> <span class="s">&quot;killSalome.py&quot;</span>   
552             <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">load_environment</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> <span class="bp">False</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>         
553             <span class="k">return</span> <span class="n">binSalome</span><span class="p">,</span> <span class="n">binPython</span><span class="p">,</span> <span class="n">killSalome</span>
554         
555         <span class="c"># Case where there the appli option is called (with path to launcher)</span>
556         <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">launcher</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
557             <span class="c"># There are two cases : The old application (runAppli) </span>
558             <span class="c"># and the new one</span>
559             <span class="n">launcherName</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">launcher</span><span class="p">)</span>
560             <span class="n">launcherDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">launcher</span><span class="p">)</span>
561             <span class="k">if</span> <span class="n">launcherName</span> <span class="o">==</span> <span class="s">&#39;runAppli&#39;</span><span class="p">:</span>
562                 <span class="c"># Old application</span>
563                 <span class="n">binSalome</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">launcher</span>
564                 <span class="n">binPython</span> <span class="o">=</span> <span class="p">(</span><span class="s">&quot;for i in &quot;</span> <span class="o">+</span>
565                              <span class="n">launcherDir</span> <span class="o">+</span>
566                              <span class="s">&quot;/env.d/*.sh; do source ${i}; done ; python&quot;</span><span class="p">)</span>
567                 <span class="n">killSalome</span> <span class="o">=</span> <span class="p">(</span><span class="s">&quot;for i in &quot;</span> <span class="o">+</span>
568                         <span class="n">launcherDir</span> <span class="o">+</span>
569                         <span class="s">&quot;/env.d/*.sh; do source ${i}; done ; killSalome.py&#39;&quot;</span><span class="p">)</span>
570                 <span class="k">return</span> <span class="n">binSalome</span><span class="p">,</span> <span class="n">binPython</span><span class="p">,</span> <span class="n">killSalome</span>
571             <span class="k">else</span><span class="p">:</span>
572                 <span class="c"># New application</span>
573                 <span class="n">binSalome</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">launcher</span>
574                 <span class="n">binPython</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">launcher</span> <span class="o">+</span> <span class="s">&#39; shell&#39;</span>
575                 <span class="n">killSalome</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">launcher</span> <span class="o">+</span> <span class="s">&#39; killall&#39;</span>
576                 <span class="k">return</span> <span class="n">binSalome</span><span class="p">,</span> <span class="n">binPython</span><span class="p">,</span> <span class="n">killSalome</span>
577
578         <span class="c"># SALOME version detection and APPLI repository detection</span>
579         <span class="n">VersionSalome</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_salome_version</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
580         <span class="n">appdir</span> <span class="o">=</span> <span class="s">&#39;APPLI&#39;</span>
581         <span class="k">if</span> <span class="s">&quot;APPLI&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="ow">and</span> <span class="s">&quot;application_name&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLI</span><span class="p">:</span>
582             <span class="n">appdir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLI</span><span class="o">.</span><span class="n">application_name</span>
583         
584         <span class="c"># Case where SALOME has NOT the launcher that uses the SalomeContext API</span>
585         <span class="k">if</span> <span class="n">VersionSalome</span> <span class="o">&lt;</span> <span class="mi">730</span><span class="p">:</span>
586             <span class="n">binSalome</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span>
587                                      <span class="n">appdir</span><span class="p">,</span>
588                                      <span class="s">&quot;runAppli&quot;</span><span class="p">)</span>
589             <span class="n">binPython</span> <span class="o">=</span> <span class="s">&quot;python&quot;</span>
590             <span class="n">killSalome</span> <span class="o">=</span> <span class="s">&quot;killSalome.py&quot;</span>
591             <span class="n">src</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">load_environment</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> <span class="bp">False</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>           
592             <span class="k">return</span> <span class="n">binSalome</span><span class="p">,</span> <span class="n">binPython</span><span class="p">,</span> <span class="n">killSalome</span>
593         
594         <span class="c"># Case where SALOME has the launcher that uses the SalomeContext API</span>
595         <span class="k">else</span><span class="p">:</span>            
596             <span class="n">launcher_name</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_launcher_name</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
597             <span class="n">binSalome</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span>
598                                      <span class="n">launcher_name</span><span class="p">)</span>
599             
600             <span class="n">binPython</span> <span class="o">=</span> <span class="n">binSalome</span> <span class="o">+</span> <span class="s">&#39; shell&#39;</span>
601             <span class="n">killSalome</span> <span class="o">=</span> <span class="n">binSalome</span> <span class="o">+</span> <span class="s">&#39; killall&#39;</span>
602             <span class="k">return</span> <span class="n">binSalome</span><span class="p">,</span> <span class="n">binPython</span><span class="p">,</span> <span class="n">killSalome</span>
603                 
604         <span class="k">return</span> <span class="n">binSalome</span><span class="p">,</span> <span class="n">binPython</span><span class="p">,</span> <span class="n">killSalome</span>
605         
606
607     <span class="c">##</span>
608     <span class="c"># Runs tests of a session (using a single instance of Salome).</span></div>
609 <div class="viewcode-block" id="Test.run_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">listTest</span><span class="p">,</span> <span class="n">ignoreList</span><span class="p">):</span>
610         <span class="n">out_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span>
611                                 <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
612                                 <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">)</span>
613         <span class="n">sessionname</span> <span class="o">=</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s">/</span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">)</span>
614         <span class="n">time_out</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_test_timeout</span><span class="p">(</span><span class="n">sessionname</span><span class="p">,</span>
615                                          <span class="n">DEFAULT_TIMEOUT</span><span class="p">)</span>
616
617         <span class="n">time_out_salome</span> <span class="o">=</span> <span class="n">DEFAULT_TIMEOUT</span>
618
619         <span class="c"># generate wrapper script</span>
620         <span class="n">script_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">out_path</span><span class="p">,</span> <span class="s">&#39;wrapperScript.py&#39;</span><span class="p">)</span>
621         <span class="bp">self</span><span class="o">.</span><span class="n">generate_script</span><span class="p">(</span><span class="n">listTest</span><span class="p">,</span> <span class="n">script_path</span><span class="p">,</span> <span class="n">ignoreList</span><span class="p">)</span>
622
623         <span class="n">tmpDir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_tmp_dir</span><span class="p">()</span>
624
625         <span class="n">binSalome</span><span class="p">,</span> <span class="n">binPython</span><span class="p">,</span> <span class="n">killSalome</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">generate_launching_commands</span><span class="p">()</span>
626         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s">&quot;run_with_grids&quot;</span><span class="p">)</span> \
627            <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s">&quot;run_with_grids&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">sessionname</span><span class="p">):</span>
628             <span class="n">binSalome</span> <span class="o">=</span> <span class="p">(</span><span class="n">binSalome</span> <span class="o">+</span>
629                          <span class="s">&quot; -m </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s">&quot;run_with_grids&quot;</span><span class="p">][</span><span class="n">sessionname</span><span class="p">])</span>
630
631         <span class="n">logWay</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span> <span class="s">&quot;WORK&quot;</span><span class="p">,</span> <span class="s">&quot;log_cxx&quot;</span><span class="p">)</span>
632
633         <span class="n">status</span> <span class="o">=</span> <span class="bp">False</span>
634         <span class="n">elapsed</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
635         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">&quot;NOGUI_&quot;</span><span class="p">):</span>
636             <span class="c"># runSalome -t (bash)</span>
637             <span class="n">status</span><span class="p">,</span> <span class="n">elapsed</span> <span class="o">=</span> <span class="n">fork</span><span class="o">.</span><span class="n">batch</span><span class="p">(</span><span class="n">binSalome</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span>
638                                         <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span>
639                                                      <span class="s">&quot;WORK&quot;</span><span class="p">),</span>
640                                         <span class="p">[</span> <span class="s">&quot;-t&quot;</span><span class="p">,</span>
641                                          <span class="s">&quot;--shutdown-server=1&quot;</span><span class="p">,</span>
642                                          <span class="n">script_path</span> <span class="p">],</span>
643                                         <span class="n">delai</span><span class="o">=</span><span class="n">time_out</span><span class="p">,</span>
644                                         <span class="n">log</span><span class="o">=</span><span class="n">logWay</span><span class="p">)</span>
645
646         <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">&quot;PY_&quot;</span><span class="p">):</span>
647             <span class="c"># python script.py</span>
648             <span class="n">status</span><span class="p">,</span> <span class="n">elapsed</span> <span class="o">=</span> <span class="n">fork</span><span class="o">.</span><span class="n">batch</span><span class="p">(</span><span class="n">binPython</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span>
649                                           <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span>
650                                                        <span class="s">&quot;WORK&quot;</span><span class="p">),</span>
651                                           <span class="p">[</span><span class="n">script_path</span><span class="p">],</span>
652                                           <span class="n">delai</span><span class="o">=</span><span class="n">time_out</span><span class="p">,</span> <span class="n">log</span><span class="o">=</span><span class="n">logWay</span><span class="p">)</span>
653
654         <span class="k">else</span><span class="p">:</span>
655             <span class="n">opt</span> <span class="o">=</span> <span class="s">&quot;-z 0&quot;</span>
656             <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">show_desktop</span><span class="p">:</span> <span class="n">opt</span> <span class="o">=</span> <span class="s">&quot;--show-desktop=0&quot;</span>
657             <span class="n">status</span><span class="p">,</span> <span class="n">elapsed</span> <span class="o">=</span> <span class="n">fork</span><span class="o">.</span><span class="n">batch_salome</span><span class="p">(</span><span class="n">binSalome</span><span class="p">,</span>
658                                                  <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span>
659                                                  <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
660                                                         <span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span>
661                                                         <span class="s">&quot;WORK&quot;</span><span class="p">),</span>
662                                                  <span class="p">[</span> <span class="n">opt</span><span class="p">,</span>
663                                                   <span class="s">&quot;--shutdown-server=1&quot;</span><span class="p">,</span>
664                                                   <span class="n">script_path</span> <span class="p">],</span>
665                                                  <span class="n">getTmpDir</span><span class="o">=</span><span class="n">tmpDir</span><span class="p">,</span>
666                                                  <span class="n">fin</span><span class="o">=</span><span class="n">killSalome</span><span class="p">,</span>
667                                                  <span class="n">delai</span><span class="o">=</span><span class="n">time_out</span><span class="p">,</span>
668                                                  <span class="n">log</span><span class="o">=</span><span class="n">logWay</span><span class="p">,</span>
669                                                  <span class="n">delaiapp</span><span class="o">=</span><span class="n">time_out_salome</span><span class="p">)</span>
670
671         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;status = </span><span class="si">%s</span><span class="s">, elapsed = </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">status</span><span class="p">,</span> <span class="n">elapsed</span><span class="p">),</span>
672                           <span class="mi">5</span><span class="p">)</span>
673
674         <span class="c"># create the test result to add in the config object</span>
675         <span class="n">test_info</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">pyconf</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
676         <span class="n">test_info</span><span class="o">.</span><span class="n">testbase</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentTestBase</span>
677         <span class="n">test_info</span><span class="o">.</span><span class="n">grid</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span>
678         <span class="n">test_info</span><span class="o">.</span><span class="n">session</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span>
679         <span class="n">test_info</span><span class="o">.</span><span class="n">script</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">pyconf</span><span class="o">.</span><span class="n">Sequence</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
680
681         <span class="n">script_results</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_results</span><span class="p">(</span><span class="n">listTest</span><span class="p">,</span> <span class="n">elapsed</span> <span class="o">==</span> <span class="n">time_out</span><span class="p">)</span>
682         <span class="k">for</span> <span class="n">sr</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">script_results</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span>
683             <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="o">+=</span> <span class="mi">1</span>
684
685             <span class="c"># create script result</span>
686             <span class="n">script_info</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">pyconf</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
687             <span class="n">script_info</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">sr</span>
688             <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">=</span> <span class="n">script_results</span><span class="p">[</span><span class="n">sr</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
689             <span class="n">script_info</span><span class="o">.</span><span class="n">time</span> <span class="o">=</span> <span class="n">script_results</span><span class="p">[</span><span class="n">sr</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>
690             <span class="k">if</span> <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">TIMEOUT_STATUS</span><span class="p">:</span>
691                 <span class="n">script_info</span><span class="o">.</span><span class="n">time</span> <span class="o">=</span> <span class="n">time_out</span>
692             <span class="k">if</span> <span class="n">script_info</span><span class="o">.</span><span class="n">time</span> <span class="o">&lt;</span> <span class="mf">1e-3</span><span class="p">:</span> <span class="n">script_info</span><span class="o">.</span><span class="n">time</span> <span class="o">=</span> <span class="mi">0</span>
693
694             <span class="n">callback</span> <span class="o">=</span> <span class="n">script_results</span><span class="p">[</span><span class="n">sr</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span>
695             <span class="k">if</span> <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">!=</span> <span class="n">src</span><span class="o">.</span><span class="n">OK_STATUS</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">callback</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
696                 <span class="n">script_info</span><span class="o">.</span><span class="n">callback</span> <span class="o">=</span> <span class="n">callback</span>
697
698             <span class="n">kfres</span> <span class="o">=</span> <span class="n">script_results</span><span class="p">[</span><span class="n">sr</span><span class="p">][</span><span class="mi">3</span><span class="p">]</span>
699             <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">kfres</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
700                 <span class="n">script_info</span><span class="o">.</span><span class="n">known_error</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">pyconf</span><span class="o">.</span><span class="n">Mapping</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span>
701                 <span class="n">script_info</span><span class="o">.</span><span class="n">known_error</span><span class="o">.</span><span class="n">date</span> <span class="o">=</span> <span class="n">kfres</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
702                 <span class="n">script_info</span><span class="o">.</span><span class="n">known_error</span><span class="o">.</span><span class="n">expected</span> <span class="o">=</span> <span class="n">kfres</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
703                 <span class="n">script_info</span><span class="o">.</span><span class="n">known_error</span><span class="o">.</span><span class="n">comment</span> <span class="o">=</span> <span class="n">kfres</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
704                 <span class="n">script_info</span><span class="o">.</span><span class="n">known_error</span><span class="o">.</span><span class="n">fixed</span> <span class="o">=</span> <span class="n">kfres</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
705             
706             <span class="n">script_info</span><span class="o">.</span><span class="n">content</span> <span class="o">=</span> <span class="n">script_results</span><span class="p">[</span><span class="n">sr</span><span class="p">][</span><span class="mi">4</span><span class="p">]</span>
707             <span class="n">script_info</span><span class="o">.</span><span class="n">out</span> <span class="o">=</span> <span class="n">script_results</span><span class="p">[</span><span class="n">sr</span><span class="p">][</span><span class="mi">5</span><span class="p">]</span>
708             
709             <span class="c"># add it to the list of results</span>
710             <span class="n">test_info</span><span class="o">.</span><span class="n">script</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">script_info</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
711
712             <span class="c"># display the results</span>
713             <span class="k">if</span> <span class="n">script_info</span><span class="o">.</span><span class="n">time</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
714                 <span class="n">exectime</span> <span class="o">=</span> <span class="s">&quot;(</span><span class="si">%7.3f</span><span class="s"> s)&quot;</span> <span class="o">%</span> <span class="n">script_info</span><span class="o">.</span><span class="n">time</span>
715             <span class="k">else</span><span class="p">:</span>
716                 <span class="n">exectime</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>
717
718             <span class="n">sp</span> <span class="o">=</span> <span class="s">&quot;.&quot;</span> <span class="o">*</span> <span class="p">(</span><span class="mi">35</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">script_info</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
719             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">write_test_margin</span><span class="p">(</span><span class="mi">3</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
720             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;script </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span>
721                                 <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span><span class="n">script_info</span><span class="o">.</span><span class="n">name</span><span class="p">),</span>
722                                 <span class="n">sp</span><span class="p">,</span>
723                                 <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printc</span><span class="p">(</span><span class="n">script_info</span><span class="o">.</span><span class="n">res</span><span class="p">),</span>
724                                 <span class="n">exectime</span><span class="p">),</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
725             <span class="k">if</span> <span class="n">script_info</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">callback</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
726                 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;Exception in </span><span class="si">%s</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> \
727                     <span class="p">(</span><span class="n">script_info</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
728                      <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcWarning</span><span class="p">(</span><span class="n">callback</span><span class="p">)),</span> <span class="mi">2</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
729
730             <span class="k">if</span> <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">OK_STATUS</span><span class="p">:</span>
731                 <span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span> <span class="o">+=</span> <span class="mi">1</span>
732             <span class="k">elif</span> <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">KNOWNFAILURE_STATUS</span><span class="p">:</span>
733                 <span class="bp">self</span><span class="o">.</span><span class="n">nb_acknoledge</span> <span class="o">+=</span> <span class="mi">1</span>
734             <span class="k">elif</span> <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">TIMEOUT_STATUS</span><span class="p">:</span>
735                 <span class="bp">self</span><span class="o">.</span><span class="n">nb_timeout</span> <span class="o">+=</span> <span class="mi">1</span>
736             <span class="k">elif</span> <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="n">src</span><span class="o">.</span><span class="n">NA_STATUS</span><span class="p">:</span>
737                 <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="o">-=</span> <span class="mi">1</span>
738             <span class="k">elif</span> <span class="n">script_info</span><span class="o">.</span><span class="n">res</span> <span class="o">==</span> <span class="s">&quot;?&quot;</span><span class="p">:</span>
739                 <span class="bp">self</span><span class="o">.</span><span class="n">nb_not_run</span> <span class="o">+=</span> <span class="mi">1</span>
740
741         <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">TESTS</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">test_info</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
742
743     <span class="c">##</span>
744     <span class="c"># Runs all tests of a session.</span></div>
745 <div class="viewcode-block" id="Test.run_session_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_session_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_session_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
746        
747         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">write_test_margin</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
748         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;Session = </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span>
749                                                     <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">),</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
750
751         <span class="c"># prepare list of tests to run</span>
752         <span class="n">tests</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span>
753                                         <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span>
754                                         <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">))</span>
755         <span class="n">tests</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">l</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s">&quot;.py&quot;</span><span class="p">),</span> <span class="n">tests</span><span class="p">)</span>
756         <span class="n">tests</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">tests</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="nb">str</span><span class="o">.</span><span class="n">lower</span><span class="p">)</span>
757
758         <span class="c"># build list of known failures</span>
759         <span class="n">cat</span> <span class="o">=</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s">/</span><span class="si">%s</span><span class="s">/&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span><span class="p">)</span>
760         <span class="n">ignoreDict</span> <span class="o">=</span> <span class="p">{}</span>
761         <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">ignore_tests</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
762             <span class="k">if</span> <span class="n">k</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">cat</span><span class="p">):</span>
763                 <span class="n">ignoreDict</span><span class="p">[</span><span class="n">k</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">cat</span><span class="p">):]]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ignore_tests</span><span class="p">[</span><span class="n">k</span><span class="p">]</span>
764
765         <span class="bp">self</span><span class="o">.</span><span class="n">run_tests</span><span class="p">(</span><span class="n">tests</span><span class="p">,</span> <span class="n">ignoreDict</span><span class="p">)</span>
766
767     <span class="c">##</span>
768     <span class="c"># Runs all tests of a grid.</span></div>
769 <div class="viewcode-block" id="Test.run_grid_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_grid_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_grid_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
770         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">write_test_margin</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
771         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;grid = </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span>
772                                                 <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">),</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
773
774         <span class="n">grid_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span><span class="p">)</span>
775
776         <span class="n">sessions</span> <span class="o">=</span> <span class="p">[]</span>
777         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sessions</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
778             <span class="n">sessions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sessions</span> <span class="c"># user choice</span>
779         <span class="k">else</span><span class="p">:</span>
780             <span class="c"># use all scripts in grid</span>
781             <span class="n">sessions</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">l</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">C_IGNORE_GRIDS</span><span class="p">,</span>
782                            <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">grid_path</span><span class="p">))</span>
783             <span class="n">sessions</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">grid_path</span><span class="p">,</span>
784                                                                 <span class="n">l</span><span class="p">)),</span> <span class="n">sessions</span><span class="p">)</span>
785
786         <span class="n">sessions</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">sessions</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="nb">str</span><span class="o">.</span><span class="n">lower</span><span class="p">)</span>
787         <span class="k">for</span> <span class="n">session_</span> <span class="ow">in</span> <span class="n">sessions</span><span class="p">:</span>
788             <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">grid_path</span><span class="p">,</span> <span class="n">session_</span><span class="p">)):</span>
789                 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">write_test_margin</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
790                 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcWarning</span><span class="p">(</span><span class="s">&quot;Session </span><span class="si">%s</span><span class="s"> not&quot;</span>
791                                         <span class="s">&quot; found&quot;</span> <span class="o">%</span> <span class="n">session_</span><span class="p">)</span> <span class="o">+</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
792             <span class="k">else</span><span class="p">:</span>
793                 <span class="bp">self</span><span class="o">.</span><span class="n">currentsession</span> <span class="o">=</span> <span class="n">session_</span>
794                 <span class="bp">self</span><span class="o">.</span><span class="n">run_session_tests</span><span class="p">()</span>
795
796     <span class="c">##</span>
797     <span class="c"># Runs test testbase.</span></div>
798 <div class="viewcode-block" id="Test.run_testbase_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_testbase_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_testbase_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
799         <span class="n">res_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span> <span class="s">&quot;RESSOURCES&quot;</span><span class="p">)</span>
800         <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s">&#39;PYTHONPATH&#39;</span><span class="p">]</span> <span class="o">=</span>  <span class="p">(</span><span class="n">res_dir</span> <span class="o">+</span> 
801                                      <span class="n">os</span><span class="o">.</span><span class="n">pathsep</span> <span class="o">+</span> 
802                                      <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s">&#39;PYTHONPATH&#39;</span><span class="p">])</span>
803         <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s">&#39;TT_BASE_RESSOURCES&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">res_dir</span>
804         <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">print_value</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span>
805                                     <span class="s">&quot;TT_BASE_RESSOURCES&quot;</span><span class="p">,</span>
806                                     <span class="n">res_dir</span><span class="p">,</span>
807                                     <span class="mi">4</span><span class="p">)</span>
808         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
809
810         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">write_test_margin</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
811         <span class="n">testbase_label</span> <span class="o">=</span> <span class="s">&quot;Test base = </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span>
812                                                         <span class="bp">self</span><span class="o">.</span><span class="n">currentTestBase</span><span class="p">)</span>
813         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">testbase_label</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
814         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;-&quot;</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">cleancolor</span><span class="p">(</span><span class="n">testbase_label</span><span class="p">)),</span>
815                           <span class="mi">3</span><span class="p">)</span>
816         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
817
818         <span class="c"># load settings</span>
819         <span class="n">settings_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">res_dir</span><span class="p">,</span> <span class="s">&quot;test_settings.py&quot;</span><span class="p">)</span>
820         <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">settings_file</span><span class="p">):</span>
821             <span class="n">gdic</span><span class="p">,</span> <span class="n">ldic</span> <span class="o">=</span> <span class="p">{},</span> <span class="p">{}</span>
822             <span class="nb">execfile</span><span class="p">(</span><span class="n">settings_file</span><span class="p">,</span> <span class="n">gdic</span><span class="p">,</span> <span class="n">ldic</span><span class="p">)</span>
823             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;Load test settings</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
824             <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="n">ldic</span><span class="p">[</span><span class="s">&#39;settings_dic&#39;</span><span class="p">]</span>
825             <span class="bp">self</span><span class="o">.</span><span class="n">ignore_tests</span> <span class="o">=</span> <span class="n">ldic</span><span class="p">[</span><span class="s">&#39;known_failures_list&#39;</span><span class="p">]</span>
826             <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ignore_tests</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
827                 <span class="bp">self</span><span class="o">.</span><span class="n">ignore_tests</span> <span class="o">=</span> <span class="p">{}</span>
828                 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcWarning</span><span class="p">(</span><span class="s">&quot;known_failur&quot;</span>
829                   <span class="s">&quot;es_list must be a dictionary (not a list)&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
830         <span class="k">else</span><span class="p">:</span>
831             <span class="bp">self</span><span class="o">.</span><span class="n">ignore_tests</span> <span class="o">=</span> <span class="p">{}</span>
832             <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
833
834         <span class="c"># read known failures pyconf</span>
835         <span class="k">if</span> <span class="s">&quot;testerror&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">LOCAL</span><span class="p">:</span>
836             <span class="c">#import testerror</span>
837             <span class="c">#self.known_errors = testerror.read_test_failures(</span>
838             <span class="c">#                            self.config.TOOLS.testerror.file_path,</span>
839             <span class="c">#                            do_error=False)</span>
840             <span class="k">pass</span>
841         <span class="k">else</span><span class="p">:</span>
842             <span class="bp">self</span><span class="o">.</span><span class="n">known_errors</span> <span class="o">=</span> <span class="bp">None</span>
843
844         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">grids</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
845             <span class="n">grids</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">grids</span> <span class="c"># given by user</span>
846         <span class="k">else</span><span class="p">:</span>
847             <span class="c"># select all the grids (i.e. directories) in the directory</span>
848             <span class="n">grids</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">l</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">C_IGNORE_GRIDS</span><span class="p">,</span>
849                              <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">))</span>
850             <span class="n">grids</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">l</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span>
851                                         <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span> <span class="n">l</span><span class="p">)),</span>
852                              <span class="n">grids</span><span class="p">)</span>
853
854         <span class="n">grids</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">grids</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="nb">str</span><span class="o">.</span><span class="n">lower</span><span class="p">)</span>
855         <span class="k">for</span> <span class="n">grid</span> <span class="ow">in</span> <span class="n">grids</span><span class="p">:</span>
856             <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span><span class="p">,</span> <span class="n">grid</span><span class="p">)):</span>
857                 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">write_test_margin</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
858                 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcWarning</span><span class="p">(</span>
859                             <span class="s">&quot;grid </span><span class="si">%s</span><span class="s"> does not exist</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">grid</span><span class="p">),</span> <span class="mi">3</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
860             <span class="k">else</span><span class="p">:</span>
861                 <span class="bp">self</span><span class="o">.</span><span class="n">currentgrid</span> <span class="o">=</span> <span class="n">grid</span>
862                 <span class="bp">self</span><span class="o">.</span><span class="n">run_grid_tests</span><span class="p">()</span>
863 </div>
864 <div class="viewcode-block" id="Test.run_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_script">[docs]</a>    <span class="k">def</span> <span class="nf">run_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">script_name</span><span class="p">):</span>
865         <span class="k">if</span> <span class="p">(</span><span class="s">&#39;APPLICATION&#39;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="ow">and</span> 
866                 <span class="n">script_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="p">):</span>
867             <span class="n">script</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="p">[</span><span class="n">script_name</span><span class="p">]</span>
868             <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">script</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
869                 <span class="k">return</span>
870
871             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
872             <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">script</span><span class="p">):</span>
873                 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcWarning</span><span class="p">(</span><span class="s">&quot;WARNING: scrip&quot;</span>
874                                         <span class="s">&quot;t not found: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">script</span><span class="p">)</span> <span class="o">+</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
875             <span class="k">else</span><span class="p">:</span>
876                 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcHeader</span><span class="p">(</span><span class="s">&quot;----------- sta&quot;</span>
877                                             <span class="s">&quot;rt </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">script_name</span><span class="p">)</span> <span class="o">+</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
878                 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;Run script: </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">script</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
879                 <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">script</span><span class="p">,</span> <span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
880                 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcHeader</span><span class="p">(</span><span class="s">&quot;----------- end&quot;</span>
881                                                 <span class="s">&quot; </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">script_name</span><span class="p">)</span> <span class="o">+</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
882 </div>
883 <div class="viewcode-block" id="Test.run_all_tests"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.run_all_tests">[docs]</a>    <span class="k">def</span> <span class="nf">run_all_tests</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
884         <span class="n">initTime</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span>
885
886         <span class="bp">self</span><span class="o">.</span><span class="n">run_script</span><span class="p">(</span><span class="s">&#39;test_setup&#39;</span><span class="p">)</span>
887         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
888
889         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcHeader</span><span class="p">(</span>
890                                             <span class="n">_</span><span class="p">(</span><span class="s">&quot;=== STARTING TESTS&quot;</span><span class="p">))</span> <span class="o">+</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
891         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
892         <span class="bp">self</span><span class="o">.</span><span class="n">currentDir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tmp_working_dir</span><span class="p">,</span>
893                                        <span class="s">&#39;BASES&#39;</span><span class="p">,</span>
894                                        <span class="bp">self</span><span class="o">.</span><span class="n">currentTestBase</span><span class="p">)</span>
895         <span class="bp">self</span><span class="o">.</span><span class="n">run_testbase_tests</span><span class="p">()</span>
896
897         <span class="c"># calculate total execution time</span>
898         <span class="n">totalTime</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span> <span class="o">-</span> <span class="n">initTime</span>
899         <span class="n">totalTime</span> <span class="o">-=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">timedelta</span><span class="p">(</span><span class="n">microseconds</span><span class="o">=</span><span class="n">totalTime</span><span class="o">.</span><span class="n">microseconds</span><span class="p">)</span>
900         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
901         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcHeader</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;=== END TESTS&quot;</span><span class="p">)),</span> <span class="mi">2</span><span class="p">)</span>
902         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot; </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcInfo</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">totalTime</span><span class="p">)),</span>
903                           <span class="mi">2</span><span class="p">,</span>
904                           <span class="bp">False</span><span class="p">)</span>
905
906         <span class="c">#</span>
907         <span class="c"># Start the tests</span>
908         <span class="c">#</span>
909         <span class="bp">self</span><span class="o">.</span><span class="n">run_script</span><span class="p">(</span><span class="s">&#39;test_cleanup&#39;</span><span class="p">)</span>
910         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
911
912         <span class="c"># evaluate results</span>
913         <span class="n">res_count</span> <span class="o">=</span> <span class="s">&quot;</span><span class="si">%d</span><span class="s"> / </span><span class="si">%d</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span><span class="p">,</span>
914                                  <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_acknoledge</span><span class="p">)</span>
915
916         <span class="n">res_out</span> <span class="o">=</span> <span class="n">_</span><span class="p">(</span><span class="s">&quot;Tests Results: </span><span class="si">%(succeed)d</span><span class="s"> / </span><span class="si">%(total)d</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">)</span> <span class="o">%</span> \
917             <span class="p">{</span> <span class="s">&#39;succeed&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span><span class="p">,</span> <span class="s">&#39;total&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="p">}</span>
918         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span><span class="p">:</span>
919             <span class="n">res_out</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcSuccess</span><span class="p">(</span><span class="n">res_out</span><span class="p">)</span>
920         <span class="k">else</span><span class="p">:</span>
921             <span class="n">res_out</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcError</span><span class="p">(</span><span class="n">res_out</span><span class="p">)</span>
922         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">res_out</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
923
924         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_timeout</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
925             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%d</span><span class="s"> tests TIMEOUT</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_timeout</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
926             <span class="n">res_count</span> <span class="o">+=</span> <span class="s">&quot; TO: </span><span class="si">%d</span><span class="s">&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_timeout</span>
927         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_not_run</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
928             <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%d</span><span class="s"> tests not executed</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">)</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_not_run</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
929             <span class="n">res_count</span> <span class="o">+=</span> <span class="s">&quot; NR: </span><span class="si">%d</span><span class="s">&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_not_run</span>
930
931         <span class="n">status</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">OK_STATUS</span>
932         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_acknoledge</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
933             <span class="n">status</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">KO_STATUS</span>
934         <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_acknoledge</span><span class="p">:</span>
935             <span class="n">status</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">KNOWNFAILURE_STATUS</span>
936         
937         <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;Status: </span><span class="si">%s</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">status</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
938
939         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_run</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_succeed</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">nb_acknoledge</span>
940
941     <span class="c">##</span>
942     <span class="c"># Write margin to show test results.</span></div>
943 <div class="viewcode-block" id="Test.write_test_margin"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.test_module.Test.write_test_margin">[docs]</a>    <span class="k">def</span> <span class="nf">write_test_margin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tab</span><span class="p">):</span>
944         <span class="k">if</span> <span class="n">tab</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
945             <span class="k">return</span> <span class="s">&quot;&quot;</span>
946         <span class="k">return</span> <span class="s">&quot;|   &quot;</span> <span class="o">*</span> <span class="p">(</span><span class="n">tab</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="s">&quot;+ &quot;</span>
947 </pre></div></div></div>
948
949           </div>
950         </div>
951       </div>
952       <div class="sphinxsidebar">
953         <div class="sphinxsidebarwrapper">
954             <p class="logo"><a href="../../index.html">
955               <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
956             </a></p><div class="relations">
957 <h3>Related Topics</h3>
958 <ul>
959   <li><a href="../../index.html">Documentation overview</a><ul>
960   <li><a href="../index.html">Module code</a><ul>
961   </ul></li>
962   </ul></li>
963 </ul>
964 </div>
965 <div id="searchbox" style="display: none">
966   <h3>Quick search</h3>
967     <form class="search" action="../../search.html" method="get">
968       <input type="text" name="q" />
969       <input type="submit" value="Go" />
970       <input type="hidden" name="check_keywords" value="yes" />
971       <input type="hidden" name="area" value="default" />
972     </form>
973     <p class="searchtip" style="font-size: 90%">
974     Enter search terms or a module, class or function name.
975     </p>
976 </div>
977 <script type="text/javascript">$('#searchbox').show(0);</script>
978         </div>
979       </div>
980       <div class="clearer"></div>
981     </div>
982     <div class="footer">
983       &copy;2018, CEA.
984       
985       |
986       Powered by <a href="http://sphinx-doc.org/">Sphinx 1.1.3</a>
987       &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster </a>
988       
989     </div>
990
991     
992
993     
994   </body>
995 </html>