<table><tr><td style="">pino requested changes to this revision.<br />pino added a comment.<br />This revision now requires changes to proceed.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D15521">View Revision</a></tr></table><br /><div><div><ul class="remarkup-list">
<li class="remarkup-list-item">same note as in <a href="https://phabricator.kde.org/D15520" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">D15520: Upgrade SimpleIpV4AddressValidator and SimpleIpV6AddressValidator</a> regarding the commit, and the summary of this review</li>
<li class="remarkup-list-item">in the test, better use the data-driven approach for tests, instead of long copy&paste lines of "set data, check result" sequences</li>
</ul></div></div><br /><div><strong>INLINE COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D15521#inline-83803">View Inline</a><span style="color: #4b4d51; font-weight: bold;">simpleiplistvalidator.cpp:29</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">                                                       <span class="n">AddressType</span> <span class="n">type</span><span class="p">)</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #aa2211">:</span> <span class="n">QValidator</span><span class="p">(</span><span class="n">parent</span><span class="p">)</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span class="p">{</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">please set both <tt style="background: #ebebeb; font-size: 13px;">m_ipv4Validator</tt> and <tt style="background: #ebebeb; font-size: 13px;">m_ipv6Validator</tt>, otherwise they can be left uninitialized when <tt style="background: #ebebeb; font-size: 13px;">type</tt> is not <tt style="background: #ebebeb; font-size: 13px;">Both</tt></p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D15521#inline-83804">View Inline</a><span style="color: #4b4d51; font-weight: bold;">simpleiplistvalidator.cpp:62</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #74777d">// Split the incoming address on commas possibly with spaces on either side</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">QStringList</span> <span class="n">addressList</span> <span style="color: #aa2211">=</span> <span class="n">address</span><span class="p">.</span><span class="n">split</span><span class="p">(</span><span class="n">QRegularExpression</span><span class="p">(</span><span style="color: #766510">"</span><span style="color: #bb6622">\\</span><span style="color: #766510">s*,</span><span style="color: #bb6622">\\</span><span style="color: #766510">s*"</span><span class="p">));</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">no need for a regexp, please use <tt style="background: #ebebeb; font-size: 13px;">QString::split()</tt> with <tt style="background: #ebebeb; font-size: 13px;">QString::SkipEmptyParts</tt></p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D15521#inline-83806">View Inline</a><span style="color: #4b4d51; font-weight: bold;">simpleiplistvalidator.cpp:67</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #aa4000">int</span> <span class="n">localPos</span> <span style="color: #aa2211">=</span> <span style="color: #601200">0</span><span class="p">;</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #aa4000">int</span> <span class="n">i</span> <span style="color: #aa2211">=</span> <span style="color: #601200">0</span><span class="p">;</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">QValidator</span><span style="color: #aa2211">::</span><span class="n">State</span> <span class="n">result</span> <span style="color: #aa2211">=</span> <span class="n">QValidator</span><span style="color: #aa2211">::</span><span class="n">Acceptable</span><span class="p">;</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">set (later on), but never use</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D15521#inline-83805">View Inline</a><span style="color: #4b4d51; font-weight: bold;">simpleiplistvalidator.cpp:101</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">        <span style="color: #74777d">// that's the default set on entry and we only downgrade it from there.</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">        <span style="color: #aa4000">if</span> <span class="p">(</span><span class="n">result</span> <span style="color: #aa2211">!=</span> <span class="n">QValidator</span><span style="color: #aa2211">::</span><span class="n">Invalid</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">            <span style="color: #aa2211">&&</span> <span class="p">(</span><span class="n">ipv4Result</span> <span style="color: #aa2211">==</span> <span class="n">QValidator</span><span style="color: #aa2211">::</span><span class="n">Intermediate</span> <span style="color: #aa2211">||</span> <span class="n">ipv6Result</span> <span style="color: #aa2211">==</span> <span class="n">QValidator</span><span style="color: #aa2211">::</span><span class="n">Intermediate</span><span class="p">))</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;"><tt style="background: #ebebeb; font-size: 13px;">result</tt> will never be <tt style="background: #ebebeb; font-size: 13px;">QValidator::Invalid</tt>, so this condition is always true</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D15521#inline-83807">View Inline</a><span style="color: #4b4d51; font-weight: bold;">CMakeLists.txt:13-15</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">add_executable(simpleipv6test ${simpleipv6test_SRCS})
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">add_test(simpleipv6 simpleipv6test)
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">ecm_mark_as_test(simpleipv6test)
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">just use <tt style="background: #ebebeb; font-size: 13px;">ecm_add_test</tt> instead</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D15521#inline-83808">View Inline</a><span style="color: #4b4d51; font-weight: bold;">CMakeLists.txt:26-28</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">add_executable(simpleipv4test ${simpleipv4test_SRCS})
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">add_test(simpleipv4 simpleipv4test)
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">ecm_mark_as_test(simpleipv4test)
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">ditto</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D15521#inline-83809">View Inline</a><span style="color: #4b4d51; font-weight: bold;">CMakeLists.txt:42-44</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">add_executable(simpleiplisttest ${simpleiplisttest_SRCS})
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">add_test(simpleiplist simpleiplisttest)
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">ecm_mark_as_test(simpleiplisttest)
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">ditto</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D15521#inline-83812">View Inline</a><span style="color: #4b4d51; font-weight: bold;">simpleiplisttest.cpp:23</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span style="color: #304a96">#include</span> <span class="cpf"><QTest></span><span style="color: #304a96"></span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span style="color: #304a96">#include</span> <span class="cpf"><QDir></span><span style="color: #304a96"></span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">unused</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D15521#inline-83810">View Inline</a><span style="color: #4b4d51; font-weight: bold;">simpleiplisttest.cpp:43-45</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">vb</span> <span style="color: #aa2211">=</span> <span style="color: #aa4000">new</span> <span class="n">SimpleIpListValidator</span><span class="p">(</span><span style="color: #aa4000">nullptr</span><span class="p">,</span> <span class="n">SimpleIpListValidator</span><span style="color: #aa2211">::</span><span class="n">AddressStyle</span><span style="color: #aa2211">::</span><span class="n">Base</span><span class="p">);</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">vc</span> <span style="color: #aa2211">=</span> <span style="color: #aa4000">new</span> <span class="n">SimpleIpListValidator</span><span class="p">(</span><span style="color: #aa4000">nullptr</span><span class="p">,</span> <span class="n">SimpleIpListValidator</span><span style="color: #aa2211">::</span><span class="n">AddressStyle</span><span style="color: #aa2211">::</span><span class="n">WithCidr</span><span class="p">);</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">vp</span> <span style="color: #aa2211">=</span> <span style="color: #aa4000">new</span> <span class="n">SimpleIpListValidator</span><span class="p">(</span><span style="color: #aa4000">nullptr</span><span class="p">,</span> <span class="n">SimpleIpListValidator</span><span style="color: #aa2211">::</span><span class="n">AddressStyle</span><span style="color: #aa2211">::</span><span class="n">WithPort</span><span class="p">);</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">even if this is a test, these are leaked, "polluting" the results of tools like valgrind; just make them non-pointers class variables</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D15521#inline-83811">View Inline</a><span style="color: #4b4d51; font-weight: bold;">simpleiplisttest.cpp:53</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">QString</span> <span style="color: #004012">tstr</span><span class="p">(</span><span style="color: #766510">""</span><span class="p">);</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">QVERIFY</span><span class="p">(</span><span class="n">vb</span><span style="color: #aa2211">-></span><span class="n">validate</span><span class="p">(</span><span class="n">tstr</span><span class="p">,</span> <span class="n">pos</span><span class="p">)</span> <span style="color: #aa2211">==</span> <span class="n">QValidator</span><span style="color: #aa2211">::</span><span class="n">Intermediate</span><span class="p">);</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;"><tt style="background: #ebebeb; font-size: 13px;">QVERIFY(foo == bar)</tt> -> <tt style="background: #ebebeb; font-size: 13px;">QCOMPARE(foo, bar)</tt>, it applies to all the checks in this file</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R116 Plasma Network Management Applet</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D15521">https://phabricator.kde.org/D15521</a></div></div><br /><div><strong>To: </strong>andersonbruce, jgrulich, pino<br /><strong>Cc: </strong>plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart<br /></div>