Testanleitung: eigenes X-Display je Projekt fuer Parallelbetrieb
Damit mehrere Agenten gleichzeitig Oberflaechen testen koennen, bekommt jedes Projekt eine feste Displaynummer (Vorgabe Richard): :99 PolyTrader, :98 Predictalytics, :97 ClawdDotNet, :96 IBKRTrader, :95 und absteigend fuer kuenftige Projekte. Zwei Prozesse auf demselben Display sehen die Fenster des jeweils anderen - Klicks landen im falschen Programm, Aufnahmen zeigen fremde Anwendungen. Beim Durcharbeiten fielen zwei weitere Kollisionspunkte auf, die zum Parallelbetrieb dazugehoeren und mit aufgenommen wurden: - Screenshot- und Logdateien in /tmp brauchen ein Projektpraefix. /tmp/v_1.png ueberschreiben sich parallel laufende Projekte gegenseitig. - "xvfb-run -a" darf NICHT mehr verwendet werden: Das -a sucht sich selbst ein freies Display und beginnt dabei bei :99 - ausgerechnet PolyTraders Nummer. Stattdessen "xvfb-run -n <nummer>". Die Warnung ist nicht theoretisch: Auf der VM lag ein verwaister X98-Socket, entstanden durch genau so einen "xvfb-run -a"-Aufruf beim smoke-ui-Test, als :99 belegt war. Er blockierte Predictalytics' reservierte Nummer, ohne dass ein Prozess lief. Entfernt, und die Anleitung erklaert jetzt, wie man verwaiste Sockets erkennt (ls /tmp/.X11-unix/ gegen pgrep -a Xvfb lesen) und aufraeumt. Weiter ergaenzt: - pkill nie ohne Displaynummer - "pkill Xvfb" erschlaegt die Sitzungen aller anderen Projekte. - DISPLAY in jedem Skript setzen, sonst landet man auf :0, dem echten Desktop. - Die Skriptvorlage hat jetzt einen Kopf mit PROJEKT/DISP/FENSTER; das ist alles, was sich je Projekt unterscheidet. Praktisch gegengetestet. - Aufraeumabschnitt und Belegungsliste um Displays und Verzeichnisse erweitert. Nebenbei aufgefallen: Das PolyTrader-Publish lag unter ~/pt-test statt ~/polytrader-test und verletzte damit die eigene Verzeichniskonvention. Umbenannt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
<UserControl xmlns="https://github.com/avaloniaui"
|
||||
<UserControl xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:vm="using:PolyTrader.App.Avalonia.ViewModels"
|
||||
x:Class="PolyTrader.App.Avalonia.Controls.SettingsEditor">
|
||||
@@ -60,6 +60,25 @@
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
<!-- Freitext ueber mehrere Zeilen (Beschreibung, Begruendung).
|
||||
Fest sechs Zeilen hoch und mit Umbruch - einzeilig zeigte das
|
||||
Feld von 1000 moeglichen Zeichen nur einen Bruchteil (B-14). -->
|
||||
<DataTemplate DataType="vm:MultilineTextSettingsField">
|
||||
<Grid Classes="fieldRow" ColumnDefinitions="210,*">
|
||||
<TextBlock Grid.Column="0" Classes="fieldLabel"
|
||||
Text="{Binding Label}" VerticalAlignment="Top" Margin="0,6,12,0" />
|
||||
<StackPanel Grid.Column="1">
|
||||
<TextBox Text="{Binding Value, Mode=TwoWay}" IsEnabled="{Binding IsEditable}"
|
||||
AcceptsReturn="True" TextWrapping="Wrap"
|
||||
MinHeight="96" MaxHeight="200"
|
||||
VerticalContentAlignment="Top"
|
||||
ScrollViewer.VerticalScrollBarVisibility="Auto" />
|
||||
<TextBlock Classes="fieldHint" Text="{Binding Description}"
|
||||
IsVisible="{Binding HasDescription}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
<!-- Ganzzahl -->
|
||||
<DataTemplate DataType="vm:IntSettingsField">
|
||||
<Grid Classes="fieldRow" ColumnDefinitions="210,*">
|
||||
@@ -73,6 +92,19 @@
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
<!-- Dezimalzahl (Betraege, Prozentschwellen, Preisgrenzen) -->
|
||||
<DataTemplate DataType="vm:DecimalSettingsField">
|
||||
<Grid Classes="fieldRow" ColumnDefinitions="210,*">
|
||||
<TextBlock Grid.Column="0" Classes="fieldLabel" Text="{Binding Label}" />
|
||||
<StackPanel Grid.Column="1">
|
||||
<TextBox Text="{Binding Value, Mode=TwoWay}" IsEnabled="{Binding IsEditable}"
|
||||
MaxWidth="160" HorizontalAlignment="Left" />
|
||||
<TextBlock Classes="fieldHint" Text="{Binding Description}"
|
||||
IsVisible="{Binding HasDescription}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
<!-- Ja/Nein -->
|
||||
<DataTemplate DataType="vm:BoolSettingsField">
|
||||
<Grid Classes="fieldRow" ColumnDefinitions="210,*">
|
||||
|
||||
Reference in New Issue
Block a user