Files
telfax/docs/PHASE10_V1_TEST_REPORT.md
T
Warren 55bca92691 V1.0: Class 1 fax — real-world 4-page send to external number confirmed
Core features:
- Class 1 T.30 protocol: full send/receive implementation
- HDLC: DLE-stuffing, FCS strip, USR5637 bit-reversal handling
- T.4 MH encoder/decoder (1728px A4 standard)
- Document pipeline: PDF (Ghostscript), PNG, TIFF input
- Width clamping: US Letter 1734px → 1728px fax standard
- Cover page: CJK rasterization (TW/CN/JP/EN), TIFF + HTML output
- OCR verification: Tesseract 5 with eng+chi_tra, CJK space-tolerant
- API server (axum): health, send, jobs, cover, retry, cancel
- Background worker: auto-poll queue, speed fallback, retry policy
- Modem detection, pool management

Real-world test results (2026-07-23):
- V90 → 25153038: 4 pages, V.17 12000 bps, 2:33 ✅
- USR5637 → 25153038: 4 pages, V.17 12000 bps, 2:26 ✅
- Both faxes confirmed received on remote machine

Tested: loopback (100% pixel match), multi-page, all input formats,
cover pages, OCR verify, API endpoints, worker processing.
13 unit tests pass, 0 new clippy warnings.
2026-07-24 18:47:15 +08:00

5.9 KiB
Raw Blame History

Telfax 測試報告 — V1.0 正式版

測試日期

2026-07-23

測試環境

項目 規格
主機 macOS, Apple Silicon
Modem 1 Agere USR5637 USB (/dev/cu.usbmodem00000021), 電話: 25289852
Modem 2 CONEXANT V90 CX93001 USB (/dev/cu.usbmodem123456781), 電話: 27486656
電話線路 兩條獨立 POTS 線路
遠端傳真機 電話: 25153038
作業系統 macOS (Darwin)
編譯器 Rust 1.95, release profile

測試項目與結果

1. Modem 偵測

測試 結果
USR5637 偵測 (AT+GMI) ✅ Agere Systems U.S. Robotics 56K FAX
V90 CX93001 偵測 (AT+GMI) ✅ CONEXANT V92
Class 1 支援 ✅ 兩台皆支援
TX/RX 速率查詢 ✅ V.21/V.27ter/V.29/V.17

2. 單頁迴圈測試 (Modem ↔ Modem)

測試 方向 連結數 結果
test15 V90 → USR5637 2 ✅ 100% 像素吻合
test20 USR5637 → V90 2 ✅ 100% 像素吻合

3. 多頁迴圈測試 (Modem ↔ Modem)

測試 方向 頁數 結果
test_multi_forward V90 → USR5637 4 ✅ 4/4 頁 100% 像素吻合
test_multi_reverse USR5637 → V90 4 ✅ 4/4 頁 100% 像素吻合

4. 不同輸入格式

格式 測試檔 頁數 結果
TIFF fax_full.tif 4 ✅ 直接傳輸成功
PDF Warren113114.pdf 3 ✅ Ghostscript 轉換 + 傳輸成功
PNG Screenshot 2026-04-01.png 1 ✅ 縮放至 1728px + 傳輸成功

5. 標準解析度傳輸

測試 檔案 解析度 結果
cover_cn.tif cover_cn.tif Standard ✅ 100% 像素吻合

6. 封面頁 (Cover Page)

測試 格式 結果
cover-create TIFF ✅ 1728×2291, 3,959,094 bytes
cover-create HTML ✅ 正確產生 HTML 預覽
cover-create Both ✅ 同時產生 TIFF + HTML
中文內容 張三/測試文件 ✅ CJK 字型正確渲染

7. OCR 封面頁驗證

測試 結果
Tesseract OCR 安裝 ✅ v5.5.2, 含 eng/chi_tra/chi_sim/jpn
PSM 參數正確分離 ✅ --psm 3 修正為 --psm + 3
多語言 OCR ✅ eng + chi_tra 預設啟用
CJK 空格處理 ✅ 張 三 → 張三 比對成功
全欄位驗證 ✅ FACSIMILE, TO, FROM, DATE, PAGES, SUBJECT, NOTES 全部通過

8. PDF 轉換

測試 結果
Ghostscript 可用 ✅ GPL Ghostscript 10.07.1
3 頁 PDF 轉換 ✅ 1728×2291, 3 pages
寬度 clamping (1734→1728) ✅ 修正 US Letter 寬度溢位
Pixel re-encoding ✅ 超寬頁面自動裁切

9. 預覽功能

測試 結果
preview 命令 ✅ 產生 HTML 預覽, base64 內嵌圖片

10. API Server

端點 方法 結果
/api/health GET ✅ 回傳 modem 狀態 + 佇列統計
/api/fax/send POST ✅ 佇列工作成功
/api/fax/jobs GET ✅ 列出所有工作
/api/fax/jobs/{id} GET ✅ 取得工作詳情
/api/fax/jobs/{id}/cover PUT ✅ 更新封面頁欄位 (含中文)
/api/fax/jobs/{id}/retry POST ✅ 重設為 Queued 狀態
/api/fax/jobs/{id} DELETE ✅ 取消工作
Worker 自動啟動 — ✅ 收到佇列任務後自動撥號傳輸

11. ⭐ 正式外線傳真測試 (Real-World)

項目 V90 (27486656) USR5637 (25289852)
目的地 25153038 25153038
協定 Class 1 Class 1
解析度 Fine (196 LPI) Fine (196 LPI)
談判速率 V.17 12000 bps V.17 12000 bps
頁數 4/4 4/4
時間 ~2:33 ~2:26
DIS 收到 ✅ ✅ (跳過 NSF/CSI 直接收到)
DCS + TCF 發送 ✅ ✅
CFR 確認 ✅ ✅
每頁 MCF ✅ 4/4 ✅ 4/4
EOP + DCN ✅ ✅
遠端確認收到 ✅ 確認收到 ✅ 確認收到

傳輸時序 (V90)

01:17:47  撥號開始
01:18:04  連線建立 (CONNECT)
01:18:13  DIS 收到 → V17_12000 談判
01:18:19  CFR 確認 → Page 1 開始 (14,217 bytes)
01:18:29  Page 1 完成 → MCF
01:18:33  Page 2 開始 (49,391 bytes)
01:19:06  Page 2 完成 → MCF
01:19:10  Page 3 開始 (43,273 bytes)
01:19:39  Page 3 完成 → MCF
01:19:43  Page 4 開始 (49,558 bytes)
01:20:16  Page 4 完成 → MCF
01:20:20  EOP → MCF → DCN
01:20:22  傳輸完成

12. 單元測試

test result: ok. 13 passed; 0 failed; 0 ignored
測試名稱 結果
test_compute_fcs ✅
test_compute_fcs_known ✅
test_hdlc_build_and_parse ✅
test_dle_roundtrip ✅
test_dle_unstuff_stops_at_dle_etx ✅
test_parse_hdlc_strips_dle_etx_and_trailing_crlf ✅
test_parse_hdlc_with_dle_in_fif ✅
test_t4_group4_decode_simple ✅
test_document_from_image ✅
test_mh_encode_decode_roundtrip ✅
test_mh_encode_single_line ✅
test_mh_encode_all_white ✅
test_mh_encode_all_black ✅

13. Clippy 品質

lib:  6 warnings (pre-existing: deprecated base64, unused config fields)
bin:  3 warnings (pre-existing: too-many-args, clone ref)

本次修改引入的警告已全部修正: 0 new warnings.

已知限制

項目 說明
Class 2 (V90) 發送失敗 — FDT 返回 OK 但內部 T.30 協定失敗 (FHNG:025)
解析度旗標 -r 參數僅影響 PDF/GS 轉換,對已有 TIFF 無效
Worker 設定 使用舊版 FaxConfig,尚未整合至新版 AppConfig

結論

Telfax V1.0 第一版正式通過全部測試。

  • 單頁 / 多頁迴圈測試: 100% 像素吻合
  • 正式外線傳真: 兩台 modem (USR5637 + V90) 皆成功送達 25153038
  • 4 頁完整傳輸,V.17 12000 bps,全程無錯誤
  • API Server、Worker、封面頁、OCR 驗證、PDF 轉換、預覽功能全部正常
  • 13 項單元測試全部通過