Use fixed timestamps before performing api diff operation.

The api diff files contain the timestamp of files which are being
diffed. This results in different diffs getting generated everytime
even if all the APIs are the same.
In order to generate same diffs, fixed timestamps are assigned to the
files being diffed before the diff operation.

Bug: 238757360
Test: The builds passed and the api diff files contain the fixed
timestamps.

Change-Id: I89f88aa709b5a7a7f52d610b2f8ddf501712e529
This commit is contained in:
Gurpreet Singh
2022-10-19 15:25:49 +00:00
parent d676cf672c
commit a772ee4cb1

View File

@@ -303,6 +303,11 @@ def set_default_timestamp(base_dir, paths):
p = os.path.join(base_dir, path)
os.utime(p, (timestamp, timestamp))
# set the timestamp of the file path to default_zip_time.
def set_default_timestamp_to_file(file_path):
timestamp = default_zip_time.timestamp()
os.utime(file_path, (timestamp, timestamp))
@dataclasses.dataclass()
class SnapshotBuilder:
@@ -536,6 +541,8 @@ java_sdk_library_import {{
with zipfile.ZipFile(sdk_zip_file, "r") as zipObj:
extracted_current_api = zipObj.extract(
member=current_api, path=snapshots_dir)
set_default_timestamp_to_file(extracted_current_api)
set_default_timestamp_to_file(latest_api)
# The diff tool has an exit code of 0, 1 or 2 depending on whether
# it find no differences, some differences or an error (like missing
# file). As 0 or 1 are both valid results this cannot use check=True