<div dir="ltr">Hi, <div> attached is a change I propose to DecompilerTests (it should be called DecompilerTest, singular, a change I did not include to facilitate merging).</div><div> Currently DecompilerTests decompiles all classes in the image. This contradicts a testing rule that is that "the test must be in control of everything". In these tests, they do not control the setup because the decompiled classes will change based on the classes in the image, that is the reason Nico, me and for sure other people get a test failure when running that test.</div><div> To minimize the impact I changed the tests to run only on the base classes, that is classes on Kernel, Graphics, System, etc.</div><div> BTW, I don't know what DecompilerTestFailuresCollector is there for... it has no tests and no references...</div><div><br></div><div>Cheers!</div><div>Hernan.</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Mon, May 5, 2025 at 1:13 PM Juan Vuletich via Cuis-dev <<a href="mailto:cuis-dev@lists.cuis.st">cuis-dev@lists.cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>

  
    
  
  <div bgcolor="#ffffff">
    On 5/5/2025 1:04 PM, Nicolás Papagna Maldonado via Cuis-dev wrote:
    <blockquote type="cite">
      <div dir="ltr">Hi Juan, all!
        <div><br>
        </div>
        <div>Thanks for the clarification.</div>
        <div><br>
        </div>
        <div>CodeCoverage de-optimizes methods to do its thing, so <span style="font-family:monospace">CodeCoverageTest
            temporaryVariable</span> is actually a valid use-case (it's
          used to check whether the temporary variable declaration is
          marked as 'covered' when the variable is read.</div>
        <div><br>
        </div>
        <div>Is there any way I can exclude such tests from <span style="font-family:monospace">DecompilerTests?</span></div>
        I'm building a custom image where I need to check that I didn't
        break any tests in the base image and that failing tests is
        breaking my CI builds, preventing the build from suceeding.
        <div><br>
        </div>
        <div>Cheers!</div>
        <div>Nico PM</div>
      </div>
    </blockquote>
    <br>
    Yes, you can add it to #expectedFailures . BaseImageTests has some
    examples of this.<br>
    <br>
    Cheers,<br>
    <br>
    <blockquote type="cite"><br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Mon, May 5, 2025 at
          12:54 PM Juan Vuletich <<a href="mailto:juan@cuis.st" target="_blank">juan@cuis.st</a>> wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div bgcolor="#ffffff"> Hi Nico.<br>
            <br>
            I don't think this is a bug. Decompiler creates Smalltalk
            code from actual bytecode. Dead code had been removed when
            generating the bytecode. Looks fine to me.<br>
            <br>
            Does it make sense to add some use of the 'a' variable, so
            it is kept during compilation? I mean, it is difficult to
            imagine that CodeCoverageTest can do something interesting
            with a method that had all its code optimized out...<br>
            <br>
            Cheers,<br>
            <br>
            On 5/4/2025 1:49 PM, Nicolás Papagna Maldonado via Cuis-dev
            wrote:
            <blockquote type="cite">
              <div dir="ltr">Hi folks,
                <div><br>
                </div>
                <div>I don't know if this is a bug or the expected
                  behavior.</div>
                <div><br>
                </div>
                <div>Today I ran the tests in <font face="monospace">BaseImageTests</font>
                  with the <font face="monospace">CodeCoverage</font>
                  package (<a href="https://github.com/npapagna/cuis-code-coverage" target="_blank">https://github.com/npapagna/cuis-code-coverage</a>)
                  loaded and one of the <span style="font-family:monospace">DecompilerTests </span>failed.</div>
                <div>The reason seems to be that <font face="monospace">Decompiler</font>
                  does not restore unused temporary variables.</div>
                <div><br>
                </div>
                <div>In particular, <font face="monospace">DecompilerTests>>#testDecompilerInClassesCNtoCZ</font>
                  was failing on <font face="monospace">CodeCoverageTest

                    temporaryVariable</font>:<br>
                  <div>(For context: this method is needed to reproduce
                    a test scenario for the CodeCoverage tool)</div>
                  <div><br>
                  </div>
                  <div><font face="monospace">CodeCoverageTest >>
                      #temporaryVariable<br>
                          | a |<br>
                          a</font>.</div>
                  <div><font face="monospace"><br>
                    </font></div>
                  To reproduce without the CodeCoverage package,
                  evaluate:
                  <div><font face="monospace"><br>
                    </font></div>
                  <div><font face="monospace">Object compile: 'm1 |a|
                      a'.<br>
                      <br>
                      newCodeString := (Decompiler new<br>
                          decompile: #m1<br>
                          in: Object<br>
                          method: Object >> #m1) decompileString.</font></div>
                </div>
                <div><font face="monospace"><br>
                  </font></div>
                Notice that <font face="monospace">newCodeString</font>
                is <font face="monospace">'m1 ^ self.'</font> and it
                should be <font face="monospace">'m1 |a| a'</font>(if
                this is really a bug).
                <div><font face="monospace"><br>
                  </font></div>
                <div>The code above was run on HEAD at the moment
                  (6c13d4eda2e9a8c56362ae3363d7b013917227c5).</div>
                <div><br>
                </div>
                <div>Is this something that needs to be fixed?</div>
                <div>
                  <div><font face="monospace"><br>
                    </font></div>
                  Best,<br>
                  Nico PM</div>
              </div>
            </blockquote>
            <br>
            <br>
            <pre cols="72">-- 
Juan Vuletich
<a href="http://www.cuis-smalltalk.org" target="_blank">www.cuis-smalltalk.org</a>
<a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a href="https://github.com/jvuletich" target="_blank">https://github.com/jvuletich</a>
<a href="https://www.linkedin.com/in/juan-vuletich-75611b3" target="_blank">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
<a href="https://independent.academia.edu/JuanVuletich" target="_blank">https://independent.academia.edu/JuanVuletich</a>
<a href="https://www.researchgate.net/profile/Juan-Vuletich" target="_blank">https://www.researchgate.net/profile/Juan-Vuletich</a>
<a href="https://patents.justia.com/inventor/juan-manuel-vuletich" target="_blank">https://patents.justia.com/inventor/juan-manuel-vuletich</a>
<a href="https://twitter.com/JuanVuletich" target="_blank">https://twitter.com/JuanVuletich</a></pre>
          </div>
        </blockquote>
      </div>
      <div><br clear="all">
      </div>
      <div><br>
      </div>
      <span class="gmail_signature_prefix">-- </span><br>
      <div dir="ltr" class="gmail_signature"><br>
        Nicolás Papagna</div>
    </blockquote>
    <br>
    <br>
    <pre cols="72">-- 
Juan Vuletich
<a href="http://cuis.st" target="_blank">cuis.st</a>
<a href="http://github.com/jvuletich" target="_blank">github.com/jvuletich</a>
<a href="http://researchgate.net/profile/Juan-Vuletich" target="_blank">researchgate.net/profile/Juan-Vuletich</a>
<a href="http://independent.academia.edu/JuanVuletich" target="_blank">independent.academia.edu/JuanVuletich</a>
<a href="http://patents.justia.com/inventor/juan-manuel-vuletich" target="_blank">patents.justia.com/inventor/juan-manuel-vuletich</a>
<a href="http://linkedin.com/in/juan-vuletich-75611b3" target="_blank">linkedin.com/in/juan-vuletich-75611b3</a>
<a href="http://twitter.com/JuanVuletich" target="_blank">twitter.com/JuanVuletich</a></pre>
  </div>

-- <br>
Cuis-dev mailing list<br>
<a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br>
<a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
</blockquote></div><div><br clear="all"></div><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div style="font-size:small"><div dir="ltr"><div dir="ltr"><div style="font-size:12.8px"><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal"><span style="font-weight:bold">Hernán Wilkinson</span><br>Agile Software Development, Teaching & Coaching</span></font></span></span></strong></span></div><div style="font-size:12.8px"><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">Phone: +54-011</span></font></span></span></strong></span><font face="tahoma, sans-serif" size="2">-4893-2057</font></div><div style="font-size:12.8px"><strong style="font-family:tahoma,sans-serif;font-size:xx-small"><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">Twitter: @HernanWilkinson</span></font></span></span></strong></div><div style="font-size:12.8px"><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">site: <a href="http://www.10pines.com/" style="color:rgb(17,65,112)" target="_blank">http://www.10Pines.com</a></span></font></span></span></strong></span></div><div style="font-size:12.8px"><font face="tahoma, sans-serif"><span style="border-collapse:collapse">Address: Alem 896</span></font>, Floor 6, Buenos Aires, Argentina</div></div></div></div></div></div></div></div>