forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 0
/
file_util.py
40 lines (32 loc) · 1.35 KB
/
file_util.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Copyright 2020 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Utility functions operating with files."""
import glob
import os
import shutil
SIMULATORS_FOLDER = os.path.expanduser(
'~/Library/Developer/CoreSimulator/Devices')
def move_raw_coverage_data(udid, isolated_output_dir):
"""Moves raw coverage data files(.profraw) from simulator shared resources
directory to isolated_output/profraw.
Args:
udid: (str) UDID of the simulator that just run the tests.
isolated_out_dir: (str) Isolated output directory of current isolated
shard.
"""
profraw_origin_dir = os.path.join(SIMULATORS_FOLDER, udid, "data")
profraw_destination_dir = os.path.join(isolated_output_dir, "profraw")
if not os.path.exists(profraw_destination_dir):
os.mkdir(profraw_destination_dir)
for profraw_file in glob.glob(os.path.join(profraw_origin_dir, '*.profraw')):
shutil.move(profraw_file, profraw_destination_dir)
def zip_and_remove_folder(dir_path):
"""Zips folder storing in the parent folder and then removes original folder.
Args:
dir_path: (str) An absolute path to directory.
"""
shutil.make_archive(
os.path.join(os.path.dirname(dir_path), os.path.basename(dir_path)),
'zip', dir_path)
shutil.rmtree(dir_path)