Merge "adb: fix `push --sync` with multiple inputs."

This commit is contained in:
Treehugger Robot 2020-09-11 04:55:49 +00:00 committed by Gerrit Code Review
commit 316298d7b0
2 changed files with 27 additions and 2 deletions

View File

@ -1053,7 +1053,7 @@ static bool sync_send(SyncConnection& sc, const std::string& lpath, const std::s
if (!sc.SendSmallFile(rpath, mode, lpath, rpath, mtime, buf, data_length, dry_run)) {
return false;
}
return sc.ReadAcknowledgements();
return sc.ReadAcknowledgements(sync);
#endif
}
@ -1077,7 +1077,7 @@ static bool sync_send(SyncConnection& sc, const std::string& lpath, const std::s
return false;
}
}
return sc.ReadAcknowledgements();
return sc.ReadAcknowledgements(sync);
}
static bool sync_recv_v1(SyncConnection& sc, const char* rpath, const char* lpath, const char* name,

View File

@ -1271,6 +1271,31 @@ class FileOperationsTest:
if temp_dir is not None:
shutil.rmtree(temp_dir)
def test_push_sync_multiple(self):
"""Sync multiple host directories to a specific path."""
try:
temp_dir = tempfile.mkdtemp()
temp_files = make_random_host_files(in_dir=temp_dir, num_files=32)
device_dir = posixpath.join(self.DEVICE_TEMP_DIR, 'sync_src_dst')
# Clean up any stale files on the device.
device = adb.get_device() # pylint: disable=no-member
device.shell(['rm', '-rf', device_dir])
device.shell(['mkdir', '-p', device_dir])
host_paths = [os.path.join(temp_dir, x.base_name) for x in temp_files]
device.push(host_paths, device_dir, sync=True)
self.verify_sync(device, temp_files, device_dir)
self.device.shell(['rm', '-rf', self.DEVICE_TEMP_DIR])
finally:
if temp_dir is not None:
shutil.rmtree(temp_dir)
def test_push_dry_run_nonexistent_file(self):
"""Push with dry run."""