C++: Tests for cc_binary linking shared libraries

This is guarded behind the --experimental_cc_shared_library flag

PiperOrigin-RevId: 283982821
Change-Id: Ifec330c01d7b480b641f8432ce94175291e79238
diff --git a/examples/test_cc_shared_library/BUILD b/examples/test_cc_shared_library/BUILD
index a1c4a5a..137a9ca 100644
--- a/examples/test_cc_shared_library/BUILD
+++ b/examples/test_cc_shared_library/BUILD
@@ -1,9 +1,17 @@
-load("//cc:defs.bzl", "cc_library")
+load("//cc:defs.bzl", "cc_binary", "cc_library")
 load("//examples:experimental_cc_shared_library.bzl", "cc_shared_library")
 
+cc_binary(
+    name = "binary",
+    srcs = ["main.cc"],
+    dynamic_deps = ["foo_so"],
+    deps = ["foo"],
+)
+
 cc_shared_library(
     name = "foo_so",
     dynamic_deps = ["bar_so"],
+    preloaded_deps = ["preloaded_dep"],
     visibility_file = "foo.lds",
     exports = [
         "foo",
@@ -26,10 +34,18 @@
 )
 
 cc_library(
+    name = "preloaded_dep",
+    srcs = ["preloaded_dep.cc"],
+    hdrs = ["preloaded_dep.h"],
+)
+
+cc_library(
     name = "foo",
     srcs = ["foo.cc"],
+    hdrs = ["foo.h"],
     linked_statically_by = ["//examples/test_cc_shared_library:foo_so"],
     deps = [
+        "preloaded_dep",
         "bar",
         "baz",
         # Not exported.
@@ -40,12 +56,14 @@
 cc_library(
     name = "baz",
     srcs = ["baz.cc"],
+    hdrs = ["baz.h"],
     linked_statically_by = ["//examples/test_cc_shared_library:foo_so"],
 )
 
 cc_library(
     name = "qux",
     srcs = ["qux.cc"],
+    hdrs = ["qux.h"],
     linked_statically_by = ["//examples/test_cc_shared_library:foo_so"],
 )
 
@@ -70,6 +88,7 @@
 cc_library(
     name = "bar2",
     srcs = ["bar2.cc"],
+    hdrs = ["bar2.h"],
     linked_statically_by = [
         "//examples/test_cc_shared_library:bar_so",
         "//examples/test_cc_shared_library:foo_so",
@@ -79,6 +98,7 @@
 cc_library(
     name = "bar3",
     srcs = ["bar3.cc"],
+    hdrs = ["bar3.h"],
     linked_statically_by = [
         "//examples/test_cc_shared_library:bar_so",
         "//examples/test_cc_shared_library:foo_so",
@@ -88,6 +108,7 @@
 cc_library(
     name = "bar4",
     srcs = ["bar4.cc"],
+    hdrs = ["bar4.h"],
     linked_statically_by = [
         "//examples/test_cc_shared_library:bar_so",
         "//examples/test_cc_shared_library:foo_so",
@@ -99,6 +120,7 @@
     srcs = ["cc_shared_library_integration_test.sh"],
     data = [
         ":bar_so",
+        ":binary",
         ":foo_so",
     ],
 )