---
generated_at: 2026-02-22 12:00:00
metrics:
  claims_total: 202
  claims_with_evidence: 192
  claims_without_evidence: 10
confidence_derived: 0.95
---

# 根拠レポート：unix-platform 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧（unix-platform.csv）の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：192 / 202、根拠なし：10
- 優先レビュー（高）
  1. **IBMi関連テストケース（UT-UPF-164〜170）**：EBCDIC/ASCII変換やQWCRSSTSシステムAPI呼び出しの内部動作は、実機でないと完全に検証できない
  2. **OS/390 epollエミュレーション（UT-UPF-184〜191）**：OS/390固有のepollエミュレーション層の動作はメインフレーム環境でのみ検証可能
  3. **io_uring関連テストケース（UT-UPF-052〜055）**：io_uringの利用可否はカーネルバージョンに依存し、内部SQE発行の詳細挙動はカーネル依存

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `src/unix/linux.c` - Linux固有プラットフォーム実装（epoll, inotify, io_uring, cgroup, procfs）
- E-02: `src/unix/darwin.c` - macOS固有プラットフォーム実装（kqueue, Mach API, sysctl）
- E-03: `src/unix/darwin-stub.h` - macOS FSEvents型定義ヘッダ
- E-04: `src/unix/darwin-syscalls.h` - macOS syscalls宣言（recvmsg_x, sendmsg_x）
- E-05: `src/unix/freebsd.c` - FreeBSD固有プラットフォーム実装（kqueue, sysctl）
- E-06: `src/unix/netbsd.c` - NetBSD固有プラットフォーム実装（kqueue, kvm, sysctl）
- E-07: `src/unix/openbsd.c` - OpenBSD固有プラットフォーム実装（kqueue, sysctl）
- E-08: `src/unix/aix.c` - AIX固有プラットフォーム実装（pollset, AHAFS, kstat相当）
- E-09: `src/unix/aix-common.c` - AIX共通実装（高精度時刻, exepath）
- E-10: `src/unix/sunos.c` - SunOS/Solaris固有プラットフォーム実装（event port, kstat）
- E-11: `src/unix/cygwin.c` - Cygwin固有プラットフォーム実装（sysinfo, procfs）
- E-12: `src/unix/haiku.c` - Haiku固有プラットフォーム実装（BeOS API）
- E-13: `src/unix/hurd.c` - GNU Hurd固有プラットフォーム実装（Mach API, procfs）
- E-14: `src/unix/ibmi.c` - IBM i固有プラットフォーム実装（QWCRSSTS, EBCDIC変換）
- E-15: `src/unix/qnx.c` - QNX固有プラットフォーム実装（syspage, devctl）
- E-16: `src/unix/os390.c` - OS/390(z/OS)固有プラットフォーム実装（epollエミュレーション, メッセージキュー）
- E-17: `src/unix/os390-syscalls.c` - OS/390システムコールエミュレーション（epoll, scandir, mkdtemp, セマフォ）
- E-18: `src/unix/os390-syscalls.h` - OS/390システムコール宣言ヘッダ

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01〜C-06 | uv__kernel_version: Linuxカーネルバージョン取得（Ubuntu/Debian/UNAME26対応含む） | E-01 (L299-368) | ○ |
| C-07〜C-08 | uv__platform_loop_init (Linux): epoll初期化とエラーハンドリング | E-01 (L637-654) | ○ |
| C-09 | uv__platform_loop_delete (Linux): リソース解放 | E-01 (L677-689) | ○ |
| C-10〜C-11 | uv__io_fork (Linux): fork後のepoll再初期化 | E-01 (L657-674) | ○ |
| C-12 | uv__platform_invalidate_fd (Linux): fd無効化 | E-01 (L699-729) | ○ |
| C-13〜C-14 | uv__io_check_fd (Linux): fd検証 | E-01 (L732-750) | ○ |
| C-15〜C-16 | uv__hrtime (Linux): CLOCK_MONOTONIC/COARSE | E-01 (L1603-1637) | ○ |
| C-17〜C-19 | uv_resident_set_memory (Linux): /proc/self/stat | E-01 (L1640-1673) | ○ |
| C-20〜C-21 | uv_uptime (Linux): /proc/uptime + CLOCK_BOOTTIME | E-01 (L1675-1692) | ○ |
| C-22〜C-23 | uv_cpu_info (Linux): /proc/cpuinfo + /proc/stat | E-01 (L1695-) | ○ |
| C-24〜C-27 | uv_get_free_memory/total_memory (Linux): /proc/meminfo + sysinfo | E-01 (L2036-2087) | ○ |
| C-28〜C-33 | uv_get_constrained/available_memory (Linux): cgroup v1/v2 | E-01 (L2108-2287) | ○ |
| C-34〜C-36 | uv__get_constrained_cpu (Linux): cgroup v1/v2 CPU制限 | E-01 (L2290-2448) | ○ |
| C-37〜C-38 | uv_loadavg (Linux): /proc/loadavg + sysinfo | E-01 (L2451-2465) | ○ |
| C-39〜C-42 | uv_interface_addresses (Linux): getifaddrs | E-01 (L1939-2026) | ○ |
| C-43 | uv__set_process_title (Linux): prctl | E-01 (L2029-2033) | ○ |
| C-44 | uv__statx_to_stat: 構造体変換 | E-01 (L1120-) | ○ |
| C-45〜C-51 | uv_fs_event (Linux): inotify | E-01 (L2657-2744) | ○ |
| C-52〜C-55 | io_uring FS操作: close/open/read_write/statx | E-01 (L826-1120) | △ |
| C-56〜C-57 | uv__getrandom: getrandomシステムコール | E-01 (L412-) | ○ |
| C-58〜C-76 | darwin.c: macOS全関数 | E-02, E-03 | ○ |
| C-77〜C-85 | freebsd.c: FreeBSD全関数 | E-05 | ○ |
| C-86〜C-93 | netbsd.c: NetBSD全関数 | E-06 | ○ |
| C-94〜C-97 | openbsd.c: OpenBSD全関数 | E-07 | ○ |
| C-98〜C-111 | aix.c + aix-common.c: AIX全関数 | E-08, E-09 | ○ |
| C-112〜C-114 | aix-common.c: AIX共通関数 | E-09 | ○ |
| C-115〜C-131 | sunos.c: SunOS全関数 | E-10 | ○ |
| C-132〜C-136 | cygwin.c: Cygwin全関数 | E-11 | ○ |
| C-137〜C-145 | haiku.c: Haiku全関数 | E-12 | ○ |
| C-146〜C-154 | hurd.c: Hurd全関数 | E-13 | ○ |
| C-155〜C-163 | qnx.c: QNX全関数 | E-15 | ○ |
| C-164〜C-170 | ibmi.c: IBMi関数（EBCDIC変換, QWCRSSTS） | E-14 | △ |
| C-171〜C-183 | os390.c: OS/390プラットフォーム関数 | E-16 | ○ |
| C-184〜C-202 | os390-syscalls.c: epollエミュレーション・ユーティリティ | E-17, E-18 | △ |

## 4) 不足情報（Unknown / Missing）
- **io_uring内部動作（C-52〜C-55）**：io_uringのSQE発行後の完了処理はカーネル内部動作に依存するため、ユニットテストとしてのモック方法が不明確
  - 候補：io_uringのCQ処理を含めた統合テスト / fakeカーネル層の利用 / カーネルバージョン条件付きテスト
- **IBMi固有API（C-164〜C-170）**：QWCRSSTS等のIBMi固有APIの動作はIBMi実機環境でしか確認できない
  - 候補：IBMi実機テスト / PASE環境でのエミュレーション / APIスタブによるモック
- **OS/390 epollエミュレーション（C-184〜C-202）**：pollset + メッセージキューによるepollエミュレーションはz/OS環境でしか検証不可
  - 候補：z/OS実機テスト / エミュレータ環境 / 抽象化層のモック

## 5) リスクフラグ（レビュー観点）
- **リスク1（高）**: io_uring関連テストケースはカーネル5.1+依存。利用不可環境でスキップされるフォールバックパスのテストも必要
- **リスク1（中）**: プラットフォーム固有テストケースは当該OS上でしか実行できないため、CI/CDでの全プラットフォームカバレッジ確保が課題
- **リスク0（低）**: ヘッダファイル（darwin-stub.h, darwin-syscalls.h, os390-syscalls.h）は型定義のみでテスト対象外だが、不正な定義によりリンクエラーが発生する可能性あり

## 6) レビュアーチェックリスト（最小）
- [ ] 全18ファイルの主要public関数がCSVに含まれているか確認
- [ ] Linux固有のcgroup v1/v2テストケースがメモリ制限・CPU制限の両方をカバーしているか確認
- [ ] 各プラットフォームのuv_exepath()に対するNULLバリデーションテストが含まれているか確認
- [ ] uv_fs_event_init/start/stop/closeの状態遷移テストが十分か確認
- [ ] io_uring関連テストケースのフォールバック（非io_uring）パスのテストが必要か検討
- [ ] OS/390 epollエミュレーション（os390-syscalls.c）のセマフォ関連テストの前提条件が正しいか確認
- [ ] IBMi特有のEBCDIC/ASCII変換処理のテストケースが不足していないか確認
- [ ] メモリ割り当て失敗（UV_ENOMEM）テストが主要関数に対して網羅されているか確認
