feat: add PullFiles for ADBDriver

This commit is contained in:
lilong.129 2025-03-27 19:48:04 +08:00
parent f73d91da9c
commit 7876b747ba
6 changed files with 65 additions and 1 deletions

View File

@ -1 +1 @@
v5.0.0-beta-2503271937
v5.0.0-beta-2503271948

View File

@ -961,6 +961,55 @@ func (ad *ADBDriver) ClearImages() error {
return nil
}
func (ad *ADBDriver) PullFiles(localDir string, remoteDirs ...string) error {
log.Info().Str("localDir", localDir).Strs("remoteDirs", remoteDirs).Msg("ADBDriver.PullFiles")
// create local directory if not exists
if err := os.MkdirAll(localDir, 0o755); err != nil {
return fmt.Errorf("failed to create local directory: %w", err)
}
for _, remoteDir := range remoteDirs {
files, err := ad.Device.List(remoteDir)
if err != nil {
return fmt.Errorf("failed to list directory %s: %w", remoteDir, err)
}
for _, file := range files {
remotePath := path.Join(remoteDir, file.Name)
localPath := path.Join(localDir, file.Name)
// check if file already exists
if _, err := os.Stat(localPath); err == nil {
log.Debug().Str("localPath", localPath).Msg("file already exists, skipping")
continue
}
// create local file
f, err := os.Create(localPath)
if err != nil {
log.Error().Err(err).Str("localPath", localPath).Msg("failed to create local file")
continue
}
defer f.Close()
// pull image file
if err := ad.Device.Pull(remotePath, f); err != nil {
log.Error().Err(err).
Str("remotePath", remotePath).
Str("localPath", localPath).
Msg("failed to pull file")
continue // continue with next file
}
log.Info().
Str("remotePath", remotePath).
Str("localPath", localPath).
Msg("file pulled successfully")
}
}
return nil
}
func (ad *ADBDriver) ClearFiles(paths ...string) error {
log.Info().Strs("paths", paths).Msg("ADBDriver.ClearFiles")
for _, path := range paths {

View File

@ -448,6 +448,10 @@ func (wd *BrowserDriver) ClearImages() error {
return errors.New("not support")
}
func (wd *BrowserDriver) PullFiles(localDir string, remoteDirs ...string) error {
return errors.New("not support")
}
func (wd *BrowserDriver) ClearFiles(paths ...string) error {
return errors.New("not support")
}

View File

@ -72,6 +72,7 @@ type IDriver interface {
ClearImages() error
// files related
PullFiles(localDir string, remoteDirs ...string) error
ClearFiles(paths ...string) error
// triggers the log capture and returns the log entries

View File

@ -298,6 +298,11 @@ func (hd *HDCDriver) ClearImages() error {
return nil
}
func (hd *HDCDriver) PullFiles(localDir string, remoteDirs ...string) error {
log.Warn().Msg("PullFiles not implemented in HDCDriver")
return nil
}
func (hd *HDCDriver) ClearFiles(paths ...string) error {
log.Warn().Msg("ClearFiles not implemented in HDCDriver")
return nil

View File

@ -1002,6 +1002,11 @@ func (wd *WDADriver) ClearImages() error {
return err
}
func (wd *WDADriver) PullFiles(localDir string, remoteDirs ...string) error {
log.Warn().Msg("PullFiles not implemented in WDADriver")
return nil
}
func (wd *WDADriver) ClearFiles(paths ...string) error {
log.Warn().Msg("ClearFiles not implemented in WDADriver")
return nil