pw_rpc: Tests for the ID calculation

Python and C++ tests for the hash function used to calculate service and
method IDs.

Change-Id: Ic02e1dd1bfef22947553d375cfee87d4a2b68177
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/20601
Commit-Queue: Wyatt Hepler <hepler@google.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
diff --git a/pw_rpc/BUILD.gn b/pw_rpc/BUILD.gn
index 9fa3212..ef1884f 100644
--- a/pw_rpc/BUILD.gn
+++ b/pw_rpc/BUILD.gn
@@ -161,6 +161,7 @@
     ":base_server_writer_test",
     ":channel_test",
     ":client_test",
+    ":ids_test",
     ":packet_test",
     ":server_test",
     ":service_test",
@@ -190,9 +191,19 @@
   sources = [ "channel_test.cc" ]
 }
 
-pw_test("hash_test") {
-  deps = [ ":server" ]
-  sources = [ "hash_test.cc" ]
+action("generate_ids_test") {
+  outputs = [ "$target_gen_dir/generated_ids_test.cc" ]
+  script = "py/ids_test.py"
+  args = [ "--generate-cc-test" ] + rebase_path(outputs)
+  deps = [ "$dir_pw_build/py" ]
+}
+
+pw_test("ids_test") {
+  deps = [
+    ":generate_ids_test",
+    ":server",
+  ]
+  sources = get_target_outputs(":generate_ids_test")
 }
 
 pw_test("packet_test") {