run_tests: switch to vpython

We want to move away from our custom infra_virtualenv wheels as it
doesn't scale, it's hard to maintain (generate our own wheels), and
no one else uses this.  Let's use vpython for this as the vpython
startup penalty is hardly noticed due to pytest's own slow startup.
It also scales better (differently?) by allowing each program to
declare its own set of deps.

BUG=chromium:997354
TEST=`./run_tests` passes

Change-Id: I60e653c491bea4ada0cda9914fe946dc3c2f2048
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2826353
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Chris McDonald <cjmcdonald@chromium.org>
diff --git a/scripts/run_tests.vpython3 b/scripts/run_tests.vpython3
new file mode 100644
index 0000000..ed6c054
--- /dev/null
+++ b/scripts/run_tests.vpython3
@@ -0,0 +1,99 @@
+# Copyright 2021 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Dependencies needed to run unittests.
+#
+# For info on this file, see:
+# https://chromium.googlesource.com/infra/infra/+/HEAD/doc/users/vpython.md#available-wheels
+
+python_version: "3.8"
+
+# chromite deps.
+wheel: <
+  name: "infra/python/wheels/psutil/${vpython_platform}"
+  version: "version:5.7.2"
+>
+wheel: <
+  name: "infra/python/wheels/python-dateutil-py2_py3"
+  version: "version:2.8.1"
+>
+wheel: <
+  name: "infra/python/wheels/pyyaml-py3"
+  version: "version:5.3.1"
+>
+wheel: <
+  name: "infra/python/wheels/six-py2_py3"
+  version: "version:1.15.0"
+>
+
+wheel: <
+  name: "chromiumos/infra/virtualenv/portage/${vpython_platform}"
+  version: "version:2.3.75"
+>
+
+# pytest deps.
+wheel: <
+  name: "infra/python/wheels/apipkg-py2_py3"
+  version: "version:1.5"
+>
+wheel: <
+  name: "infra/python/wheels/attrs-py2_py3"
+  version: "version:20.3.0"
+>
+wheel: <
+  name: "infra/python/wheels/coverage/${vpython_platform}"
+  version: "version:5.5"
+>
+wheel: <
+  name: "infra/python/wheels/execnet-py2_py3"
+  version: "version:1.8.0"
+>
+wheel: <
+  name: "infra/python/wheels/iniconfig-py3"
+  version: "version:1.1.1"
+>
+wheel: <
+  name: "infra/python/wheels/more-itertools-py2_py3"
+  version: "version:4.1.0"
+>
+wheel: <
+  name: "infra/python/wheels/packaging-py2_py3"
+  version: "version:16.8"
+>
+wheel: <
+  name: "infra/python/wheels/pluggy-py3"
+  version: "version:0.13.1"
+>
+wheel: <
+  name: "infra/python/wheels/py-py2_py3"
+  version: "version:1.5.3"
+>
+wheel: <
+  name: "infra/python/wheels/pyparsing-py2_py3"
+  version: "version:2.2.0"
+>
+wheel: <
+  name: "infra/python/wheels/pytest-py3"
+  version: "version:5.4.3"
+>
+wheel: <
+  name: "infra/python/wheels/pytest-cov-py2_py3"
+  version: "version:2.11.1"
+>
+wheel: <
+  name: "infra/python/wheels/pytest-forked-py2_py3"
+  version: "version:1.3.0"
+>
+wheel: <
+  name: "infra/python/wheels/pytest-xdist-py2_py3"
+  version: "version:1.31.0"
+>
+wheel: <
+  name: "infra/python/wheels/toml-py3"
+  version: "version:0.10.1"
+>
+wheel: <
+  name: "infra/python/wheels/wcwidth-py2_py3"
+  version: "version:0.1.8"
+>