test(java-oracle): measure the getter defaults XMLEncoder refers to

XMLEncoder shares equal Integer objects, so a node's x coordinate can be
written as a reference to the result of JSidebarButton.getIconTextGap().
GetterDefaults constructs the classes like XMLDecoder does and records
what the getters return (packages/fls/src/javaDefaults.json).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-29 20:13:28 +00:00
co-authored by Claude Opus 5.5
parent 0c843dc3de
commit fc9d865820
4 changed files with 107 additions and 1 deletions
+23 -1
View File
@@ -21,7 +21,7 @@ if [ ! -f "$upstream/target/filius.jar" ]; then
fi
classpath="$upstream/target/filius.jar:$upstream/target/lib/*"
mkdir -p "$here/.build"
javac -d "$here/.build" -cp "$classpath" "$here/src/FlsOracle.java"
javac -encoding UTF-8 -d "$here/.build" -cp "$classpath" "$here/src/FlsOracle.java" "$here/src/GetterDefaults.java"
# FILIUS writes its settings below $HOME; keep them out of the real one.
mkdir -p "$here/.build/home"
# Removed first: a crashed run must not leave the previous result standing.
@@ -29,3 +29,25 @@ rm -f "$root/corpus/corpus.java.json"
HOME="$here/.build/home" xvfb-run -a java -cp "$classpath:$here/.build" FlsOracle \
"$root/corpus" "$root/corpus/corpus.java.json" 2>&1 | grep -v 'logback\|^$' || true
test -s "$root/corpus/corpus.java.json"
# Getter defaults for the XMLEncoder references (packages/fls/src/javaDefaults.json).
defaults="$root/packages/fls/src/javaDefaults.json"
rm -f "$defaults"
HOME="$here/.build/home" xvfb-run -a java -cp "$classpath:$here/.build" GetterDefaults "$defaults" \
filius.gui.netzwerksicht.JSidebarButton#iconTextGap \
filius.gui.netzwerksicht.JSidebarButton#verticalTextPosition \
filius.gui.netzwerksicht.JSidebarButton#displayedMnemonicIndex \
filius.gui.netzwerksicht.JSidebarButton#debugGraphicsOptions \
filius.gui.netzwerksicht.JSidebarButton#enabled \
java.lang.ThreadGroup#maxPriority \
filius.hardware.knoten.Rechner#maxLayerOfOperation \
filius.hardware.knoten.Notebook#maxLayerOfOperation \
filius.hardware.knoten.Vermittlungsrechner#maxLayerOfOperation \
filius.hardware.knoten.Gateway#maxLayerOfOperation \
filius.software.clientserver.ServerBaustein#port \
filius.software.dhcp.DHCPServer#port \
filius.software.dns.DNSServer#port \
filius.software.rip.RIPServer#port \
filius.software.www.WebServer#port \
2>&1 | grep -v 'logback\|^$' || true
test -s "$defaults"