# AndroidTestUtilities

Create a test that automatically loads specified data onto an Android device.

## Introduction

Use this module to push data needed for testing an Android device behavior onto a connected Android device. The module will accept files and libraries as well as separate destinations for each. It will create a test that loads the files into a device object store and link to them from the specified destination. The files are only uploaded if they are not already in the object store.

For example:

    include(AndroidTestUtilities)
    android_add_test_data(
      example_setup_test
      FILES <files>...
      LIBS <libs>...
      DEVICE_TEST_DIR "/data/local/tests/example"
      DEVICE_OBJECT_STORE "/sdcard/.ExternalData/SHA"
      )

At build time a test named “example_setup_test” will be created. Run this test on the command line with `ctest(1)` to load the data onto the Android device.

## Module Functions

`android_add_test_data`

      android_add_test_data(<test-name>
        [FILES <files>...] [FILES_DEST <device-dir>]
        [LIBS <libs>...]   [LIBS_DEST <device-dir>]
        [DEVICE_OBJECT_STORE <device-dir>]
        [DEVICE_TEST_DIR <device-dir>]
        [NO_LINK_REGEX <strings>...]
        )

  The `android_add_test_data` function is used to copy files and libraries needed to run project-specific tests. On the host operating system, this is done at build time. For on-device testing, the files are loaded onto the device by the manufactured test at run time.

  This function accepts the following named parameters:

  `FILES <files>...`
    zero or more files needed for testing
  `LIBS <libs>...`
    zero or more libraries needed for testing
  `FILES_DEST <device-dir>`
    absolute path where the data files are expected to be
  `LIBS_DEST <device-dir>`
    absolute path where the libraries are expected to be
  `DEVICE_OBJECT_STORE <device-dir>`
    absolute path to the location where the data is stored on-device
  `DEVICE_TEST_DIR <device-dir>`
    absolute path to the root directory of the on-device test location
  `NO_LINK_REGEX <strings>...`
    list of regex strings matching the names of files that should be copied from the object store to the testing directory