Let cargo2android.py generate data properties for tests.
Some tests load data from files. These files thus need to be copied to the correct location on the host/device so that the tests can access them. This adds an option to cargo2android.py so that it can generate these data properties. Bug: 171710847 Test: Use for a crate. Change-Id: I14a1ad8aca4625cc5f09807d19ffd7499fcf3689
This commit is contained in:
@@ -603,6 +603,8 @@ class Crate(object):
|
|||||||
self.write(' test_suites: ["general-tests"],')
|
self.write(' test_suites: ["general-tests"],')
|
||||||
self.write(' auto_gen_config: true,')
|
self.write(' auto_gen_config: true,')
|
||||||
self.dump_edition_flags_libs()
|
self.dump_edition_flags_libs()
|
||||||
|
if 'test' in self.crate_types and len(self.srcs) == 1:
|
||||||
|
self.dump_test_data()
|
||||||
self.write('}')
|
self.write('}')
|
||||||
|
|
||||||
def dump_single_type_android_module(self):
|
def dump_single_type_android_module(self):
|
||||||
@@ -665,6 +667,8 @@ class Crate(object):
|
|||||||
self.write(' vendor_ramdisk_available: true,')
|
self.write(' vendor_ramdisk_available: true,')
|
||||||
if self.runner.args.min_sdk_version and crate_type == 'lib':
|
if self.runner.args.min_sdk_version and crate_type == 'lib':
|
||||||
self.write(' min_sdk_version: "%s",' % self.runner.args.min_sdk_version)
|
self.write(' min_sdk_version: "%s",' % self.runner.args.min_sdk_version)
|
||||||
|
if crate_type == 'test' and not self.default_srcs:
|
||||||
|
self.dump_test_data()
|
||||||
if self.runner.args.add_module_block:
|
if self.runner.args.add_module_block:
|
||||||
with open(self.runner.args.add_module_block, 'r') as f:
|
with open(self.runner.args.add_module_block, 'r') as f:
|
||||||
self.write(' %s,' % f.read().replace('\n', '\n '))
|
self.write(' %s,' % f.read().replace('\n', '\n '))
|
||||||
@@ -698,6 +702,12 @@ class Crate(object):
|
|||||||
shared_libs = [lib for lib in self.shared_libs if not lib in self.runner.args.lib_blocklist]
|
shared_libs = [lib for lib in self.shared_libs if not lib in self.runner.args.lib_blocklist]
|
||||||
self.dump_android_property_list('shared_libs', '"lib%s"', shared_libs)
|
self.dump_android_property_list('shared_libs', '"lib%s"', shared_libs)
|
||||||
|
|
||||||
|
def dump_test_data(self):
|
||||||
|
data = [data for (name, data) in map(lambda kv: kv.split('=', 1), self.runner.args.test_data)
|
||||||
|
if self.srcs == [name]]
|
||||||
|
if data:
|
||||||
|
self.dump_android_property_list('data', '"%s"', data)
|
||||||
|
|
||||||
def main_src_basename_path(self):
|
def main_src_basename_path(self):
|
||||||
return re.sub('/', '_', re.sub('.rs$', '', self.main_src))
|
return re.sub('/', '_', re.sub('.rs$', '', self.main_src))
|
||||||
|
|
||||||
@@ -1632,6 +1642,12 @@ def get_parser():
|
|||||||
nargs='*',
|
nargs='*',
|
||||||
default=[],
|
default=[],
|
||||||
help='Make the given libraries (without lib prefixes) whole_static_libs.')
|
help='Make the given libraries (without lib prefixes) whole_static_libs.')
|
||||||
|
parser.add_argument(
|
||||||
|
'--test-data',
|
||||||
|
nargs='*',
|
||||||
|
default=[],
|
||||||
|
help=('Add the given file to the given test\'s data property. ' +
|
||||||
|
'Usage: test-path=data-path'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--dependency-blocklist',
|
'--dependency-blocklist',
|
||||||
nargs='*',
|
nargs='*',
|
||||||
|
|||||||
Reference in New Issue
Block a user