Open-Source Projects: Issueshttps://forge.ispras.ru/https://forge.ispras.ru/favicon.ico?16490126692017-09-23T13:32:46ZOpen-Source Projects
Redmine MicroTESK - Bug #8455 (Rejected): Test Documenthttps://forge.ispras.ru/issues/84552017-09-23T13:32:46ZAndrei Tatarnikovandrewt@ispras.ru
<p>test</p> MicroTESK - Bug #8061 (Rejected): Position of all blocks, calls, data etc. in test templates must...https://forge.ispras.ru/issues/80612017-04-13T13:05:14ZAndrei Tatarnikovandrewt@ispras.ru
<p>subject</p> MicroTESK - Bug #7690 (Closed): Exception handler is not handled if it is not the first element i...https://forge.ispras.ru/issues/76902016-11-08T12:29:38ZAndrei Tatarnikovandrewt@ispras.ru
<p>Subject. Investigation is required. See the code below. It is claimed that only <code>IntegerOverflow</code> is handled while others are not found.</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="n">exception_handler</span> <span class="p">{</span>
<span class="n">section</span><span class="p">(</span><span class="ss">:org</span> <span class="o">=></span> <span class="mh">0x380</span><span class="p">,</span> <span class="ss">:exception</span> <span class="o">=></span> <span class="p">[</span><span class="s1">'IntegerOverflow'</span><span class="p">,</span> <span class="s1">'SystemCall'</span><span class="p">,</span> <span class="s1">'Breakpoint'</span><span class="p">])</span> <span class="p">{</span>
<span class="n">trace</span> <span class="s1">'Exception handler (EPC = 0x%x)'</span><span class="p">,</span> <span class="n">location</span><span class="p">(</span><span class="s1">'COP0_R'</span><span class="p">,</span> <span class="mi">14</span><span class="p">)</span>
<span class="n">mfc0</span> <span class="n">ra</span><span class="p">,</span> <span class="n">rcop0</span><span class="p">(</span><span class="mi">14</span><span class="p">)</span>
<span class="n">addi</span> <span class="n">ra</span><span class="p">,</span> <span class="n">ra</span><span class="p">,</span> <span class="mi">4</span>
<span class="n">jr</span> <span class="n">ra</span>
<span class="n">nop</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre> MicroTESK - Bug #7628 (Closed): Methods 'dist' and 'range' are not supported in data sectionshttps://forge.ispras.ru/issues/76282016-10-25T10:57:22ZAndrei Tatarnikovandrewt@ispras.ru
<p>Subject. The code below gives error: <code>(MTRubyError) Method 'range' is not available in data sections</code>.</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="n">data</span> <span class="p">{</span>
<span class="n">int32_dist</span> <span class="o">=</span> <span class="n">dist</span><span class="p">(</span><span class="n">range</span><span class="p">(</span><span class="ss">:value</span> <span class="o">=></span> <span class="mi">0</span><span class="p">,</span> <span class="ss">:bias</span> <span class="o">=></span> <span class="mi">25</span><span class="p">),</span>
<span class="n">range</span><span class="p">(</span><span class="ss">:value</span> <span class="o">=></span> <span class="mi">1</span><span class="o">..</span><span class="mi">2</span><span class="p">,</span> <span class="ss">:bias</span> <span class="o">=></span> <span class="mi">25</span><span class="p">),</span>
<span class="n">range</span><span class="p">(</span><span class="ss">:value</span> <span class="o">=></span> <span class="mh">0xffffFFFE</span><span class="o">..</span><span class="mh">0xffffFFFF</span><span class="p">,</span> <span class="ss">:bias</span> <span class="o">=></span> <span class="mi">50</span><span class="p">))</span>
<span class="n">word</span> <span class="n">int32_dist</span><span class="p">.</span><span class="nf">next_value</span><span class="p">,</span>
<span class="n">int32_dist</span><span class="p">.</span><span class="nf">next_value</span><span class="p">,</span>
<span class="n">int32_dist</span><span class="p">.</span><span class="nf">next_value</span>
<span class="p">}</span>
</code></pre>
<p>It must be supported.</p> MicroTESK - Bug #7603 (New): List of plug-ins must be stored in etc/settings.xmlhttps://forge.ispras.ru/issues/76032016-10-11T15:49:53ZAndrei Tatarnikovandrewt@ispras.ru
<p>List of MicroTESK plugins is stored in config.xml included in JAR's resources. As a result, it cannot be modified. The format of config.xml looks like this:</p>
<pre>
<config>
<plugin class="ru.ispras.microtesk.mmu.MmuPlugin"/>
</config>
</pre>
<p>This information must be stored in etc/settings.xml.</p> MicroTESK - Bug #7463 (Closed): Correct processing of block structures and code in the root of pr...https://forge.ispras.ru/issues/74632016-08-12T10:29:30ZAndrei Tatarnikovandrewt@ispras.ru
<p>Currently, block sections and code placed outside of blocks (so-called external or global) are not handled correctly. The incorrect behavior includes unexpected exceptions, undesired split of code into parts processed separately, and wrong order of processing.</p>
<p>Here are basic requirements for the correct behavior:</p>
<ol>
<li>A block-like construct <em>must not</em> split global code into parts being processed separately, if the block is not run.</li>
<li>If a block saved into a variable is run, global code before the point of call gets processed.</li>
<li>Since it is not allowed to run blocks in the <code>pre</code> and <code>post</code> methods, program-level prologue and epilogue are always processed as a whole.</li>
</ol>
<p>Here is in example with comments:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="k">class</span> <span class="nc">BlockGlobalCodeTemplate</span> <span class="o"><</span> <span class="no">MiniMipsBaseTemplate</span>
<span class="k">def</span> <span class="nf">pre</span>
<span class="k">super</span>
<span class="c1"># A: part of program prologue</span>
<span class="n">add</span> <span class="n">s0</span><span class="p">,</span> <span class="n">s0</span><span class="p">,</span> <span class="n">s0</span>
<span class="c1"># B: sequence block saved in an object-level variable</span>
<span class="vi">@z</span> <span class="o">=</span> <span class="n">sequence</span> <span class="p">{</span>
<span class="nb">sub</span> <span class="n">t1</span><span class="p">,</span> <span class="n">t2</span><span class="p">,</span> <span class="n">t3</span>
<span class="nb">sub</span> <span class="n">t3</span><span class="p">,</span> <span class="n">t4</span><span class="p">,</span> <span class="n">t5</span>
<span class="p">}</span>
<span class="c1"># C: part of program prologue, must be processed with A as a whole</span>
<span class="nb">sub</span> <span class="n">s1</span><span class="p">,</span> <span class="n">s2</span><span class="p">,</span> <span class="n">s3</span>
<span class="c1"># X: Prologue to be added to all test cases produced by block constructs</span>
<span class="n">prologue</span> <span class="p">{</span>
<span class="n">pseudo</span> <span class="s1">'// Global prologue starts'</span>
<span class="n">pseudo</span> <span class="s1">'// Global prologue ends'</span>
<span class="p">}</span>
<span class="c1"># Y: Epilogue to be added to all test cases produced by block constructs</span>
<span class="n">epilogue</span> <span class="p">{</span>
<span class="n">pseudo</span> <span class="s1">'// Global epilogue starts'</span>
<span class="n">pseudo</span> <span class="s1">'// Global epilogue ends'</span>
<span class="p">}</span>
<span class="k">end</span>
<span class="k">def</span> <span class="nf">run</span>
<span class="c1"># D: external code for linking test cases</span>
<span class="n">nop</span>
<span class="n">nop</span>
<span class="c1"># E: sequence block saved in a local variable</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">sequence</span> <span class="p">{</span>
<span class="n">add</span> <span class="n">t1</span><span class="p">,</span> <span class="n">t2</span><span class="p">,</span> <span class="n">t3</span>
<span class="n">add</span> <span class="n">t3</span><span class="p">,</span> <span class="n">t4</span><span class="p">,</span> <span class="n">t5</span>
<span class="p">}</span>
<span class="c1"># F: external code for linking test cases, must be processed as a whole with D</span>
<span class="n">nop</span>
<span class="n">nop</span>
<span class="c1"># Processing: first - D and F as a whole, then - E.</span>
<span class="n">x</span><span class="p">.</span><span class="nf">run</span>
<span class="c1"># G: external code for linking test cases</span>
<span class="n">nop</span>
<span class="n">nop</span>
<span class="c1"># H: sequence block saved in a local variable (is not processed) </span>
<span class="n">y</span> <span class="o">=</span> <span class="n">sequence</span> <span class="p">{</span>
<span class="n">add</span> <span class="n">t1</span><span class="p">,</span> <span class="n">t2</span><span class="p">,</span> <span class="n">t3</span>
<span class="n">add</span> <span class="n">t3</span><span class="p">,</span> <span class="n">t4</span><span class="p">,</span> <span class="n">t5</span>
<span class="p">}</span>
<span class="c1"># I: external code for linking test cases, must be processed as a whole with G</span>
<span class="n">nop</span>
<span class="n">nop</span>
<span class="c1"># Processing: first - G and I as a whole, then - B.</span>
<span class="vi">@z</span><span class="p">.</span><span class="nf">run</span>
<span class="k">end</span>
<span class="k">end</span>
</code></pre>
<p>The expected order of processing is the following:</p>
<ol>
<li>A and B as a whole</li>
<li>D and F as a whole</li>
<li>E (wrapped with X and Y)</li>
<li>G and I as a whole</li>
<li>B (wrapped with X and Y)</li>
</ol>
<p>H is not processed (reported as a warning).</p> MicroTESK - Bug #7461 (Closed): Block-level prologue and epilogue must stay prologue and epilogue...https://forge.ispras.ru/issues/74612016-08-11T14:14:15ZAndrei Tatarnikovandrewt@ispras.ru
<p>Block-level prologue and epilogue are destroyed when blocks are merged by a wrapping block.</p>
<p>First of all, they must remain atomic even if there is a muti-level nesting that does complex blending. Second, they must be always attached to the top and to the bottom of the sequence respectively. This will unsure that they will do proper initialization and finalization for sequences when they are mixed. This is needed to be able to mix self-contained sequences that required initialization and finalization.</p>
<p>E.g. the correct result of the code below must be as follows (now it gives a random mix):</p>
<pre>
// Global prologue starts
// Global prologue ends
// Root block prologue starts
// Root block prologue ends
// Sequence 1 prologue starts
// Sequence 1 prologue ends
// Sequence 2 prologue starts
// Sequence 2 prologue ends
and $4, $2, $15
sub $2, $15, $4
or $14, $14, $4
add $4, $22, $14
// Sequence 1 epilogue starts
// Sequence 1 epilogue ends
// Sequence 2 epilogue starts
// Sequence 2 epilogue ends
// Root block epilogue starts
// Root block epilogue ends
// Global epilogue starts
// Global epilogue ends
</pre>
<p>Template code:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="k">class</span> <span class="nc">PrologueEpilogueTemplate</span> <span class="o"><</span> <span class="no">MiniMipsBaseTemplate</span>
<span class="k">def</span> <span class="nf">run</span>
<span class="n">prologue</span> <span class="p">{</span>
<span class="n">pseudo</span> <span class="s1">'// Global prologue starts'</span>
<span class="n">pseudo</span> <span class="s1">'// Global prologue ends'</span>
<span class="p">}</span>
<span class="n">epilogue</span> <span class="p">{</span>
<span class="n">pseudo</span> <span class="s1">'// Global epilogue starts'</span>
<span class="n">pseudo</span> <span class="s1">'// Global epilogue ends'</span>
<span class="p">}</span>
<span class="n">block</span><span class="p">(</span><span class="ss">combinator: </span><span class="s1">'diagonal'</span><span class="p">,</span> <span class="ss">compositor: </span><span class="s1">'catenation'</span><span class="p">,</span> <span class="ss">obfuscator: </span><span class="s1">'random'</span><span class="p">)</span> <span class="p">{</span>
<span class="n">prologue</span> <span class="p">{</span>
<span class="n">pseudo</span> <span class="s1">'// Root block prologue starts'</span>
<span class="n">pseudo</span> <span class="s1">'// Root block prologue ends'</span>
<span class="p">}</span>
<span class="n">sequence</span> <span class="p">{</span>
<span class="n">prologue</span> <span class="p">{</span>
<span class="n">pseudo</span> <span class="s1">'// Sequence 1 prologue starts'</span>
<span class="n">pseudo</span> <span class="s1">'// Sequence 1 prologue ends'</span>
<span class="p">}</span>
<span class="n">add</span> <span class="n">reg</span><span class="p">(</span><span class="n">_</span><span class="p">),</span> <span class="n">reg</span><span class="p">(</span><span class="n">_</span><span class="p">),</span> <span class="n">reg</span><span class="p">(</span><span class="n">_</span><span class="p">)</span>
<span class="nb">sub</span> <span class="n">reg</span><span class="p">(</span><span class="n">_</span><span class="p">),</span> <span class="n">reg</span><span class="p">(</span><span class="n">_</span><span class="p">),</span> <span class="n">reg</span><span class="p">(</span><span class="n">_</span><span class="p">)</span>
<span class="n">epilogue</span> <span class="p">{</span>
<span class="n">pseudo</span> <span class="s1">'// Sequence 1 epilogue starts'</span>
<span class="n">pseudo</span> <span class="s1">'// Sequence 1 epilogue ends'</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="n">sequence</span> <span class="p">{</span>
<span class="n">prologue</span> <span class="p">{</span>
<span class="n">pseudo</span> <span class="s1">'// Sequence 2 prologue starts'</span>
<span class="n">pseudo</span> <span class="s1">'// Sequence 2 prologue ends'</span>
<span class="p">}</span>
<span class="no">And</span> <span class="n">reg</span><span class="p">(</span><span class="n">_</span><span class="p">),</span> <span class="n">reg</span><span class="p">(</span><span class="n">_</span><span class="p">),</span> <span class="n">reg</span><span class="p">(</span><span class="n">_</span><span class="p">)</span>
<span class="no">Or</span> <span class="n">reg</span><span class="p">(</span><span class="n">_</span><span class="p">),</span> <span class="n">reg</span><span class="p">(</span><span class="n">_</span><span class="p">),</span> <span class="n">reg</span><span class="p">(</span><span class="n">_</span><span class="p">)</span>
<span class="n">epilogue</span> <span class="p">{</span>
<span class="n">pseudo</span> <span class="s1">'// Sequence 2 epilogue starts'</span>
<span class="n">pseudo</span> <span class="s1">'// Sequence 2 epilogue ends'</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="n">epilogue</span> <span class="p">{</span>
<span class="n">pseudo</span> <span class="s1">'// Root block epilogue starts'</span>
<span class="n">pseudo</span> <span class="s1">'// Root block epilogue ends'</span>
<span class="p">}</span>
<span class="p">}.</span><span class="nf">run</span> <span class="mi">10</span>
<span class="k">end</span>
<span class="k">end</span>
</code></pre> MicroTESK - Bug #7418 (Closed): Reset the state of the model before starting generating a new tes...https://forge.ispras.ru/issues/74182016-07-22T13:16:48ZAndrei Tatarnikovandrewt@ispras.ru
<p>When MicroTESK processes a test template, it may place the generated test cases into multiple files.<br />When generation of a new file starts, MicroTESK must reset the state of the model (registers and memory including all MMU buffers).</p> MicroTESK - Bug #7385 (Closed): The 'prepare' function does not work with randomly selected regis...https://forge.ispras.ru/issues/73852016-07-11T12:26:17ZAndrei Tatarnikovandrewt@ispras.ru
<p>Code like this:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="n">prepare</span> <span class="n">reg</span><span class="p">(</span><span class="n">_</span><span class="p">),</span> <span class="mh">0xDEADBEEF</span>
</pre></code>
<p>leads to the following error:</p>
<pre>
Preparator invocation: REG = 0xdeadbeef
********************************************************************************
ATTENTION! An unexpected error has occurred:
java.lang.IllegalStateException: Value is not set.
The program will be terminated. Please contact us at:
microtesk-support@ispras.ru
We are sorry for the inconvenience.
Exception stack:
java.lang.IllegalStateException: Value is not set.
at ru.ispras.microtesk.test.template.UnknownImmediateValue.getValue(ru/ispras/microtesk/test/template/UnknownImmediateValue.java:111)
at ru.ispras.microtesk.test.template.Argument.getImmediateValue(ru/ispras/microtesk/test/template/Argument.java:119)
at ru.ispras.microtesk.test.template.Preparator.isMatch(ru/ispras/microtesk/test/template/Preparator.java:140)
at ru.ispras.microtesk.test.template.PreparatorStore.getPreparator(ru/ispras/microtesk/test/template/PreparatorStore.java:124)
at ru.ispras.microtesk.test.template.PreparatorStore.getPreparator(ru/ispras/microtesk/test/template/PreparatorStore.java:83)
at ru.ispras.microtesk.test.template.Template.addPreparatorCall(ru/ispras/microtesk/test/template/Template.java:633)
at java.lang.reflect.Method.invoke(java/lang/reflect/Method.java:606)
at RUBY.prepare(/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/dist/lib/ruby/template.rb:662)
at RUBY.run(/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/dist/arch/minimips/templates/euclid.rb:34)
at RUBY.generate(/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/dist/lib/ruby/template.rb:961)
at RUBY.main(/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/dist/lib/ruby/microtesk.rb:35)
at org.jruby.RubyHash.each(org/jruby/RubyHash.java:1342)
at RUBY.main(/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/dist/lib/ruby/microtesk.rb:31)
at RUBY.(root)(/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/dist/lib/ruby/microtesk.rb:54)
at ru.ispras.microtesk.test.TestEngine.generate(ru/ispras/microtesk/test/TestEngine.java:153)
at ru.ispras.microtesk.MicroTESK.generate(ru/ispras/microtesk/MicroTESK.java:290)
at ru.ispras.microtesk.MicroTESK.main(ru/ispras/microtesk/MicroTESK.java:72)
</pre></pre> MicroTESK - Bug #6911 (New): The "get_address_of" method must work with all label types.https://forge.ispras.ru/issues/69112016-03-01T08:49:06ZAndrei Tatarnikovandrewt@ispras.ru
<p>Currently, it is limited to labels defined in global data sections. It must support all kinds of label. It should return a lazy value instead of a constant.</p> MicroTESK - Bug #5990 (New): Memory state must be taken into account when generating test datahttps://forge.ispras.ru/issues/59902015-05-27T08:46:50ZAndrei Tatarnikovandrewt@ispras.ru
<p>Data defined in <code>data{...}</code> blocks (global data) must be taken into account when generating test data.<br />Now the test data generator does not see data placed into memory outside of the current test template block.</p> Fortress - Bug #5775 (Closed): BitVector.longValue returns incorrect valueshttps://forge.ispras.ru/issues/57752015-03-27T09:00:32ZAndrei Tatarnikovandrewt@ispras.ru
<p>Subject. The code blow fails:</p>
<pre><code class="java syntaxhl" data-language="java"><span class="kd">final</span> <span class="nc">BitVector</span> <span class="n">bv1</span> <span class="o">=</span> <span class="nc">BitVector</span><span class="o">.</span><span class="na">valueOf</span><span class="o">(</span><span class="mh">0x00000000000A0000</span><span class="no">L</span><span class="o">,</span> <span class="mi">64</span><span class="o">);</span>
<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">bv1</span><span class="o">.</span><span class="na">toHexString</span><span class="o">());</span>
<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="nc">Long</span><span class="o">.</span><span class="na">toHexString</span><span class="o">(</span><span class="n">bv1</span><span class="o">.</span><span class="na">longValue</span><span class="o">()));</span>
<span class="n">assertEquals</span><span class="o">(</span><span class="mh">0x00000000000A0000</span><span class="no">L</span><span class="o">,</span> <span class="n">bv1</span><span class="o">.</span><span class="na">longValue</span><span class="o">());</span>
<span class="kd">final</span> <span class="nc">BitVector</span> <span class="n">bv2</span> <span class="o">=</span> <span class="nc">BitVector</span><span class="o">.</span><span class="na">valueOf</span><span class="o">(</span><span class="mh">0xFFFFFFFFFFF5FFFF</span><span class="no">L</span><span class="o">,</span> <span class="mi">64</span><span class="o">);</span>
<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">bv2</span><span class="o">.</span><span class="na">toHexString</span><span class="o">());</span>
<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="nc">Long</span><span class="o">.</span><span class="na">toHexString</span><span class="o">(</span><span class="n">bv2</span><span class="o">.</span><span class="na">longValue</span><span class="o">()));</span>
<span class="n">assertEquals</span><span class="o">(</span><span class="mh">0xFFFFFFFFFFF5FFFF</span><span class="no">L</span><span class="o">,</span> <span class="n">bv2</span><span class="o">.</span><span class="na">longValue</span><span class="o">());</span>
<span class="kd">final</span> <span class="nc">BitVector</span> <span class="n">bv3</span> <span class="o">=</span> <span class="nc">BitVector</span><span class="o">.</span><span class="na">valueOf</span><span class="o">(</span><span class="mh">0xDEADBEEFBAADF00D</span><span class="no">L</span><span class="o">,</span> <span class="mi">64</span><span class="o">);</span>
<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">bv3</span><span class="o">.</span><span class="na">toHexString</span><span class="o">());</span>
<span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="nc">Long</span><span class="o">.</span><span class="na">toHexString</span><span class="o">(</span><span class="n">bv3</span><span class="o">.</span><span class="na">longValue</span><span class="o">()));</span>
<span class="n">assertEquals</span><span class="o">(</span><span class="mh">0xDEADBEEFBAADF00D</span><span class="no">L</span><span class="o">,</span> <span class="n">bv3</span><span class="o">.</span><span class="na">longValue</span><span class="o">());</span>
</code></pre> Fortress - Bug #5463 (Closed): [S-expr] JavaDoc comments are neededhttps://forge.ispras.ru/issues/54632014-12-04T07:05:12ZAndrei Tatarnikovandrewt@ispras.ru
<p>The ru.ispras.fortress.esexpr package added in revisions r709 и r710 does not contain any description. It is not obvious what purpose it is supposed to serve. Corresponding JavaDoc comments should be included in the source code (including headers with the ISP RAS copyright).</p> Fortress - Bug #5460 (Closed): [project] Get rid of warningshttps://forge.ispras.ru/issues/54602014-12-04T06:55:25ZAndrei Tatarnikovandrewt@ispras.ru
<p>После коммитов r709 и r710 появилась куча Warning'ов. Нужно от них избавиться.</p>
<pre>
Description Resource Path Location Type
The import java.io.IOException is never used ESExpr.java /fortress/src/main/java/ru/ispras/fortress/esexpr line 3 Java Problem
The import java.io.Reader is never used ESExpr.java /fortress/src/main/java/ru/ispras/fortress/esexpr line 4 Java Problem
The import java.io.StreamTokenizer is never used ESExpr.java /fortress/src/main/java/ru/ispras/fortress/esexpr line 5 Java Problem
The import java.io.StringReader is never used ESExpr.java /fortress/src/main/java/ru/ispras/fortress/esexpr line 6 Java Problem
The import java.util.ArrayList is never used Z3TextSolver.java /fortress/src/main/java/ru/ispras/fortress/solver/engine/z3 line 28 Java Problem
The import java.util.List is never used Z3TextSolver.java /fortress/src/main/java/ru/ispras/fortress/solver/engine/z3 line 27 Java Problem
The method tryToParseError(String, SolverResultBuilder) from the type Z3TextSolver is never used locally Z3TextSolver.java /fortress/src/main/java/ru/ispras/fortress/solver/engine/z3 line 245 Java Problem
The method tryToParseStatus(String, SolverResultBuilder) from the type Z3TextSolver is never used locally Z3TextSolver.java /fortress/src/main/java/ru/ispras/fortress/solver/engine/z3 line 227 Java Problem
The method tryToParseVariable(String, Variable, SolverResultBuilder, Map<String,Variable>) from the type Z3TextSolver is never used locally Z3TextSolver.java /fortress/src/main/java/ru/ispras/fortress/solver/engine/z3 line 302 Java Problem
The value of the local variable vi is not used Z3TextSolver.java /fortress/src/main/java/ru/ispras/fortress/solver/engine/z3 line 123 Java Problem
</pre> Fortress - Bug #5217 (Closed): [expression] NodeBinding: hashCode and equals must be implementedhttps://forge.ispras.ru/issues/52172014-08-23T09:15:42ZAndrei Tatarnikovandrewt@ispras.ru
<p>У класса NodeBinding должны быть определены методы hashCode и equals, как это сделано в других классах Node.</p>