---
generated_at: 2026-02-21 10:30:00
metrics:
  claims_total: 134
  claims_with_evidence: 134
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：os モジュール単体テストケース一覧

## 本レポートについて

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

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

1. **根拠の有無確認**：各テストケースに対して、ソースコードに対応する関数・メソッドが存在するか
2. **根拠との整合性**：テストケースの内容がソースコードの実装と矛盾していないか
3. **網羅性**：対象モジュールの全ての公開関数・クラスをカバーしているか

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：134 / 134、根拠なし：0
- 優先レビュー（高）
  1. なし（全てのテストケースに根拠あり）

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `src/os/accept.php` - accept()関数の定義
- E-02: `src/os/bind.php` - bind()関数の定義
- E-03: `src/os/close.php` - close()関数の定義
- E-04: `src/os/connect.php` - connect()関数の定義
- E-05: `src/os/ErrnoException.php` - 例外クラス群の定義（ErrnoException, BlockingIOException, ChildProcessException, BrokenPipeException, ConnectionAbortedException, ConnectionRefusedException, ConnectionResetException, AlreadyExistsException, NotFoundException, IsADirectoryException, IsNotADirectoryException, PermissionException, ProcessLookupException, TimeoutException）
- E-06: `src/os/Errno.php` - Errno enumの定義
- E-07: `src/os/fcntl.php` - fcntl()関数およびFcntlOp enumの定義
- E-08: `src/os/flock.php` - flock()関数およびLOCK_*定数の定義
- E-09: `src/os/ftruncate.php` - ftruncate()関数の定義
- E-10: `src/os/getpeername.php` - getpeername()関数の定義
- E-11: `src/os/getsockname.php` - getsockname()関数の定義
- E-12: `src/os/HErrno.php` - HErrno enumの定義
- E-13: `src/os/HErrnoException.php` - HErrnoException例外クラスの定義
- E-14: `src/os/in_addr.php` - in_addr typeの定義
- E-15: `src/os/in6_addr.php` - in6_addr newtypeの定義
- E-16: `src/os/inet_ntop.php` - inet_ntop_inet(), inet_ntop_inet6(), inet_ntop()関数の定義
- E-17: `src/os/inet_pton.php` - inet_pton_inet(), inet_pton_inet6(), inet_pton()関数の定義
- E-18: `src/os/isatty.php` - isatty()関数の定義
- E-19: `src/os/listen.php` - listen()関数の定義
- E-20: `src/os/lseek.php` - lseek()関数およびSeekWhence enumの定義
- E-21: `src/os/mkdtemp.php` - mkdtemp()関数の定義
- E-22: `src/os/mkostemps.php` - mkostemps(), mkstemps(), mkostemp(), mkstemp()関数の定義
- E-23: `src/os/open.php` - open()関数およびO_*定数の定義
- E-24: `src/os/pipe.php` - pipe()関数の定義
- E-25: `src/os/read.php` - read()関数の定義
- E-26: `src/os/socket.php` - socket()関数の定義
- E-27: `src/os/sockaddr.php` - sockaddr抽象クラスの定義
- E-28: `src/os/sockaddr_in.php` - sockaddr_inクラスの定義
- E-29: `src/os/sockaddr_in6.php` - sockaddr_in6クラスの定義
- E-30: `src/os/sockaddr_un.php` - sockaddr_unクラスの定義
- E-31: `src/os/SocketDomain.php` - SocketDomain enumの定義
- E-32: `src/os/SocketType.php` - SocketType enumの定義
- E-33: `src/os/spawn.php` - posix_spawn(), posix_spawnp(), posix_spawn_file_actions_addopen, posix_spawn_file_actions_adddup2, posix_spawn_file_actions_addchdir_np クラス・関数の定義
- E-34: `src/os/stdio.php` - stdin(), stdout(), stderr()関数の定義
- E-35: `src/os/ttyname.php` - ttyname()関数の定義
- E-36: `src/os/write.php` - write()関数の定義
- E-37: `src/os/AddressFamily.php` - AddressFamily enumの定義

## 3) Claims と根拠の対応（レビューの主戦場）

### ソケット関連関数
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-OSS-001) | accept()が接続を受け入れてFileDescriptorとsockaddrを返却 | E-01 | ○ |
| C-02 (UT-OSS-002) | accept()が無効なFDでErrnoExceptionをスロー | E-01 | ○ |
| C-03 (UT-OSS-003) | accept()がlisten状態でないソケットでエラー | E-01 | ○ |
| C-04 (UT-OSS-004) | bind()がソケットにアドレスをバインド | E-02 | ○ |
| C-05 (UT-OSS-005) | bind()が無効なFDでエラー | E-02 | ○ |
| C-06 (UT-OSS-006) | bind()が既使用アドレスでEADDRINUSE | E-02 | ○ |
| C-10 (UT-OSS-010) | connect()がソケット接続を確立 | E-04 | ○ |
| C-11 (UT-OSS-011) | connect()が接続先不在でConnectionRefusedException | E-04, E-05 | ○ |
| C-58 (UT-OSS-058) | listen()がソケットをlisten状態にする | E-19 | ○ |
| C-95 (UT-OSS-095) | socket()がTCPソケットを作成 | E-26 | ○ |
| C-96 (UT-OSS-096) | socket()がUDPソケットを作成 | E-26 | ○ |
| C-97 (UT-OSS-097) | socket()がUNIXドメインソケットを作成 | E-26 | ○ |

### ファイル操作関数
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-07 (UT-OSS-007) | close()がFDをクローズ | E-03 | ○ |
| C-08 (UT-OSS-008) | close()が無効なFDでEBADF | E-03 | ○ |
| C-23 (UT-OSS-023) | fcntl()がF_GETFLでフラグ取得 | E-07 | ○ |
| C-24 (UT-OSS-024) | fcntl()がF_SETFLでフラグ設定 | E-07 | ○ |
| C-26 (UT-OSS-026) | flock()がLOCK_EXで排他ロック | E-08 | ○ |
| C-29 (UT-OSS-029) | flock()がLOCK_*未指定でEINVAL | E-08 | ○ |
| C-31 (UT-OSS-031) | ftruncate()がファイルを切り詰め | E-09 | ○ |
| C-33 (UT-OSS-033) | ftruncate()が負のlengthでエラー | E-09 | ○ |
| C-61 (UT-OSS-061) | lseek()がSEEK_SETで位置設定 | E-20 | ○ |
| C-78 (UT-OSS-078) | open()がO_RDONLYでファイルオープン | E-23 | ○ |
| C-82 (UT-OSS-082) | open()がO_RDONLY/O_WRONLY/O_RDWR未指定でEINVAL | E-23 | ○ |
| C-84 (UT-OSS-084) | open()がO_CREATでmode未指定でEINVAL | E-23 | ○ |
| C-87 (UT-OSS-087) | pipe()がパイプペアを作成 | E-24 | ○ |
| C-90 (UT-OSS-090) | read()がファイルからデータを読み取り | E-25 | ○ |
| C-130 (UT-OSS-130) | write()がファイルにデータを書き込み | E-36 | ○ |

### 一時ファイル・ディレクトリ関数
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-66 (UT-OSS-066) | mkdtemp()が一時ディレクトリを作成 | E-21 | ○ |
| C-68 (UT-OSS-068) | mkdtemp()がXXXXXXで終わらないテンプレートでEINVAL | E-21 | ○ |
| C-70 (UT-OSS-070) | mkostemps()が一時ファイルを作成 | E-22 | ○ |
| C-72 (UT-OSS-072) | mkostemps()が負のsuffix_lengthでエラー | E-22 | ○ |
| C-74 (UT-OSS-074) | mkostemps()がXXXXXX未含有テンプレートでエラー | E-22 | ○ |

### IPアドレス変換関数
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-41 (UT-OSS-041) | inet_ntop_inet()がIPv4をドット表記に変換 | E-16 | ○ |
| C-43 (UT-OSS-043) | inet_ntop_inet6()がIPv6をコロン表記に変換 | E-16 | ○ |
| C-44 (UT-OSS-044) | inet_ntop()がAF_INETでIPv4変換 | E-16 | ○ |
| C-46 (UT-OSS-046) | inet_ntop()がAF_INETでint以外でEINVAL | E-16 | ○ |
| C-48 (UT-OSS-048) | inet_ntop()が未サポートAFでEAFNOSUPPORT | E-16 | ○ |
| C-49 (UT-OSS-049) | inet_pton_inet()がドット表記をネットワーク形式に変換 | E-17 | ○ |
| C-50 (UT-OSS-050) | inet_pton_inet()が無効なアドレスでEINVAL | E-17 | ○ |

### 例外クラス
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-13 (UT-OSS-013) | ErrnoExceptionが正しく構築される | E-05 | ○ |
| C-14 (UT-OSS-014) | ErrnoException.getErrno()がerrnoを返却 | E-05 | ○ |
| C-15 (UT-OSS-015) | BlockingIOExceptionが有効なerrnoで構築 | E-05 | ○ |
| C-16 (UT-OSS-016) | BlockingIOExceptionが無効なerrnoでinvariant違反 | E-05 | ○ |
| C-17 (UT-OSS-017) | ChildProcessExceptionが正しく構築 | E-05 | ○ |
| C-39 (UT-OSS-039) | HErrnoExceptionが正しく構築される | E-13 | ○ |

### sockaddrクラス群
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-99 (UT-OSS-099) | sockaddr.getFamily()がAddressFamilyを返却 | E-27 | ○ |
| C-100 (UT-OSS-100) | sockaddr_inが正しく構築される | E-28 | ○ |
| C-101 (UT-OSS-101) | sockaddr_in.getFamily()がAF_INETを返却 | E-28 | ○ |
| C-104 (UT-OSS-104) | sockaddr_in6が正しく構築される | E-29 | ○ |
| C-110 (UT-OSS-110) | sockaddr_unが正しく構築される | E-30 | ○ |
| C-111 (UT-OSS-111) | sockaddr_unがnullパスで構築可能 | E-30 | ○ |

### プロセス生成関数
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-115 (UT-OSS-115) | posix_spawn()がプロセスをスポーン | E-33 | ○ |
| C-117 (UT-OSS-117) | posix_spawnp()がPATH検索してスポーン | E-33 | ○ |
| C-118 (UT-OSS-118) | posix_spawn_file_actions_addopenがファイルをオープン | E-33 | ○ |
| C-120 (UT-OSS-120) | posix_spawn_file_actions_addchdir_npが作業ディレクトリ変更 | E-33 | ○ |
| C-121 (UT-OSS-121) | posix_spawn_file_actions_addchdir_npが存在しないディレクトリでENOENT | E-33 | ○ |
| C-122 (UT-OSS-122) | posix_spawn_file_actions_addchdir_npがファイル指定でENOTDIR | E-33 | ○ |

### 標準入出力・TTY関数
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-55 (UT-OSS-055) | isatty()がTTYでtrueを返却 | E-18 | ○ |
| C-56 (UT-OSS-056) | isatty()が非TTYでfalseを返却 | E-18 | ○ |
| C-123 (UT-OSS-123) | stdin()が標準入力FDを取得 | E-34 | ○ |
| C-125 (UT-OSS-125) | stdout()が標準出力FDを取得 | E-34 | ○ |
| C-126 (UT-OSS-126) | stderr()が標準エラー出力FDを取得 | E-34 | ○ |
| C-127 (UT-OSS-127) | ttyname()がTTY名を取得 | E-35 | ○ |
| C-128 (UT-OSS-128) | ttyname()が非TTYでENOTTY | E-35 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし
  - 全てのテストケースは対応するソースコードを根拠として生成されています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全てのテストケースがソースコードに基づいて生成されています
- ソケット関連のテスト（UT-OSS-001〜012, 058, 095〜098）は実際のネットワーク環境に依存するため、テスト実行時に環境設定が必要な場合があります
- spawn関連のテスト（UT-OSS-115〜122）はプロセス生成を伴うため、テスト実行時間やリソース消費に注意が必要です

## 6) レビュアーチェックリスト（最小）
- [ ] ソケット関連テスト（UT-OSS-001〜012）のテスト環境が整っているか確認
- [ ] ファイル操作テスト（UT-OSS-007〜009, 031〜034, 078〜086, 090〜094）でテスト用一時ファイルの作成・削除が適切に行われるか確認
- [ ] 一時ディレクトリ・ファイル作成テスト（UT-OSS-066〜077）で/tmpディレクトリへのアクセス権限があるか確認
- [ ] プロセス生成テスト（UT-OSS-115〜122）でテスト対象の実行可能ファイルが存在するか確認
- [ ] 例外クラスのテスト（UT-OSS-013〜022, 039〜040）でinvariant違反のテストが安全に実行できるか確認
- [ ] TTY関連テスト（UT-OSS-055〜057, 127〜129）の実行環境がCLIモードか確認
