If there are to many test results, lines are discarded from the result view. They are still executed.

This commit is contained in:
hneemann 2017-04-19 17:45:22 +02:00
parent 871187305c
commit 311793d7dd
6 changed files with 141 additions and 261 deletions

View File

@ -10,7 +10,7 @@
<visualElement> <visualElement>
<elementName>Comp7485.dig</elementName> <elementName>Comp7485.dig</elementName>
<elementAttributes/> <elementAttributes/>
<pos x="180" y="-100"/> <pos x="180" y="-20"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>Comp7485.dig</elementName> <elementName>Comp7485.dig</elementName>
@ -20,12 +20,12 @@
<visualElement> <visualElement>
<elementName>Comp7485.dig</elementName> <elementName>Comp7485.dig</elementName>
<elementAttributes/> <elementAttributes/>
<pos x="180" y="580"/> <pos x="180" y="500"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>Const</elementName> <elementName>Const</elementName>
<elementAttributes/> <elementAttributes/>
<pos x="160" y="680"/> <pos x="160" y="600"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>Const</elementName> <elementName>Const</elementName>
@ -35,7 +35,7 @@
<int>0</int> <int>0</int>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="160" y="660"/> <pos x="160" y="580"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>Const</elementName> <elementName>Const</elementName>
@ -45,7 +45,7 @@
<int>0</int> <int>0</int>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="160" y="700"/> <pos x="160" y="620"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>Const</elementName> <elementName>Const</elementName>
@ -95,7 +95,7 @@
<string>A_0</string> <string>A_0</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="540"/> <pos x="-20" y="500"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -105,7 +105,7 @@
<string>A_1</string> <string>A_1</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="580"/> <pos x="100" y="520"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -115,7 +115,7 @@
<string>A_2</string> <string>A_2</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="620"/> <pos x="-20" y="540"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -125,7 +125,7 @@
<string>A_3</string> <string>A_3</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="660"/> <pos x="100" y="560"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -135,7 +135,7 @@
<string>B_0</string> <string>B_0</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="700"/> <pos x="-20" y="640"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -145,7 +145,7 @@
<string>B_1</string> <string>B_1</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="740"/> <pos x="100" y="660"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -155,7 +155,7 @@
<string>B_2</string> <string>B_2</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="780"/> <pos x="-20" y="680"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -165,7 +165,7 @@
<string>B_3</string> <string>B_3</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="820"/> <pos x="100" y="700"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>Const</elementName> <elementName>Const</elementName>
@ -200,7 +200,7 @@
<string>A_4</string> <string>A_4</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="200"/> <pos x="-20" y="240"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -210,7 +210,7 @@
<string>A_5</string> <string>A_5</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="240"/> <pos x="100" y="260"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -220,7 +220,7 @@
<string>A_6</string> <string>A_6</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="280"/> <pos x="-20" y="280"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -230,7 +230,7 @@
<string>A_7</string> <string>A_7</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="320"/> <pos x="100" y="300"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -240,7 +240,7 @@
<string>B_4</string> <string>B_4</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="360"/> <pos x="-20" y="380"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -260,7 +260,7 @@
<string>B_6</string> <string>B_6</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="440"/> <pos x="-20" y="420"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -270,12 +270,12 @@
<string>B_7</string> <string>B_7</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="480"/> <pos x="100" y="440"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>Const</elementName> <elementName>Const</elementName>
<elementAttributes/> <elementAttributes/>
<pos x="160" y="0"/> <pos x="160" y="80"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>Const</elementName> <elementName>Const</elementName>
@ -285,7 +285,7 @@
<int>0</int> <int>0</int>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="160" y="-20"/> <pos x="160" y="60"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>Const</elementName> <elementName>Const</elementName>
@ -295,7 +295,7 @@
<int>0</int> <int>0</int>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="160" y="20"/> <pos x="160" y="100"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -305,7 +305,7 @@
<string>A_8</string> <string>A_8</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="-140"/> <pos x="-20" y="-20"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -315,7 +315,7 @@
<string>A_9</string> <string>A_9</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="-100"/> <pos x="100" y="0"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -325,7 +325,7 @@
<string>A_10</string> <string>A_10</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="-60"/> <pos x="-20" y="20"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -335,7 +335,7 @@
<string>A_11</string> <string>A_11</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="-20"/> <pos x="100" y="40"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -345,7 +345,7 @@
<string>B_8</string> <string>B_8</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="20"/> <pos x="-20" y="120"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -355,7 +355,7 @@
<string>B_9</string> <string>B_9</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="60"/> <pos x="100" y="140"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -365,7 +365,7 @@
<string>B_10</string> <string>B_10</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="100"/> <pos x="-20" y="160"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>In</elementName> <elementName>In</elementName>
@ -375,7 +375,7 @@
<string>B_11</string> <string>B_11</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="100" y="140"/> <pos x="100" y="180"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>Out</elementName> <elementName>Out</elementName>
@ -426,32 +426,32 @@
<string>Testdata</string> <string>Testdata</string>
<testData> <testData>
<dataString>A_11 A_10 A_9 A_8 A_7 A_6 A_5 A_4 A_3 A_2 A_1 A_0 B_11 B_10 B_9 B_8 B_7 B_6 B_5 B_4 B_3 B_2 B_1 B_0 P&lt;Q P=Q P&gt;Q <dataString>A_11 A_10 A_9 A_8 A_7 A_6 A_5 A_4 A_3 A_2 A_1 A_0 B_11 B_10 B_9 B_8 B_7 B_6 B_5 B_4 B_3 B_2 B_1 B_0 P&lt;Q P=Q P&gt;Q
repeat(1&lt;&lt;16) bits(12,n&gt;&gt;8) bits(12,n&amp;0xff) ((n&gt;&gt;8)&lt;(n&amp;0xff)) ((n&gt;&gt;8)=(n&amp;0xff)) ((n&gt;&gt;8)&gt;(n&amp;0xff))</dataString> repeat(1&lt;&lt;24) bits(12,n&gt;&gt;12) bits(12,n&amp;0xfff) ((n&gt;&gt;12)&lt;(n&amp;0xfff)) ((n&gt;&gt;12)=(n&amp;0xfff)) ((n&gt;&gt;12)&gt;(n&amp;0xfff))</dataString>
</testData> </testData>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="580" y="740"/> <pos x="580" y="660"/>
</visualElement> </visualElement>
</visualElements> </visualElements>
<wires> <wires>
<wire> <wire>
<p1 x="300" y="580"/> <p1 x="300" y="500"/>
<p2 x="360" y="320"/> <p2 x="360" y="320"/>
</wire> </wire>
<wire> <wire>
<p1 x="320" y="600"/> <p1 x="320" y="520"/>
<p2 x="380" y="340"/> <p2 x="380" y="340"/>
</wire> </wire>
<wire> <wire>
<p1 x="340" y="620"/> <p1 x="340" y="540"/>
<p2 x="400" y="360"/> <p2 x="400" y="360"/>
</wire> </wire>
<wire> <wire>
<p1 x="320" y="-100"/> <p1 x="320" y="-20"/>
<p2 x="440" y="400"/> <p2 x="440" y="400"/>
</wire> </wire>
<wire> <wire>
<p1 x="300" y="-60"/> <p1 x="300" y="20"/>
<p2 x="440" y="260"/> <p2 x="440" y="260"/>
</wire> </wire>
<wire> <wire>
@ -466,24 +466,20 @@ repeat(1&lt;&lt;16) bits(12,n&gt;&gt;8) bits(12,n&amp;0xff) ((n&gt;&gt;8)&lt;(n&
<p1 x="360" y="320"/> <p1 x="360" y="320"/>
<p2 x="480" y="320"/> <p2 x="480" y="320"/>
</wire> </wire>
<wire>
<p1 x="100" y="320"/>
<p2 x="120" y="320"/>
</wire>
<wire> <wire>
<p1 x="160" y="320"/> <p1 x="160" y="320"/>
<p2 x="180" y="320"/> <p2 x="180" y="320"/>
</wire> </wire>
<wire> <wire>
<p1 x="120" y="640"/> <p1 x="-20" y="640"/>
<p2 x="180" y="640"/> <p2 x="180" y="640"/>
</wire> </wire>
<wire> <wire>
<p1 x="160" y="0"/> <p1 x="100" y="0"/>
<p2 x="180" y="0"/> <p2 x="180" y="0"/>
</wire> </wire>
<wire> <wire>
<p1 x="120" y="260"/> <p1 x="100" y="260"/>
<p2 x="180" y="260"/> <p2 x="180" y="260"/>
</wire> </wire>
<wire> <wire>
@ -495,40 +491,24 @@ repeat(1&lt;&lt;16) bits(12,n&gt;&gt;8) bits(12,n&amp;0xff) ((n&gt;&gt;8)&lt;(n&
<p2 x="480" y="260"/> <p2 x="480" y="260"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="580"/> <p1 x="160" y="580"/>
<p2 x="120" y="580"/>
</wire>
<wire>
<p1 x="280" y="580"/>
<p2 x="300" y="580"/>
</wire>
<wire>
<p1 x="140" y="580"/>
<p2 x="180" y="580"/> <p2 x="180" y="580"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="200"/> <p1 x="100" y="520"/>
<p2 x="140" y="200"/> <p2 x="180" y="520"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="-140"/> <p1 x="280" y="520"/>
<p2 x="140" y="-140"/> <p2 x="320" y="520"/>
</wire>
<wire>
<p1 x="100" y="780"/>
<p2 x="120" y="780"/>
</wire>
<wire>
<p1 x="140" y="780"/>
<p2 x="180" y="780"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="140"/> <p1 x="100" y="140"/>
<p2 x="140" y="140"/> <p2 x="180" y="140"/>
</wire> </wire>
<wire> <wire>
<p1 x="120" y="-80"/> <p1 x="160" y="80"/>
<p2 x="180" y="-80"/> <p2 x="180" y="80"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="400"/> <p1 x="100" y="400"/>
@ -539,28 +519,12 @@ repeat(1&lt;&lt;16) bits(12,n&gt;&gt;8) bits(12,n&amp;0xff) ((n&gt;&gt;8)&lt;(n&
<p2 x="480" y="400"/> <p2 x="480" y="400"/>
</wire> </wire>
<wire> <wire>
<p1 x="120" y="720"/> <p1 x="-20" y="-20"/>
<p2 x="180" y="720"/>
</wire>
<wire>
<p1 x="120" y="80"/>
<p2 x="180" y="80"/>
</wire>
<wire>
<p1 x="100" y="-20"/>
<p2 x="120" y="-20"/>
</wire>
<wire>
<p1 x="160" y="-20"/>
<p2 x="180" y="-20"/> <p2 x="180" y="-20"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="660"/> <p1 x="280" y="-20"/>
<p2 x="120" y="660"/> <p2 x="320" y="-20"/>
</wire>
<wire>
<p1 x="160" y="660"/>
<p2 x="180" y="660"/>
</wire> </wire>
<wire> <wire>
<p1 x="380" y="340"/> <p1 x="380" y="340"/>
@ -571,11 +535,15 @@ repeat(1&lt;&lt;16) bits(12,n&gt;&gt;8) bits(12,n&amp;0xff) ((n&gt;&gt;8)&lt;(n&
<p2 x="180" y="340"/> <p2 x="180" y="340"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="20"/> <p1 x="100" y="660"/>
<p2 x="120" y="20"/> <p2 x="180" y="660"/>
</wire> </wire>
<wire> <wire>
<p1 x="160" y="20"/> <p1 x="280" y="20"/>
<p2 x="300" y="20"/>
</wire>
<wire>
<p1 x="-20" y="20"/>
<p2 x="180" y="20"/> <p2 x="180" y="20"/>
</wire> </wire>
<wire> <wire>
@ -587,7 +555,7 @@ repeat(1&lt;&lt;16) bits(12,n&gt;&gt;8) bits(12,n&amp;0xff) ((n&gt;&gt;8)&lt;(n&
<p2 x="480" y="280"/> <p2 x="480" y="280"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="280"/> <p1 x="-20" y="280"/>
<p2 x="180" y="280"/> <p2 x="180" y="280"/>
</wire> </wire>
<wire> <wire>
@ -595,113 +563,81 @@ repeat(1&lt;&lt;16) bits(12,n&gt;&gt;8) bits(12,n&amp;0xff) ((n&gt;&gt;8)&lt;(n&
<p2 x="600" y="280"/> <p2 x="600" y="280"/>
</wire> </wire>
<wire> <wire>
<p1 x="280" y="600"/> <p1 x="160" y="600"/>
<p2 x="320" y="600"/>
</wire>
<wire>
<p1 x="120" y="600"/>
<p2 x="180" y="600"/> <p2 x="180" y="600"/>
</wire> </wire>
<wire>
<p1 x="100" y="540"/>
<p2 x="140" y="540"/>
</wire>
<wire> <wire>
<p1 x="600" y="220"/> <p1 x="600" y="220"/>
<p2 x="620" y="220"/> <p2 x="620" y="220"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="480"/> <p1 x="-20" y="540"/>
<p2 x="140" y="480"/> <p2 x="180" y="540"/>
</wire> </wire>
<wire> <wire>
<p1 x="280" y="-100"/> <p1 x="280" y="540"/>
<p2 x="320" y="-100"/> <p2 x="340" y="540"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="-100"/> <p1 x="-20" y="160"/>
<p2 x="120" y="-100"/> <p2 x="180" y="160"/>
</wire> </wire>
<wire> <wire>
<p1 x="140" y="-100"/> <p1 x="160" y="100"/>
<p2 x="180" y="-100"/> <p2 x="180" y="100"/>
</wire> </wire>
<wire> <wire>
<p1 x="460" y="420"/> <p1 x="460" y="420"/>
<p2 x="480" y="420"/> <p2 x="480" y="420"/>
</wire> </wire>
<wire> <wire>
<p1 x="120" y="420"/> <p1 x="-20" y="420"/>
<p2 x="180" y="420"/> <p2 x="180" y="420"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="740"/> <p1 x="100" y="40"/>
<p2 x="180" y="740"/> <p2 x="180" y="40"/>
</wire>
<wire>
<p1 x="100" y="100"/>
<p2 x="120" y="100"/>
</wire>
<wire>
<p1 x="140" y="100"/>
<p2 x="180" y="100"/>
</wire>
<wire>
<p1 x="120" y="-40"/>
<p2 x="180" y="-40"/>
</wire>
<wire>
<p1 x="160" y="680"/>
<p2 x="180" y="680"/>
</wire> </wire>
<wire> <wire>
<p1 x="400" y="360"/> <p1 x="400" y="360"/>
<p2 x="480" y="360"/> <p2 x="480" y="360"/>
</wire> </wire>
<wire>
<p1 x="100" y="360"/>
<p2 x="120" y="360"/>
</wire>
<wire> <wire>
<p1 x="160" y="360"/> <p1 x="160" y="360"/>
<p2 x="180" y="360"/> <p2 x="180" y="360"/>
</wire> </wire>
<wire> <wire>
<p1 x="120" y="40"/> <p1 x="-20" y="680"/>
<p2 x="180" y="40"/> <p2 x="180" y="680"/>
</wire>
<wire>
<p1 x="100" y="300"/>
<p2 x="180" y="300"/>
</wire> </wire>
<wire> <wire>
<p1 x="460" y="300"/> <p1 x="460" y="300"/>
<p2 x="480" y="300"/> <p2 x="480" y="300"/>
</wire> </wire>
<wire>
<p1 x="120" y="300"/>
<p2 x="180" y="300"/>
</wire>
<wire> <wire>
<p1 x="600" y="300"/> <p1 x="600" y="300"/>
<p2 x="620" y="300"/> <p2 x="620" y="300"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="620"/> <p1 x="160" y="620"/>
<p2 x="180" y="620"/> <p2 x="180" y="620"/>
</wire> </wire>
<wire> <wire>
<p1 x="280" y="620"/> <p1 x="100" y="560"/>
<p2 x="340" y="620"/> <p2 x="180" y="560"/>
</wire>
<wire>
<p1 x="-20" y="240"/>
<p2 x="180" y="240"/>
</wire> </wire>
<wire> <wire>
<p1 x="280" y="240"/> <p1 x="280" y="240"/>
<p2 x="300" y="240"/> <p2 x="300" y="240"/>
</wire> </wire>
<wire>
<p1 x="100" y="240"/>
<p2 x="120" y="240"/>
</wire>
<wire>
<p1 x="140" y="240"/>
<p2 x="180" y="240"/>
</wire>
<wire> <wire>
<p1 x="580" y="240"/> <p1 x="580" y="240"/>
<p2 x="600" y="240"/> <p2 x="600" y="240"/>
@ -711,100 +647,44 @@ repeat(1&lt;&lt;16) bits(12,n&gt;&gt;8) bits(12,n&amp;0xff) ((n&gt;&gt;8)&lt;(n&
<p2 x="480" y="240"/> <p2 x="480" y="240"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="820"/> <p1 x="100" y="180"/>
<p2 x="140" y="820"/> <p2 x="180" y="180"/>
</wire>
<wire>
<p1 x="280" y="500"/>
<p2 x="300" y="500"/>
</wire>
<wire>
<p1 x="-20" y="500"/>
<p2 x="180" y="500"/>
</wire>
<wire>
<p1 x="-20" y="120"/>
<p2 x="180" y="120"/>
</wire>
<wire>
<p1 x="100" y="440"/>
<p2 x="180" y="440"/>
</wire> </wire>
<wire> <wire>
<p1 x="460" y="440"/> <p1 x="460" y="440"/>
<p2 x="480" y="440"/> <p2 x="480" y="440"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="440"/> <p1 x="160" y="60"/>
<p2 x="120" y="440"/>
</wire>
<wire>
<p1 x="140" y="440"/>
<p2 x="180" y="440"/>
</wire>
<wire>
<p1 x="120" y="760"/>
<p2 x="180" y="760"/>
</wire>
<wire>
<p1 x="280" y="-60"/>
<p2 x="300" y="-60"/>
</wire>
<wire>
<p1 x="100" y="-60"/>
<p2 x="180" y="-60"/>
</wire>
<wire>
<p1 x="460" y="380"/>
<p2 x="480" y="380"/>
</wire>
<wire>
<p1 x="120" y="380"/>
<p2 x="180" y="380"/>
</wire>
<wire>
<p1 x="100" y="60"/>
<p2 x="180" y="60"/> <p2 x="180" y="60"/>
</wire> </wire>
<wire> <wire>
<p1 x="100" y="700"/> <p1 x="100" y="700"/>
<p2 x="120" y="700"/>
</wire>
<wire>
<p1 x="160" y="700"/>
<p2 x="180" y="700"/> <p2 x="180" y="700"/>
</wire> </wire>
<wire> <wire>
<p1 x="120" y="80"/> <p1 x="-20" y="380"/>
<p2 x="120" y="100"/> <p2 x="180" y="380"/>
</wire> </wire>
<wire> <wire>
<p1 x="120" y="20"/> <p1 x="460" y="380"/>
<p2 x="120" y="40"/> <p2 x="480" y="380"/>
</wire>
<wire>
<p1 x="120" y="-40"/>
<p2 x="120" y="-20"/>
</wire>
<wire>
<p1 x="120" y="-100"/>
<p2 x="120" y="-80"/>
</wire>
<wire>
<p1 x="120" y="420"/>
<p2 x="120" y="440"/>
</wire>
<wire>
<p1 x="120" y="360"/>
<p2 x="120" y="380"/>
</wire>
<wire>
<p1 x="120" y="300"/>
<p2 x="120" y="320"/>
</wire>
<wire>
<p1 x="120" y="240"/>
<p2 x="120" y="260"/>
</wire>
<wire>
<p1 x="120" y="760"/>
<p2 x="120" y="780"/>
</wire>
<wire>
<p1 x="120" y="700"/>
<p2 x="120" y="720"/>
</wire>
<wire>
<p1 x="120" y="640"/>
<p2 x="120" y="660"/>
</wire>
<wire>
<p1 x="120" y="580"/>
<p2 x="120" y="600"/>
</wire> </wire>
<wire> <wire>
<p1 x="600" y="280"/> <p1 x="600" y="280"/>
@ -814,29 +694,5 @@ repeat(1&lt;&lt;16) bits(12,n&gt;&gt;8) bits(12,n&amp;0xff) ((n&gt;&gt;8)&lt;(n&
<p1 x="600" y="220"/> <p1 x="600" y="220"/>
<p2 x="600" y="240"/> <p2 x="600" y="240"/>
</wire> </wire>
<wire>
<p1 x="140" y="100"/>
<p2 x="140" y="140"/>
</wire>
<wire>
<p1 x="140" y="-140"/>
<p2 x="140" y="-100"/>
</wire>
<wire>
<p1 x="140" y="440"/>
<p2 x="140" y="480"/>
</wire>
<wire>
<p1 x="140" y="200"/>
<p2 x="140" y="240"/>
</wire>
<wire>
<p1 x="140" y="780"/>
<p2 x="140" y="820"/>
</wire>
<wire>
<p1 x="140" y="540"/>
<p2 x="140" y="580"/>
</wire>
</wires> </wires>
</circuit> </circuit>

View File

@ -22,12 +22,15 @@ import java.util.NoSuchElementException;
* @author hneemann * @author hneemann
*/ */
public class TestResult { public class TestResult {
private static final int MAX_RESULTS = 1 << 10;
private static final int ERR_RESULTS = MAX_RESULTS * 2;
private final ArrayList<String> names; private final ArrayList<String> names;
private final LineEmitter lines; private final LineEmitter lines;
private final ArrayList<Value[]> results; private final ArrayList<Value[]> results;
private boolean allPassed; private boolean allPassed;
private Exception exception; private Exception exception;
private boolean toManyResults = false;
/** /**
* Creates a new testing result * Creates a new testing result
@ -132,13 +135,20 @@ public class TestResult {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
boolean ok = true;
for (TestSignal out : outputs) { for (TestSignal out : outputs) {
MatchedValue matchedValue = new MatchedValue(row[out.index], out.value); MatchedValue matchedValue = new MatchedValue(row[out.index], out.value);
res[out.index] = matchedValue; res[out.index] = matchedValue;
if (!matchedValue.isPassed()) if (!matchedValue.isPassed()) {
allPassed = false; allPassed = false;
ok = false;
}
} }
results.add(res);
if (results.size() < (ok ? MAX_RESULTS : ERR_RESULTS))
results.add(res);
else
toManyResults = true;
} }
}, new Context()); }, new Context());
} catch (ParserException e) { } catch (ParserException e) {
@ -176,6 +186,17 @@ public class TestResult {
return allPassed; return allPassed;
} }
/**
* Indicates if there are to many entries in the table to show.
* If there are to many entries, the test results is still correct.
*
* @return true if there are missing items in the results list.
*/
public boolean isToManyResults() {
return toManyResults;
}
private int getIndexOf(String name) { private int getIndexOf(String name) {
if (name == null || name.length() == 0) if (name == null || name.length() == 0)
return -1; return -1;

View File

@ -1,10 +1,13 @@
package de.neemann.digital.testing.parser; package de.neemann.digital.testing.parser;
import de.neemann.digital.lang.Lang;
/** /**
* Repeats some inner table rows. * Repeats some inner table rows.
* Created by hneemann on 19.04.17. * Created by hneemann on 19.04.17.
*/ */
public class LineEmitterRepeat implements LineEmitter { public class LineEmitterRepeat implements LineEmitter {
private static final int MAX_LOOPS = 1 << 24;
private final String name; private final String name;
private final int size; private final int size;
@ -16,11 +19,15 @@ public class LineEmitterRepeat implements LineEmitter {
* @param name name of the loop variable * @param name name of the loop variable
* @param size number of iterations * @param size number of iterations
* @param inner the lines to repeat * @param inner the lines to repeat
* @throws ParserException if there are to many iterations
*/ */
public LineEmitterRepeat(String name, int size, LineEmitter inner) { public LineEmitterRepeat(String name, int size, LineEmitter inner) throws ParserException {
this.name = name; this.name = name;
this.size = size; this.size = size;
this.inner = inner; this.inner = inner;
if (size > MAX_LOOPS)
throw new ParserException(Lang.get("err_toManyIterations"));
} }
@Override @Override

View File

@ -94,8 +94,6 @@ public class Parser {
tok.consume(); tok.consume();
expect(Tokenizer.Token.OPEN); expect(Tokenizer.Token.OPEN);
int count = (int) parseInt(); int count = (int) parseInt();
if (count > 1 << 16)
throw new ParserException(Lang.get("err_toManyTestEntries"));
expect(Tokenizer.Token.CLOSE); expect(Tokenizer.Token.CLOSE);
list.add(new LineEmitterRepeat("n", count, parseSingleRow())); list.add(new LineEmitterRepeat("n", count, parseSingleRow()));
break; break;
@ -106,8 +104,6 @@ public class Parser {
String var = tok.getIdent(); String var = tok.getIdent();
expect(Tokenizer.Token.COMMA); expect(Tokenizer.Token.COMMA);
count = (int) parseInt(); count = (int) parseInt();
if (count > 1 << 16)
throw new ParserException(Lang.get("err_toManyTestEntries"));
expect(Tokenizer.Token.CLOSE); expect(Tokenizer.Token.CLOSE);
list.add(new LineEmitterRepeat(var, count, parseRows(Tokenizer.Token.LOOP))); list.add(new LineEmitterRepeat(var, count, parseRows(Tokenizer.Token.LOOP)));
break; break;

View File

@ -485,7 +485,7 @@ Es sind nur {1} Variablen erlaubt, es wurden jedoch {2} gefunden.</string>
<string name="err_recursiveNestingAt_N0">Die Schaltung {0} bindet sich selbst ein!</string> <string name="err_recursiveNestingAt_N0">Die Schaltung {0} bindet sich selbst ein!</string>
<string name="err_minimizationFailed">Das Ergebnis der Minimierung ist nicht korrekt! <string name="err_minimizationFailed">Das Ergebnis der Minimierung ist nicht korrekt!
Sind evtl. die Namen der Variablen nicht eindeutig?</string> Sind evtl. die Namen der Variablen nicht eindeutig?</string>
<string name="err_toManyTestEntries">Zu viele Einträge in der Testdatenmatrix.</string> <string name="err_toManyIterations">Zu viele Iterationen in einer Schleife.</string>
<string name="err_diodeNeedsPullUpResistorAtOutput">Diode benötigt am Ausgang einen PullUp-Widerstand!</string> <string name="err_diodeNeedsPullUpResistorAtOutput">Diode benötigt am Ausgang einen PullUp-Widerstand!</string>
<string name="err_diodeNeedsPullDownResistorAtOutput">Diode benötigt am Ausgang einen PullDown-Widerstand!</string> <string name="err_diodeNeedsPullDownResistorAtOutput">Diode benötigt am Ausgang einen PullDown-Widerstand!</string>
<string name="err_testSignal_N_notFound">Testsignal {0} in der Schaltung nicht gefunden!</string> <string name="err_testSignal_N_notFound">Testsignal {0} in der Schaltung nicht gefunden!</string>

View File

@ -475,7 +475,7 @@ allowed are {1} variables but {2} are found.</string>
<string name="err_recursiveNestingAt_N0">The circuit {0} imports itself!</string> <string name="err_recursiveNestingAt_N0">The circuit {0} imports itself!</string>
<string name="err_minimizationFailed">The result of the minimization is not correct! <string name="err_minimizationFailed">The result of the minimization is not correct!
The names of the variables may not be unique.</string> The names of the variables may not be unique.</string>
<string name="err_toManyTestEntries">To many entries in the test data matrix.</string> <string name="err_toManyIterations">To many iterations in a loop.</string>
<string name="err_diodeNeedsPullUpResistorAtOutput">Diode needs a pull up resistor at its output!</string> <string name="err_diodeNeedsPullUpResistorAtOutput">Diode needs a pull up resistor at its output!</string>
<string name="err_diodeNeedsPullDownResistorAtOutput">Diode needs a pull down resistor at its output!</string> <string name="err_diodeNeedsPullDownResistorAtOutput">Diode needs a pull down resistor at its output!</string>
<string name="err_testSignal_N_notFound">Test signal {0} not found in the circuit!</string> <string name="err_testSignal_N_notFound">Test signal {0} not found in the circuit!</string>