summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2022-04-30 09:12:40 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2022-04-30 09:12:40 +0200
commit1f3b133321a71fa32556fb6d9e6611967c381ff0 (patch)
tree3b726f8b37a1ec4489d045e2ce3009cabe2a4844
parentda522ec13bf26defffddfa8ef0c20cc2b3fd0845 (diff)
Test: device and owner identity updates after discovery
-rw-r--r--src/main.cpp18
-rw-r--r--test/discovery.test16
2 files changed, 32 insertions, 2 deletions
diff --git a/src/main.cpp b/src/main.cpp
index d403d29..84dfe2a 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -229,6 +229,23 @@ void watchSharedIdentity(const vector<string> &)
});
}
+void updateLocalIdentity(const vector<string> & params)
+{
+ if (params.size() != 1) {
+ throw invalid_argument("usage: update-local-identity <name>");
+ }
+
+ auto nh = h->update([&params] (const Stored<LocalState> & loc) {
+ auto st = loc.ref().storage();
+
+ auto b = loc->identity()->modify();
+ b.name(params[0]);
+ return st.store(loc->identity(b.commit()));
+ });
+ if (nh)
+ *h = *nh;
+}
+
void updateSharedIdentity(const vector<string> & params)
{
if (params.size() != 1) {
@@ -270,6 +287,7 @@ vector<Command> commands = {
{ "stop-server", stopServer },
{ "watch-local-identity", watchLocalIdentity },
{ "watch-shared-identity", watchSharedIdentity },
+ { "update-local-identity", updateLocalIdentity },
{ "update-shared-identity", updateSharedIdentity },
{ "attach-to", attachTo },
{ "attach-accept", attachAccept },
diff --git a/test/discovery.test b/test/discovery.test
index 60db1dc..b477dc0 100644
--- a/test/discovery.test
+++ b/test/discovery.test
@@ -1,7 +1,7 @@
test:
spawn on node1 as p1
spawn on node2 as p2
- send "create-identity Device1" to p1
+ send "create-identity Device1 Owner" to p1
send "create-identity Device2" to p2
send "start-server" to p1
send "start-server" to p2
@@ -10,4 +10,16 @@ test:
/peer 1 id Device2/
expect from p2:
/peer 1 addr 192.168.0.11 29665/
- /peer 1 id Device1/
+ /peer 1 id Device1 Owner/
+
+ send "update-local-identity Device1A" to p1
+ expect /peer 1 id Device1A Owner/ from p2
+
+ send "update-shared-identity OwnerA" to p1
+ expect /peer 1 id Device1A OwnerA/ from p2
+
+ send "update-local-identity Device1B" to p1
+ expect /peer 1 id Device1B OwnerA/ from p2
+
+ send "update-shared-identity OwnerB" to p1
+ expect /peer 1 id Device1B OwnerB/ from p2