Atest: add module info attributes
BUG: 209384631
This CL established 3 attributes:
* ModuleInfo.java_dep_path
* ModuleInfo.cc_dep_path
* ModuleInfo.merged_dep_path
and remove has_soong_info() because module_bp_java_deps.json and
module_bp_cc_deps.json will be generated along with module-info.json.
Test: unit test
atest-dev -cv hello_world_test
Change-Id: I3451c8ce45f0cc6ee7fb49cb9b6dab2f5c872abf
diff --git a/atest/module_info.py b/atest/module_info.py
index baec658..945d001 100644
--- a/atest/module_info.py
+++ b/atest/module_info.py
@@ -101,6 +101,15 @@
if not index_dir.is_dir():
index_dir.mkdir(parents=True)
self.module_index = index_dir.joinpath(constants.MODULE_INDEX)
+
+ # Paths to java, cc and merged module info json files.
+ self.java_dep_path = Path(
+ atest_utils.get_build_out_dir()).joinpath('soong', _JAVA_DEP_INFO)
+ self.cc_dep_path = Path(
+ atest_utils.get_build_out_dir()).joinpath('soong', _CC_DEP_INFO)
+ self.merged_dep_path = Path(
+ os.getenv(constants.ANDROID_PRODUCT_OUT, '')).joinpath(_MERGED_INFO)
+
self.mod_info_file_path = Path(module_file) if module_file else None
module_info_target, name_to_module_info = self._load_module_info_file(
module_file)
@@ -194,10 +203,9 @@
module_info_target, file_path = self._discover_mod_file_and_target(
self.force_build)
self.mod_info_file_path = Path(file_path)
- merged_file_path = self.get_atest_merged_info_path()
if (not self.need_update_merged_file()
- and os.path.exists(merged_file_path)):
- file_path = merged_file_path
+ and os.path.exists(self.merged_dep_path)):
+ file_path = self.merged_dep_path
logging.debug('Loading %s as module-info.', file_path)
with open(file_path) as json_file:
mod_info = json.load(json_file)
@@ -580,7 +588,7 @@
"""
# Merge _JAVA_DEP_INFO
if not java_bp_info_path:
- java_bp_info_path = self.get_java_dep_info_path()
+ java_bp_info_path = self.java_dep_path
if atest_utils.is_valid_json_file(java_bp_info_path):
with open(java_bp_info_path) as json_file:
java_bp_infos = json.load(json_file)
@@ -589,7 +597,7 @@
name_to_module_info, java_bp_infos)
# Merge _CC_DEP_INFO
if not cc_bp_info_path:
- cc_bp_info_path = self.get_cc_dep_info_path()
+ cc_bp_info_path = self.cc_dep_path
if atest_utils.is_valid_json_file(cc_bp_info_path):
with open(cc_bp_info_path) as json_file:
cc_bp_infos = json.load(json_file)
@@ -635,16 +643,15 @@
mod_info_values.sort()
name_to_module_info[
module_name][merge_item] = mod_info_values
- output_file = self.get_atest_merged_info_path()
- if not os.path.isdir(os.path.dirname(output_file)):
- os.makedirs(os.path.dirname(output_file))
+ if not os.path.isdir(os.path.dirname(self.merged_dep_path)):
+ os.makedirs(os.path.dirname(self.merged_dep_path))
# b/178559543 saving merged module info in a temp file and copying it to
# atest_merged_dep.json can eliminate the possibility of accessing it
# concurrently and resulting in invalid JSON format.
temp_file = tempfile.NamedTemporaryFile()
with open(temp_file.name, 'w') as _temp:
json.dump(name_to_module_info, _temp, indent=0)
- shutil.copy(temp_file.name, output_file)
+ shutil.copy(temp_file.name, self.merged_dep_path)
temp_file.close()
return name_to_module_info
@@ -696,60 +703,18 @@
install_deps, module_name)
return install_deps
- @staticmethod
- def get_atest_merged_info_path():
- """Returns the path for atest_merged_dep.json.
-
- Returns:
- String for atest_merged_dep.json.
- """
- # Move the merged file to the same folder as module-info.json due to it
- # will not be update if lunch target be changed.
- return os.path.join(os.environ.get(constants.ANDROID_PRODUCT_OUT, ''),
- _MERGED_INFO)
-
- @staticmethod
- def get_java_dep_info_path():
- """Returns the path for module_bp_java_deps.json
-
- Returns:
- String for module_bp_java_deps.json.
- """
- return os.path.join(atest_utils.get_build_out_dir(),
- 'soong', _JAVA_DEP_INFO)
-
- @staticmethod
- def get_cc_dep_info_path():
- """Returns the path for module_bp_cc_deps.json.
-
- Returns:
- String for module_bp_cc_deps.json.
- """
- return os.path.join(atest_utils.get_build_out_dir(),
- 'soong', _CC_DEP_INFO)
-
- def has_soong_info(self):
- """Ensure the existence of soong info files.
-
- Returns:
- True if soong info need to merge, false otherwise.
- """
- return (os.path.isfile(self.get_java_dep_info_path()) and
- os.path.isfile(self.get_cc_dep_info_path()))
-
def need_update_merged_file(self):
"""Check if need to update/generated atest_merged_dep.
If self.force_build == True: always update merged info.
- Otherwise: only update merged info when soong info exists and the merged
- info does not.
+ Otherwise: only update merged info when atest_merged_dep.json does
+ not exist.
Returns:
True if atest_merged_dep.json should be updated, false otherwise.
"""
return (self.force_build or
- (self.has_soong_info() and
- not os.path.exists(self.get_atest_merged_info_path())))
+ not os.path.exists(self.merged_dep_path))
def is_unit_test(self, mod_info):
"""Return True if input module is unit test, False otherwise.
diff --git a/atest/module_info_unittest.py b/atest/module_info_unittest.py
index 16a8e81..9a5d5bf 100755
--- a/atest/module_info_unittest.py
+++ b/atest/module_info_unittest.py
@@ -20,17 +20,21 @@
# pylint: disable=missing-function-docstring
import os
+import shutil
+import tempfile
import unittest
+from pathlib import Path
from unittest import mock
-import atest_utils
import constants
import module_info
import unittest_utils
import unittest_constants as uc
JSON_FILE_PATH = os.path.join(uc.TEST_DATA_DIR, uc.JSON_FILE)
+CC_DEP_PATH = os.path.join(uc.TEST_DATA_DIR, uc.CC_DEP_FILE)
+JAVA_DEP_PATH = os.path.join(uc.TEST_DATA_DIR, uc.JAVA_DPE_FILE)
EXPECTED_MOD_TARGET = 'tradefed'
EXPECTED_MOD_TARGET_PATH = ['tf/core']
UNEXPECTED_MOD_TARGET = 'this_should_not_be_in_module-info.json'
@@ -64,17 +68,31 @@
constants.MODULE_PATH: 'a/b/c/path',
constants.MODULE_CLASS: ['random_class']}
NAME_TO_MODULE_INFO = {'random_name' : MODULE_INFO}
-MERGED_DEP = '/tmp/out/atest_merged_dep.json'
+# Mocking path allows str only, use os.path instead of Path.
+BUILD_TOP_DIR = tempfile.TemporaryDirectory().name
+SOONG_OUT_DIR = os.path.join(BUILD_TOP_DIR, 'out/soong')
+PRODUCT_OUT_DIR = os.path.join(BUILD_TOP_DIR, 'out/target/product/vsoc_x86_64')
+HOST_OUT_DIR = os.path.join(BUILD_TOP_DIR, 'out/host/linux-x86')
#pylint: disable=protected-access
class ModuleInfoUnittests(unittest.TestCase):
"""Unit tests for module_info.py"""
- def tearDown(self):
- files_to_clean = (MERGED_DEP, uc.MODULE_INDEX, uc.MODULE_INDEX_MD5)
- for _file in files_to_clean:
- if os.path.isfile(_file):
- os.remove(_file)
+ def setUp(self) -> None:
+ for path in [BUILD_TOP_DIR, PRODUCT_OUT_DIR, SOONG_OUT_DIR, HOST_OUT_DIR]:
+ if not Path(path).is_dir():
+ Path(path).mkdir(parents=True)
+ shutil.copy2(JSON_FILE_PATH, PRODUCT_OUT_DIR)
+ self.json_file_path = Path(PRODUCT_OUT_DIR).joinpath(uc.JSON_FILE)
+ shutil.copy2(CC_DEP_PATH, SOONG_OUT_DIR)
+ self.cc_dep_path = Path(SOONG_OUT_DIR).joinpath(uc.CC_DEP_FILE)
+ shutil.copy2(JAVA_DEP_PATH, SOONG_OUT_DIR)
+ self.java_dep_path = Path(SOONG_OUT_DIR).joinpath(uc.JAVA_DPE_FILE)
+ self.merged_dep_path = Path(PRODUCT_OUT_DIR).joinpath(uc.MERGED_DEP_FILE)
+
+ def tearDown(self) -> None:
+ if self.merged_dep_path.is_file():
+ os.remove(self.merged_dep_path)
@mock.patch.object(module_info.ModuleInfo, '_merge_soong_info')
@mock.patch('json.load', return_value={})
@@ -91,7 +109,7 @@
default_out_dir_mod_targ = 'out/dir/here/module-info.json'
# Make sure module_info_target is what we think it is.
with mock.patch.dict('os.environ', os_environ_mock, clear=True):
- mod_info = module_info.ModuleInfo()
+ mod_info = module_info.ModuleInfo(index_dir=HOST_OUT_DIR)
self.assertEqual(default_out_dir_mod_targ,
mod_info.module_info_target)
@@ -102,7 +120,7 @@
custom_out_dir_mod_targ = 'out2/dir/here/module-info.json'
# Make sure module_info_target is what we think it is.
with mock.patch.dict('os.environ', os_environ_mock, clear=True):
- mod_info = module_info.ModuleInfo()
+ mod_info = module_info.ModuleInfo(index_dir=HOST_OUT_DIR)
self.assertEqual(custom_out_dir_mod_targ,
mod_info.module_info_target)
@@ -113,12 +131,12 @@
custom_abs_out_dir_mod_targ = '/tmp/out/dir/module-info.json'
# Make sure module_info_target is what we think it is.
with mock.patch.dict('os.environ', os_environ_mock, clear=True):
- mod_info = module_info.ModuleInfo()
+ mod_info = module_info.ModuleInfo(index_dir=HOST_OUT_DIR)
self.assertEqual(custom_abs_out_dir_mod_targ,
mod_info.module_info_target)
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
@mock.patch.object(module_info.ModuleInfo, '_load_module_info_file')
def test_get_path_to_module_info(self, mock_load_module):
"""Test that we correctly create the path to module info dict."""
@@ -135,12 +153,12 @@
constants.MODULE_PATH: [mod_path_one]}],
mod_path_two: [{constants.MODULE_NAME: mod_two,
constants.MODULE_PATH: [mod_path_two]}]}
- mod_info = module_info.ModuleInfo()
+ mod_info = module_info.ModuleInfo(index_dir=HOST_OUT_DIR)
self.assertDictEqual(path_to_mod_info,
mod_info._get_path_to_module_info(mod_info_dict))
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
def test_is_module(self):
"""Test that we get the module when it's properly loaded."""
# Load up the test json file and check that module is in it
@@ -149,7 +167,7 @@
self.assertFalse(mod_info.is_module(UNEXPECTED_MOD_TARGET))
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output/'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
def test_get_path(self):
"""Test that we get the module path when it's properly loaded."""
# Load up the test json file and check that module is in it
@@ -159,7 +177,7 @@
self.assertEqual(mod_info.get_paths(MOD_NO_PATH), [])
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output/'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
def test_get_module_names(self):
"""test that we get the module name properly."""
mod_info = module_info.ModuleInfo(module_file=JSON_FILE_PATH)
@@ -170,7 +188,7 @@
MULT_MOODULES_WITH_SHARED_PATH)
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output/'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
def test_path_to_mod_info(self):
"""test that we get the module name properly."""
mod_info = module_info.ModuleInfo(module_file=JSON_FILE_PATH)
@@ -182,7 +200,7 @@
self.assertEqual(module_list, TESTABLE_MODULES_WITH_SHARED_PATH)
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
def test_is_suite_in_compatibility_suites(self):
"""Test is_suite_in_compatibility_suites."""
mod_info = module_info.ModuleInfo(module_file=JSON_FILE_PATH)
@@ -196,11 +214,9 @@
self.assertTrue(mod_info.is_suite_in_compatibility_suites("vts10", info3))
self.assertFalse(mod_info.is_suite_in_compatibility_suites("ats", info3))
- @mock.patch('constants.INDEX_DIR', uc.INDEX_DIR)
- @mock.patch('constants.MODULE_INDEX', uc.MODULE_INDEX)
@mock.patch('constants.MODULE_INDEX_MD5', uc.MODULE_INDEX_MD5)
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output/'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
@mock.patch.object(module_info.ModuleInfo, 'is_testable_module')
@mock.patch.object(module_info.ModuleInfo, 'is_suite_in_compatibility_suites')
def test_get_testable_modules(self, mock_is_suite_exist, mock_is_testable):
@@ -223,7 +239,7 @@
self.assertEqual(1, len(mod_info.get_testable_modules()))
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
@mock.patch.object(module_info.ModuleInfo, 'has_test_config')
@mock.patch.object(module_info.ModuleInfo, 'is_robolectric_test')
def test_is_testable_module(self, mock_is_robo_test, mock_has_test_config):
@@ -245,7 +261,7 @@
self.assertTrue(mod_info.is_testable_module(non_installed_module_info))
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
@mock.patch.object(module_info.ModuleInfo, 'is_auto_gen_test_config')
def test_has_test_config(self, mock_is_auto_gen):
"""Test has_test_config."""
@@ -267,7 +283,7 @@
self.assertTrue(mod_info.has_test_config(info2))
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
@mock.patch.object(module_info.ModuleInfo, 'get_module_names')
def test_get_robolectric_test_name(self, mock_get_module_names):
"""Test get_robolectric_test_name."""
@@ -285,7 +301,7 @@
ROBO_MODULE), None)
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
@mock.patch.object(module_info.ModuleInfo, 'is_robolectric_module')
@mock.patch('os.path.isfile', return_value=False)
@mock.patch.object(module_info.ModuleInfo, 'get_module_info')
@@ -319,7 +335,7 @@
self.assertEqual(mod_info.get_robolectric_type(ROBO_MODULE), 0)
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
@mock.patch.object(module_info.ModuleInfo, 'get_robolectric_type')
def test_is_robolectric_test(self, mock_type):
"""Test is_robolectric_test."""
@@ -332,7 +348,7 @@
self.assertFalse(mod_info.is_robolectric_test(ROBO_MODULE))
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
@mock.patch.object(module_info.ModuleInfo, 'is_module')
def test_is_auto_gen_test_config(self, mock_is_module):
"""Test is_auto_gen_test_config correctly detects the module."""
@@ -352,7 +368,7 @@
self.assertFalse(mod_info.is_auto_gen_test_config(MOD_NAME4))
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
def test_is_robolectric_module(self):
"""Test is_robolectric_module correctly detects the module."""
mod_info = module_info.ModuleInfo(module_file=JSON_FILE_PATH)
@@ -364,12 +380,10 @@
self.assertTrue(mod_info.is_robolectric_module(MOD_INFO_DICT[MOD_NAME1]))
self.assertFalse(mod_info.is_robolectric_module(MOD_INFO_DICT[MOD_NAME2]))
- @mock.patch.object(module_info.ModuleInfo, 'get_atest_merged_info_path')
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
- def test_merge_build_system_infos(self, _merge):
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
+ def test_merge_build_system_infos(self):
"""Test _merge_build_system_infos."""
- _merge.return_value = MERGED_DEP
mod_info = module_info.ModuleInfo(module_file=JSON_FILE_PATH)
java_dep_file = os.path.join(uc.TEST_DATA_DIR,
'module_bp_java_deps.json')
@@ -383,12 +397,10 @@
name_to_mod_info['module_1'].get(constants.MODULE_DEPENDENCIES),
expect_deps)
- @mock.patch.object(module_info.ModuleInfo, 'get_atest_merged_info_path')
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
- def test_merge_dependency_with_ori_dependency(self, _merge):
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
+ def test_merge_dependency_with_ori_dependency(self):
"""Test _merge_dependency."""
- _merge.return_value = MERGED_DEP
mod_info = module_info.ModuleInfo(module_file=JSON_FILE_PATH)
java_dep_file = os.path.join(uc.TEST_DATA_DIR,
'module_bp_java_deps.json')
@@ -402,12 +414,10 @@
name_to_mod_info['module_1'].get(constants.MODULE_DEPENDENCIES),
expect_deps)
- @mock.patch.object(module_info.ModuleInfo, 'get_atest_merged_info_path')
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
- def test_get_module_dependency(self, _merge):
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
+ def test_get_module_dependency(self):
"""Test get_module_dependency."""
- _merge.return_value = MERGED_DEP
mod_info = module_info.ModuleInfo(module_file=JSON_FILE_PATH)
java_dep_file = os.path.join(uc.TEST_DATA_DIR,
'module_bp_java_deps.json')
@@ -419,12 +429,10 @@
mod_info.get_module_dependency('dep_test_module'),
expect_deps)
- @mock.patch.object(module_info.ModuleInfo, 'get_atest_merged_info_path')
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
- def test_get_module_dependency_w_loop(self, _merge):
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
+ def test_get_module_dependency_w_loop(self):
"""Test get_module_dependency with problem dep file."""
- _merge.return_value = MERGED_DEP
mod_info = module_info.ModuleInfo(module_file=JSON_FILE_PATH)
# Java dependency file with a endless loop define.
java_dep_file = os.path.join(uc.TEST_DATA_DIR,
@@ -437,12 +445,10 @@
mod_info.get_module_dependency('dep_test_module'),
expect_deps)
- @mock.patch.object(module_info.ModuleInfo, 'get_atest_merged_info_path')
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
- def test_get_install_module_dependency(self, _merge):
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
+ def test_get_install_module_dependency(self):
"""Test get_install_module_dependency."""
- _merge.return_value = MERGED_DEP
mod_info = module_info.ModuleInfo(module_file=JSON_FILE_PATH)
java_dep_file = os.path.join(uc.TEST_DATA_DIR,
'module_bp_java_deps.json')
@@ -453,12 +459,10 @@
mod_info.get_install_module_dependency('dep_test_module'),
expect_deps)
- @mock.patch.object(module_info.ModuleInfo, 'get_atest_merged_info_path')
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
- def test_cc_merge_build_system_infos(self, _merge):
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
+ def test_cc_merge_build_system_infos(self):
"""Test _merge_build_system_infos for cc."""
- _merge.return_value = MERGED_DEP
mod_info = module_info.ModuleInfo(module_file=JSON_FILE_PATH)
cc_dep_file = os.path.join(uc.TEST_DATA_DIR,
'module_bp_cc_deps.json')
@@ -472,34 +476,8 @@
name_to_mod_info['module_cc_1'].get(constants.MODULE_DEPENDENCIES),
expect_deps)
- @mock.patch.dict('os.environ',
- {constants.ANDROID_PRODUCT_OUT:'/test/output/'})
- def test_get_atest_merged_info_path(self):
- """Test get_atest_merged_info_path."""
- expect_out = '/test/output/'
- expect_path = os.path.join(expect_out, module_info._MERGED_INFO)
- self.assertEqual(expect_path, module_info.ModuleInfo.get_atest_merged_info_path())
-
- @mock.patch.object(atest_utils, 'get_build_out_dir')
- def test_get_java_dep_info_path(self, mock_out_dir):
- """Test get_java_dep_info_path."""
- expect_out = '/test/output/'
- mock_out_dir.return_value = expect_out
- expect_path = os.path.join(expect_out, 'soong',
- module_info._JAVA_DEP_INFO)
- self.assertEqual(expect_path, module_info.ModuleInfo.get_java_dep_info_path())
-
- @mock.patch.object(atest_utils, 'get_build_out_dir')
- def test_get_cc_dep_info_path(self, mock_out_dir):
- """Test get_cc_dep_info_path."""
- expect_out = '/test/output/'
- mock_out_dir.return_value = expect_out
- expect_path = os.path.join(expect_out, 'soong',
- module_info._CC_DEP_INFO)
- self.assertEqual(expect_path, module_info.ModuleInfo.get_cc_dep_info_path())
-
@mock.patch.dict('os.environ', {constants.ANDROID_BUILD_TOP:'/',
- constants.ANDROID_PRODUCT_OUT:'/test/output'})
+ constants.ANDROID_PRODUCT_OUT:PRODUCT_OUT_DIR})
def test_is_unit_test(self):
"""Test is_unit_test."""
module_name = 'myModule'
diff --git a/atest/unittest_constants.py b/atest/unittest_constants.py
index cf80b92..dd6a1ef 100644
--- a/atest/unittest_constants.py
+++ b/atest/unittest_constants.py
@@ -58,6 +58,9 @@
CONFIG2_FILE = os.path.join(MODULE2_DIR, constants.MODULE_CONFIG)
JSON_FILE = 'module-info.json'
MODULE_INFO_TARGET = '/out/%s' % JSON_FILE
+CC_DEP_FILE = 'module_bp_cc_deps.json'
+JAVA_DPE_FILE = 'module_bp_java_deps.json'
+MERGED_DEP_FILE = 'atest_merged_dep.json'
MODULE_BUILD_TARGETS = {'tradefed-core', MODULE_INFO_TARGET,
'MODULES-IN-%s' % MODULE_DIR.replace('/', '-'),
'module-specific-target'}
@@ -307,7 +310,6 @@
QCLASS_INDEX = os.path.join(INDEX_DIR, 'fqcn.idx')
CC_CLASS_INDEX = os.path.join(INDEX_DIR, 'cc_classes.idx')
PACKAGE_INDEX = os.path.join(INDEX_DIR, 'packages.idx')
-MODULE_INDEX = os.path.join(INDEX_DIR, 'modules.idx')
MODULE_INDEX_MD5 = os.path.join(INDEX_DIR, 'modules.md5')
# TF's log dir
diff --git a/atest/unittest_utils.py b/atest/unittest_utils.py
index 35db172..453662e 100644
--- a/atest/unittest_utils.py
+++ b/atest/unittest_utils.py
@@ -84,6 +84,7 @@
# pylint: disable=too-many-return-statements
def isfile_side_effect(value):
"""Mock return values for os.path.isfile."""
+ value = str(value)
if value == '/%s/%s' % (uc.CC_MODULE_DIR, constants.MODULE_CONFIG):
return True
if value == '/%s/%s' % (uc.MODULE_DIR, constants.MODULE_CONFIG):