Automatically generate rust tests and doctests

Change-Id: I685d6905d8861aa3368c46eda0e783497e88b581
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/BUILD b/aos/BUILD
index d9781f9..38f3cf6 100644
--- a/aos/BUILD
+++ b/aos/BUILD
@@ -3,7 +3,7 @@
 load("@com_github_google_flatbuffers//:typescript.bzl", "flatbuffer_ts_library")
 load("//aos:flatbuffers.bzl", "cc_static_flatbuffer")
 load("//tools/build_rules:autocxx.bzl", "autocxx_library")
-load("//tools/rust:defs.bzl", "flatbuffer_rust_library", "rust_library", "rust_test")
+load("//tools/rust:defs.bzl", "flatbuffer_rust_library", "rust_library")
 
 exports_files(["aos_dump_autocomplete.sh"])
 
@@ -215,17 +215,12 @@
     ],
 )
 
-rust_test(
-    name = "init_rs_test",
-    crate = ":init_rs",
-)
-
 autocxx_library(
     name = "test_init_rs",
     testonly = True,
     srcs = ["test_init.rs"],
     crate_name = "aos_test_init",
-    docs = False,
+    gen_docs = False,
     libs = [
         "//aos/testing:tmpdir",
     ],
@@ -346,6 +341,9 @@
         ":configuration_fbs",
     ],
     override_cc_toolchain = "@llvm_toolchain//:cc-clang-x86_64-linux",
+    test_data = [
+        "//aos/testdata:test_configs",
+    ],
     visibility = ["//visibility:public"],
     deps = [
         ":configuration_rust_fbs",
@@ -354,14 +352,6 @@
     ],
 )
 
-rust_test(
-    name = "configuration_rs_test",
-    crate = ":configuration_rs",
-    data = [
-        "//aos/testdata:test_configs",
-    ],
-)
-
 flatbuffer_ts_library(
     name = "json_to_flatbuffer_fbs_ts",
     srcs = ["json_to_flatbuffer.fbs"],
@@ -521,20 +511,15 @@
     name = "flatbuffers_rs",
     srcs = ["flatbuffers.rs"],
     crate_name = "aos_flatbuffers",
+    test_deps = [
+        ":json_to_flatbuffer_rust_fbs",
+    ],
     visibility = ["//visibility:public"],
     deps = [
         "@com_github_google_flatbuffers//rust",
     ],
 )
 
-rust_test(
-    name = "flatbuffers_rs_test",
-    crate = ":flatbuffers_rs",
-    deps = [
-        ":json_to_flatbuffer_rust_fbs",
-    ],
-)
-
 cc_test(
     name = "configuration_test",
     srcs = [
diff --git a/aos/events/BUILD b/aos/events/BUILD
index 015c316..2793195 100644
--- a/aos/events/BUILD
+++ b/aos/events/BUILD
@@ -3,7 +3,7 @@
 load("//aos:flatbuffers.bzl", "cc_static_flatbuffer")
 load("//aos:config.bzl", "aos_config")
 load("//tools/build_rules:autocxx.bzl", "autocxx_library")
-load("//tools/rust:defs.bzl", "flatbuffer_rust_library", "rust_binary", "rust_doc_test", "rust_library", "rust_test")
+load("//tools/rust:defs.bzl", "flatbuffer_rust_library", "rust_binary", "rust_library", "rust_test")
 
 package(default_visibility = ["//visibility:public"])
 
@@ -146,6 +146,10 @@
     name = "event_loop_runtime",
     srcs = ["event_loop_runtime.rs"],
     crate_name = "aos_events_event_loop_runtime",
+    doctest_deps = [
+        ":pong_rust_fbs",
+    ],
+    gen_tests = False,
     libs = [
         ":event_loop_runtime_cc",
     ],
@@ -163,20 +167,11 @@
     ],
 )
 
-rust_doc_test(
-    name = "event_loop_runtime_doc_test",
-    crate = ":event_loop_runtime",
-    target_compatible_with = ["@platforms//cpu:x86_64"],
-    deps = [
-        ":pong_rust_fbs",
-    ],
-)
-
 autocxx_library(
     name = "event_loop_runtime_test_lib_rs",
     testonly = True,
     srcs = ["event_loop_runtime_test_lib.rs"],
-    docs = False,
+    gen_docs = False,
     libs = [
         ":event_loop",
     ],
@@ -618,6 +613,15 @@
         "//aos:flatbuffers_rs",
         "@crate_index//:futures",
     ],
+    test_data = [
+        ":multinode_pingpong_test_combined_config",
+    ],
+    test_deps = [
+        ":ping_rust_fbs",
+        "//aos:test_init_rs",
+        "@crate_index//:futures",
+        "@rules_rust//tools/runfiles",
+    ],
     visibility = ["//visibility:public"],
     deps = [
         ":event_loop_runtime",
@@ -626,24 +630,14 @@
     ],
 )
 
-rust_test(
-    name = "simulated_event_loop_rs_test",
-    crate = ":simulated_event_loop_rs",
-    data = [
-        ":multinode_pingpong_test_combined_config",
-    ],
-    deps = [
-        ":ping_rust_fbs",
-        "//aos:test_init_rs",
-        "@crate_index//:futures",
-        "@rules_rust//tools/runfiles",
-    ],
-)
-
 autocxx_library(
     name = "shm_event_loop_rs",
     srcs = ["shm_event_loop.rs"],
     crate_name = "aos_events_shm_event_loop",
+    doctest_deps = [
+        ":ping_rust_fbs",
+        ":pong_rust_fbs",
+    ],
     libs = [
         ":shm_event_loop",
         ":shm_event_loop_for_rust",
@@ -654,32 +648,17 @@
         "//aos:configuration_rust_fbs",
         "//aos:flatbuffers_rs",
     ],
-    visibility = ["//visibility:public"],
-    deps = [
-        ":event_loop_runtime",
-        "//aos:configuration_rs",
-    ],
-)
-
-rust_test(
-    name = "shm_event_loop_rs_test",
-    crate = ":shm_event_loop_rs",
-    data = [":pingpong_config"],
-    deps = [
+    test_data = [":pingpong_config"],
+    test_deps = [
         ":ping_rust_fbs",
         "//aos:test_init_rs",
         "@crate_index//:futures",
         "@rules_rust//tools/runfiles",
     ],
-)
-
-rust_doc_test(
-    name = "shm_event_loop_rs_doc_test",
-    crate = ":shm_event_loop_rs",
-    target_compatible_with = ["@platforms//cpu:x86_64"],
+    visibility = ["//visibility:public"],
     deps = [
-        ":ping_rust_fbs",
-        ":pong_rust_fbs",
+        ":event_loop_runtime",
+        "//aos:configuration_rs",
     ],
 )