tree cc0695553ec6ff03b1a40619e8bf78e7367d4c31
parent 1ce0150260150796e82d9662e5aae17e922ace61
author David 'Digit' Turner <digit@google.com> 1560865828 +0000
committer CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org> 1560865828 +0000

[graphics][compute]: GN rules for unit-tests

This CL introduces our first GoogleTest-based unit-test suite
(name src/graphics/lib/compute:compute_graphics_unittests).

For now, this is limited to common/util_unittest.cpp, a pretty
basic unit-test for the declarations in common/util.h, which
fortunately do not rely on a Vulkan test environment.

+ Introduce gn/testing.gni which provides
  graphics_compute_unittests() and graphics_compute_unittest_package()
  templates which can be used to define GN targets for unit-test
  suites and the embedding executable / Fuchsia package for them,
  respectively.

  To run the test on the host, simply build it and launch it
  as in:

    fx build src/graphics/lib/compute:tests
    out/default/host_x64/graphics_compute_unittests

  To run the test on a device, please ensure that the test package
  target is listed in your args.gn with something like:

    universe_package_labels += [
      "//src/graphics/lib/compute:graphics_compute_unittests",
    ]

  Then launch with:

    fx run-test graphics_compute_unittests

Future CLs will add a small Vulkan test environment, and appropriate
GN rules to write Vulkan-based unit-tests as well (in order to test
the content of common/vk/), but this is a much harder problem :-)

BUG: SPN-46
TEST: fx run-test graphics_compute_unittests

Change-Id: I4b259386c5d65d711e79c2d5cc45a840c8fdb2ff
