added a new test case for error cause indication

This commit is contained in:
hneemann 2017-07-22 15:46:01 +02:00
parent a0df1dc323
commit ef0886e205
5 changed files with 215 additions and 0 deletions

View File

@ -100,6 +100,7 @@ public class ModelEntry {
ioState = new IOState(values, element.getOutputs(), element);
} catch (PinException | NodeException e) {
e.setOrigin(origin);
e.setVisualElement(containingVisualElement);
throw e;
}
}

View File

@ -60,4 +60,15 @@ public class TestErrorOrigin extends TestCase {
}
}
public void testErrorMessage5() throws PinException, NodeException, ElementNotFoundException, IOException {
try {
new ToBreakRunner("/dig/errorOrigin/main5.dig");
fail();
} catch (NodeException e) {
assertNotNull(e.getVisualElement());
assertEquals("midBit.dig", e.getVisualElement().getElementName());
checkOrigin(e, "src/test/resources/dig/errorOrigin/innerBit.dig");
}
}
}

View File

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<attributes/>
<visualElements>
<visualElement>
<elementName>And</elementName>
<elementAttributes>
<entry>
<string>Inputs</string>
<int>3</int>
</entry>
</elementAttributes>
<pos x="320" y="140"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>A</string>
</entry>
</elementAttributes>
<pos x="260" y="140"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>B</string>
</entry>
</elementAttributes>
<pos x="260" y="180"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y</string>
</entry>
</elementAttributes>
<pos x="400" y="160"/>
</visualElement>
<visualElement>
<elementName>Const</elementName>
<elementAttributes>
<entry>
<string>Value</string>
<int>2</int>
</entry>
<entry>
<string>Bits</string>
<int>2</int>
</entry>
</elementAttributes>
<pos x="300" y="160"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="380" y="160"/>
<p2 x="400" y="160"/>
</wire>
<wire>
<p1 x="300" y="160"/>
<p2 x="320" y="160"/>
</wire>
<wire>
<p1 x="260" y="180"/>
<p2 x="320" y="180"/>
</wire>
<wire>
<p1 x="260" y="140"/>
<p2 x="320" y="140"/>
</wire>
</wires>
</circuit>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<attributes/>
<visualElements>
<visualElement>
<elementName>In</elementName>
<elementAttributes/>
<pos x="140" y="240"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes/>
<pos x="280" y="260"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes/>
<pos x="140" y="280"/>
</visualElement>
<visualElement>
<elementName>midBit.dig</elementName>
<elementAttributes/>
<pos x="180" y="240"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="140" y="240"/>
<p2 x="180" y="240"/>
</wire>
<wire>
<p1 x="240" y="260"/>
<p2 x="280" y="260"/>
</wire>
<wire>
<p1 x="140" y="280"/>
<p2 x="180" y="280"/>
</wire>
</wires>
</circuit>

View File

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<attributes/>
<visualElements>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>A</string>
</entry>
</elementAttributes>
<pos x="280" y="240"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>B</string>
</entry>
</elementAttributes>
<pos x="280" y="280"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Y</string>
</entry>
</elementAttributes>
<pos x="500" y="260"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="300" y="240"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="300" y="280"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="440" y="260"/>
</visualElement>
<visualElement>
<elementName>innerBit.dig</elementName>
<elementAttributes/>
<pos x="360" y="240"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="280" y="240"/>
<p2 x="300" y="240"/>
</wire>
<wire>
<p1 x="340" y="240"/>
<p2 x="360" y="240"/>
</wire>
<wire>
<p1 x="420" y="260"/>
<p2 x="440" y="260"/>
</wire>
<wire>
<p1 x="480" y="260"/>
<p2 x="500" y="260"/>
</wire>
<wire>
<p1 x="280" y="280"/>
<p2 x="300" y="280"/>
</wire>
<wire>
<p1 x="340" y="280"/>
<p2 x="360" y="280"/>
</wire>
</wires>
</circuit>