Create a wrapper and generator script around CrOS's run_vm_test script.

Example led build of one of the simple chrome bots:
https://ci.chromium.org/swarming/task/3cb56f4f4bb79410?server=chromium-swarm.appspot.com

Bug: 828607
Change-Id: Ifcbe4059544722b48f4ab31fb2e97331b4f976f2
Reviewed-on: https://chromium-review.googlesource.com/994062
Commit-Queue: Ben Pastene <[email protected]>
Reviewed-by: Dirk Pranke <[email protected]>
Cr-Commit-Position: refs/heads/master@{#550845}
diff --git a/testing/test.gni b/testing/test.gni
index 0f92985..0ec196e 100644
--- a/testing/test.gni
+++ b/testing/test.gni
@@ -344,9 +344,48 @@
       }
       bundle_deps += [ ":$_resources_bundle_data" ]
     }
+  } else if (is_chromeos && getenv("SDK_VERSION") != "") {
+    # When the env var SDK_VERSION is set, assume we're in the cros chrome-sdk
+    # building simplechrome.
+
+    import("//build/config/chromeos/rules.gni")
+
+    assert(getenv("SDK_BOARD") != "", "Must specify board to build for.")
+
+    _gen_runner_target = "${target_name}__runner"
+    _runtime_deps_file =
+        "$root_out_dir/gen.runtime/" + get_label_info(target_name, "dir") +
+        "/" + get_label_info(target_name, "name") + ".runtime_deps"
+
+    generate_vm_runner_script(_gen_runner_target) {
+      testonly = true
+      generated_script = "$root_build_dir/bin/run_" + invoker.target_name
+      test_exe = "$root_out_dir/" + get_label_info(invoker.target_name, "name")
+      runtime_deps_file = _runtime_deps_file
+    }
+
+    executable(target_name) {
+      forward_variables_from(invoker, "*")
+      if (!defined(deps)) {
+        deps = []
+      }
+      if (!defined(data)) {
+        data = []
+      }
+
+      testonly = true
+      output_name = target_name
+      write_runtime_deps = _runtime_deps_file
+      data += [ _runtime_deps_file ]
+      deps += [
+        ":$_gen_runner_target",
+        "//build/config:exe_and_shlib_deps",
+      ]
+    }
   } else {
     executable(target_name) {
       deps = []
+
       forward_variables_from(invoker, "*")
 
       testonly = true