From 2e505f6ea374c3e9f9093782f28fba120058a7a5 Mon Sep 17 00:00:00 2001 From: AskaEth Date: Sat, 22 Aug 2026 15:06:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=A0=A1=E9=AA=8C=E9=A1=BA=E5=BA=8F?= =?UTF-8?q?=E6=94=B9=E8=B7=AF=E5=BE=84=E5=AD=97=E5=85=B8=E5=BA=8F(?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E7=9B=B4=E8=A7=82)=20+=20=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=97=B6=E5=BA=8F=E7=A8=B3=E5=AE=9A=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_transfer.py | 6 ++++++ transfer.py | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/test_transfer.py b/tests/test_transfer.py index ef03765..6185058 100644 --- a/tests/test_transfer.py +++ b/tests/test_transfer.py @@ -2,6 +2,7 @@ import re import os import subprocess +import time import sys sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) @@ -328,6 +329,11 @@ def test_pause_sends_sigstop(tmp_path): r.proc = p r.pause() assert r._paused is True + # SIGSTOP 异步生效, 等待状态变 T + for _ in range(20): + if _proc_state(p.pid) == "T": + break + time.sleep(0.05) assert _proc_state(p.pid) == "T" # T = stopped p.kill() p.wait() diff --git a/transfer.py b/transfer.py index 9a10807..571bbb6 100644 --- a/transfer.py +++ b/transfer.py @@ -115,8 +115,10 @@ def verify_recent_files(src_dir: str, dst_dir: str, check_count: int = 5, full = os.path.join(root, name) recent.append((os.path.getmtime(full), os.path.relpath(full, dst_dir))) recent.sort(reverse=True) - total = min(check_count, len(recent)) - for idx, (_mtime, rel) in enumerate(recent[:check_count], 1): + # 选择最新 N 个 (按 mtime), 校验/显示顺序按路径字典序 (直观连续) + selected = sorted(rel for _mtime, rel in recent[:check_count]) + total = len(selected) + for idx, rel in enumerate(selected, 1): sp = os.path.join(src_dir, rel) tp = os.path.join(dst_dir, rel) if not os.path.isfile(sp):