Move the docker tests in src/test/docker

This is a better location and tools/cpp is packaged in embedded_tools that make the test ends-up in embedded_tools, which is requiring network access
to build embedded_tools!

Side-effect: have to correctly mock the bazel workspace file on a couple
of tests.

This is blocking on https://bazel-review.googlesource.com/c/12350/

PiperOrigin-RevId: 160265524
diff --git a/BUILD b/BUILD
index 5b7f88b..14e114c 100644
--- a/BUILD
+++ b/BUILD
@@ -40,7 +40,7 @@
     srcs = [":WORKSPACE"],
     visibility = [
         "//src/test/shell/bazel:__subpackages__",
-        "//tools/cpp/test:__pkg__",
+        "//src/test/docker:__pkg__",
     ],
 )
 
diff --git a/WORKSPACE b/WORKSPACE
index c083719..dd6ef4e 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -33,8 +33,8 @@
     actual = "//third_party/py/six",
 )
 
-# For tools/cpp/test/...
-load("//tools/cpp/test:docker_repository.bzl", "docker_repository")
+# For src/test/docker/...
+load("//src/test/docker:docker_repository.bzl", "docker_repository")
 
 docker_repository()
 
diff --git a/src/BUILD b/src/BUILD
index 4160591..589964f 100644
--- a/src/BUILD
+++ b/src/BUILD
@@ -360,6 +360,7 @@
         "//src/objc_tools/bundlemerge:srcs",
         "//src/objc_tools/plmerge:srcs",
         "//src/test/cpp:srcs",
+        "//src/test/docker:srcs",
         "//src/test/gen:srcs",
         "//src/test/native:srcs",
         "//src/test/java/com/google/devtools/build/android:srcs",
diff --git a/tools/cpp/test/BUILD b/src/test/docker/BUILD
similarity index 97%
rename from tools/cpp/test/BUILD
rename to src/test/docker/BUILD
index 68b18ad..7393126 100644
--- a/tools/cpp/test/BUILD
+++ b/src/test/docker/BUILD
@@ -81,6 +81,7 @@
         local = 1,
         main = "docker_test.py",
         tags = [
+            "docker",
             "exclusive",
             "local",
         ],
@@ -97,5 +98,5 @@
 filegroup(
     name = "srcs",
     srcs = glob(["**"]),
-    visibility = ["//tools/cpp:__pkg__"],
+    visibility = ["//src:__pkg__"],
 )
diff --git a/tools/cpp/test/Dockerfile.centos6.7 b/src/test/docker/Dockerfile.centos6.7
similarity index 100%
rename from tools/cpp/test/Dockerfile.centos6.7
rename to src/test/docker/Dockerfile.centos6.7
diff --git a/tools/cpp/test/Dockerfile.debian-stretch b/src/test/docker/Dockerfile.debian-stretch
similarity index 100%
rename from tools/cpp/test/Dockerfile.debian-stretch
rename to src/test/docker/Dockerfile.debian-stretch
diff --git a/tools/cpp/test/Dockerfile.fedora23 b/src/test/docker/Dockerfile.fedora23
similarity index 100%
rename from tools/cpp/test/Dockerfile.fedora23
rename to src/test/docker/Dockerfile.fedora23
diff --git a/tools/cpp/test/Dockerfile.ubuntu-15.04 b/src/test/docker/Dockerfile.ubuntu-15.04
similarity index 100%
rename from tools/cpp/test/Dockerfile.ubuntu-15.04
rename to src/test/docker/Dockerfile.ubuntu-15.04
diff --git a/tools/cpp/test/Dockerfile.ubuntu-16.04 b/src/test/docker/Dockerfile.ubuntu-16.04
similarity index 100%
rename from tools/cpp/test/Dockerfile.ubuntu-16.04
rename to src/test/docker/Dockerfile.ubuntu-16.04
diff --git a/tools/cpp/test/docker_repository.bzl b/src/test/docker/docker_repository.bzl
similarity index 100%
rename from tools/cpp/test/docker_repository.bzl
rename to src/test/docker/docker_repository.bzl
diff --git a/tools/cpp/test/docker_test.py b/src/test/docker/docker_test.py
similarity index 100%
rename from tools/cpp/test/docker_test.py
rename to src/test/docker/docker_test.py
diff --git a/src/test/shell/bazel/apple/bazel_apple_test.sh b/src/test/shell/bazel/apple/bazel_apple_test.sh
index 5fbd189..51a9718 100755
--- a/src/test/shell/bazel/apple/bazel_apple_test.sh
+++ b/src/test/shell/bazel/apple/bazel_apple_test.sh
@@ -40,8 +40,7 @@
   XCODE_VERSION=$(cat xcode_versions | grep -m1 '7\|8')
 
   # Allow access to //external:xcrunwrapper.
-  rm WORKSPACE
-  ln -sv ${workspace_file} WORKSPACE
+  use_bazel_workspace_file
 }
 
 function make_app() {
diff --git a/src/test/shell/bazel/bound_targets_test.sh b/src/test/shell/bazel/bound_targets_test.sh
index d7da26a..f6d029b 100755
--- a/src/test/shell/bazel/bound_targets_test.sh
+++ b/src/test/shell/bazel/bound_targets_test.sh
@@ -25,8 +25,7 @@
 fi
 
 function test_build_xcrunwrapper() {
-  rm WORKSPACE
-  ln -sv ${workspace_file} WORKSPACE
+  use_bazel_workspace_file
 
   bazel build //external:xcrunwrapper || fail "should build xcrunwrapper"
 }
diff --git a/src/test/shell/testenv.sh b/src/test/shell/testenv.sh
index f4f7992..019d13e 100755
--- a/src/test/shell/testenv.sh
+++ b/src/test/shell/testenv.sh
@@ -160,6 +160,18 @@
   hamcrest_jar=$(rlocation io_bazel/third_party/hamcrest/hamcrest-.*.jar)
 fi
 
+
+function use_bazel_workspace_file() {
+  mkdir -p src/test/docker
+  cat >src/test/docker/docker_repository.bzl <<EOF
+def docker_repository():
+  pass
+EOF
+  touch src/test/docker/BUILD
+  rm -f WORKSPACE
+  ln -sf ${workspace_file} WORKSPACE
+}
+
 # This function copies the tools directory from Bazel.
 function copy_tools_directory() {
   cp -RL ${tools_dir}/* tools
diff --git a/tools/cpp/BUILD b/tools/cpp/BUILD
index 6dd2a60..eef0c22 100644
--- a/tools/cpp/BUILD
+++ b/tools/cpp/BUILD
@@ -186,7 +186,7 @@
 
 filegroup(
     name = "srcs",
-    srcs = glob(["**"]) + ["//tools/cpp/test:srcs"],
+    srcs = glob(["**"]),
 )
 
 filegroup(