This repository has been archived on 2026-08-16. You can view files and clone it, but cannot push or open issues or pull requests.
ollie-kde/test-peers.sh

57 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
# Test peer-to-peer agent communication
# Run while the daemon is running: make run
set -e
SERVICE="org.ollie.SessionManager"
OBJ="/org/ollie/SessionManager"
IFACE="org.ollie.SessionManager"
echo "=== Create session A ==="
A=$(dbus-send --session --dest=$SERVICE --type=method_call --print-reply \
$OBJ $IFACE.CreateSession string:"$HOME" string:"" string:"" string:"default" string:"" string:"" | grep 'string "' | head -1 | sed 's/.*string "//;s/"//')
echo "A: $A"
echo "=== Create session B ==="
B=$(dbus-send --session --dest=$SERVICE --type=method_call --print-reply \
$OBJ $IFACE.CreateSession string:"$HOME" string:"" string:"" string:"default" string:"" string:"" | grep 'string "' | head -1 | sed 's/.*string "//;s/"//')
echo "B: $B"
echo ""
echo "=== PeerAdd: A registers B ==="
dbus-send --session --dest=$SERVICE --type=method_call --print-reply \
$OBJ $IFACE.PeerAdd string:"$A" string:"$B"
echo ""
echo "=== PeerList ==="
dbus-send --session --dest=$SERVICE --type=method_call --print-reply \
$OBJ $IFACE.PeerList string:"$A"
echo ""
echo "=== PeerSubmit: A sends to B ==="
dbus-send --session --dest=$SERVICE --type=method_call --print-reply \
$OBJ $IFACE.PeerSubmit string:"$A" string:"$B" \
string:"Reply with exactly: PEER_OK"
echo ""
echo "=== Waiting 8s for B to respond... ==="
sleep 8
echo ""
echo "=== B's chat ==="
dbus-send --session --dest=$SERVICE --type=method_call --print-reply \
$OBJ $IFACE.GetChat string:"$B" int64:0
echo ""
echo "=== PeerRemove ==="
dbus-send --session --dest=$SERVICE --type=method_call --print-reply \
$OBJ $IFACE.PeerRemove string:"$A" string:"$B"
echo ""
echo "=== Cleanup ==="
dbus-send --session --dest=$SERVICE --type=method_call --print-reply \
$OBJ $IFACE.KillSession string:"$A" > /dev/null
dbus-send --session --dest=$SERVICE --type=method_call --print-reply \
$OBJ $IFACE.KillSession string:"$B" > /dev/null
echo "=== DONE ==="