Open-source Bazel integration tests

It is a first batch of integration tests for Bazel. They tests some
basic behaviors and nominal cases of Bazel rules (especially they tests
the behavior of the examples provided in //examples).

--
MOS_MIGRATED_REVID=89440074
diff --git a/examples/BUILD b/examples/BUILD
new file mode 100644
index 0000000..5551cb2
--- /dev/null
+++ b/examples/BUILD
@@ -0,0 +1,15 @@
+package(default_visibility = ["//visibility:public"])
+
+filegroup(
+    name = "srcs",
+    srcs = [
+        "//examples/cpp:srcs",
+        "//examples/gen:srcs",
+        "//examples/go:srcs",
+        "//examples/java-native:srcs",
+        "//examples/java-skylark:srcs",
+        "//examples/objc:srcs",
+        "//examples/proto:srcs",
+        "//examples/py:srcs",
+    ],
+)
diff --git a/examples/cpp/BUILD b/examples/cpp/BUILD
index 195bbb3..7c0543e 100644
--- a/examples/cpp/BUILD
+++ b/examples/cpp/BUILD
@@ -23,3 +23,11 @@
     srcs = ["hello-fail.cc"],
     deps = [":hello-lib"],
 )
+
+filegroup(
+    name = "srcs",
+    srcs = ["BUILD"] + glob([
+        "**/*.cc",
+        "**/*.h",
+    ]),
+)
diff --git a/examples/gen/BUILD b/examples/gen/BUILD
index 988fa8b..e7c81e9 100644
--- a/examples/gen/BUILD
+++ b/examples/gen/BUILD
@@ -12,3 +12,11 @@
     outs = ["genrule.txt"],
     cmd = "cat $(SRCS) > $@",
 )
+
+filegroup(
+    name = "srcs",
+    srcs = [
+        "BUILD",
+        "genrule.txt",
+    ],
+)
diff --git a/examples/go/BUILD b/examples/go/BUILD
index dd08461..3ade6b5 100644
--- a/examples/go/BUILD
+++ b/examples/go/BUILD
@@ -12,3 +12,11 @@
     ),
     deps = ["//examples/go/lib1"],
 )
+
+filegroup(
+    name = "srcs",
+    srcs = [
+        "BUILD",
+        "//examples/go/lib1:srcs",
+    ] + glob(["**/*.go"]),
+)
diff --git a/examples/go/lib1/BUILD b/examples/go/lib1/BUILD
index fb40077..f65620c 100644
--- a/examples/go/lib1/BUILD
+++ b/examples/go/lib1/BUILD
@@ -22,3 +22,8 @@
     name = "fail_test",
     srcs = ["fail_test.go"],
 )
+
+filegroup(
+    name = "srcs",
+    srcs = ["BUILD"] + glob(["**/*.go"]),
+)
diff --git a/examples/java-native/BUILD b/examples/java-native/BUILD
new file mode 100644
index 0000000..b698a88
--- /dev/null
+++ b/examples/java-native/BUILD
@@ -0,0 +1,10 @@
+package(default_visibility = ["//visibility:public"])
+
+filegroup(
+    name = "srcs",
+    srcs = [
+        "//examples/java-native/src/main/java/com/example/myproject:srcs",
+        "//examples/java-native/src/main/resources:srcs",
+        "//examples/java-native/src/test/java/com/example/myproject:srcs",
+    ],
+)
diff --git a/examples/java-native/src/main/java/com/example/myproject/BUILD b/examples/java-native/src/main/java/com/example/myproject/BUILD
index 7176253..96087776 100644
--- a/examples/java-native/src/main/java/com/example/myproject/BUILD
+++ b/examples/java-native/src/main/java/com/example/myproject/BUILD
@@ -22,3 +22,8 @@
     srcs = ["Greeter.java"],
     resources = ["//examples/java-native/src/main/resources:greeting"],
 )
+
+filegroup(
+    name = "srcs",
+    srcs = ["BUILD"] + glob(["**/*.java"]),
+)
diff --git a/examples/java-native/src/main/resources/BUILD b/examples/java-native/src/main/resources/BUILD
index 8347a35..97aa937 100644
--- a/examples/java-native/src/main/resources/BUILD
+++ b/examples/java-native/src/main/resources/BUILD
@@ -4,3 +4,11 @@
     name = "greeting",
     srcs = ["greeting.txt"],
 )
+
+filegroup(
+    name = "srcs",
+    srcs = [
+        "BUILD",
+        "greeting.txt",
+    ],
+)
diff --git a/examples/java-native/src/test/java/com/example/myproject/BUILD b/examples/java-native/src/test/java/com/example/myproject/BUILD
index 8381076..9a91a82 100644
--- a/examples/java-native/src/test/java/com/example/myproject/BUILD
+++ b/examples/java-native/src/test/java/com/example/myproject/BUILD
@@ -31,3 +31,9 @@
         "//third_party:junit4",
     ],
 )
+
+filegroup(
+    name = "srcs",
+    srcs = glob(["**/*.java"]) + ["BUILD"],
+    visibility = ["//examples/java-native:__pkg__"],
+)
diff --git a/examples/java-skylark/BUILD b/examples/java-skylark/BUILD
new file mode 100644
index 0000000..9a76f2b
--- /dev/null
+++ b/examples/java-skylark/BUILD
@@ -0,0 +1,10 @@
+package(default_visibility = ["//visibility:public"])
+
+filegroup(
+    name = "srcs",
+    srcs = [
+        "//examples/java-skylark/src/main/java/com/example/myproject:srcs",
+        "//examples/java-skylark/src/main/resources:srcs",
+        "//examples/java-skylark/src/test/java/com/example/myproject:srcs",
+    ],
+)
diff --git a/examples/java-skylark/src/main/java/com/example/myproject/BUILD b/examples/java-skylark/src/main/java/com/example/myproject/BUILD
index 10ca2d4..70618aa 100644
--- a/examples/java-skylark/src/main/java/com/example/myproject/BUILD
+++ b/examples/java-skylark/src/main/java/com/example/myproject/BUILD
@@ -19,3 +19,8 @@
     srcs = ["Greeter.java"],
     data = ["//examples/java-skylark/src/main/resources:greeting"],
 )
+
+filegroup(
+    name = "srcs",
+    srcs = ["BUILD"] + glob(["**/*.java"]),
+)
diff --git a/examples/java-skylark/src/main/resources/BUILD b/examples/java-skylark/src/main/resources/BUILD
index 8347a35..97aa937 100644
--- a/examples/java-skylark/src/main/resources/BUILD
+++ b/examples/java-skylark/src/main/resources/BUILD
@@ -4,3 +4,11 @@
     name = "greeting",
     srcs = ["greeting.txt"],
 )
+
+filegroup(
+    name = "srcs",
+    srcs = [
+        "BUILD",
+        "greeting.txt",
+    ],
+)
diff --git a/examples/java-skylark/src/test/java/com/example/myproject/BUILD b/examples/java-skylark/src/test/java/com/example/myproject/BUILD
index 36c4cc3..1d6b9c3 100644
--- a/examples/java-skylark/src/test/java/com/example/myproject/BUILD
+++ b/examples/java-skylark/src/test/java/com/example/myproject/BUILD
@@ -14,3 +14,9 @@
     srcs = ["Fail.java"],
     main_class = "com.example.myproject.Fail",
 )
+
+filegroup(
+    name = "srcs",
+    srcs = glob(["**/*.java"]) + ["BUILD"],
+    visibility = ["//examples/java-skylark:__pkg__"],
+)
diff --git a/examples/objc/BUILD b/examples/objc/BUILD
index 0499d61..3480775 100644
--- a/examples/objc/BUILD
+++ b/examples/objc/BUILD
@@ -104,3 +104,12 @@
         "cp $${TMPDIR}'/Run 1/hello_instruments.png' $(@)",
     tags = ["requires-darwin"],
 )
+
+filegroup(
+    name = "srcs",
+    srcs = glob([
+        "**",
+        "BUILD",
+    ]),
+    visibility = ["//examples:__pkg__"],
+)
diff --git a/examples/proto/BUILD b/examples/proto/BUILD
index 2228fc4..cae538d 100644
--- a/examples/proto/BUILD
+++ b/examples/proto/BUILD
@@ -6,3 +6,11 @@
     name = "test_proto",
     src = "test.proto",
 )
+
+filegroup(
+    name = "srcs",
+    srcs = [
+        "BUILD",
+        "test.proto",
+    ],
+)
diff --git a/examples/py/BUILD b/examples/py/BUILD
index 6eecd4a..3963387 100644
--- a/examples/py/BUILD
+++ b/examples/py/BUILD
@@ -12,3 +12,8 @@
     srcs = ["bin.py"],
     deps = [":lib"],
 )
+
+filegroup(
+    name = "srcs",
+    srcs = ["BUILD"] + glob(["**/*.py"]),
+)