feat(fls): write the topology of a .fls, loaded by Java as the original
topologyWriter.ts writes konfiguration.xml from Java's view of a project: the version line, the node items (label position, device with name, host label flags, interfaces or ports), the cable items and the documentation items. What a device's constructor makes is changed through getters, as XMLEncoder does, and more is added; fewer than it makes set the list anew. Cable ends name the port objects the getters return (the writer now names a getter's result, <void id="Port0" property="port"/>), and each cable carries the nodes the editor draws it between. Checked by Java against Java: every corpus file, read and written again, loads in Java FILIUS (the oracle's loading method, --sha256 ties its result to the written bytes) to the same devices, names, positions, interfaces, cables and documentation as the original; so does a synthetic topology with what the corpus never sets. The oracle and the reader now also report a cable's drawing ends (JCablePanel ziel1/ziel2): in the corpus the nodes it joins, for all 183 cables. Mutation probes rewrite the files and let Java load each mutant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -88,3 +88,13 @@ beans="$root/packages/fls/test/beans"
|
||||
rm -f "$beans/beans.java.json"
|
||||
HOME="$here/.build/home" xvfb-run -a java -cp "$classpath:$here/.build" BeansDump "$beans" "$beans/beans.java.json" 2>&1 | grep -v 'logback\|^$' || true
|
||||
test -s "$beans/beans.java.json"
|
||||
|
||||
# What Java loads from the files packages/fls writes (topologyWriter.test.ts
|
||||
# writes them with UPDATE_WRITTEN=1; the files are not checked in, their
|
||||
# SHA-256 is).
|
||||
written="$root/packages/fls/test/written"
|
||||
if [ -d "$written" ]; then
|
||||
rm -f "$written.java.json"
|
||||
HOME="$here/.build/home" xvfb-run -a java -cp "$classpath:$here/.build" FlsOracle "$written" "$written.java.json" --sha256 2>&1 | grep -v 'logback\|^$' || true
|
||||
test -s "$written.java.json"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user