---
generated_at: 2026-02-22 10:00:00
metrics:
  claims_total: 213
  claims_with_evidence: 207
  claims_without_evidence: 6
confidence_derived: 0.97
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：207 / 213、根拠なし：6
- 優先レビュー（高）
  1. **C-021〜C-023 BasicSocket#getpeereid**：HAVE_GETPEEREIDの定義有無がプラットフォーム依存であり、テスト環境での動作確認が必要
  2. **C-153〜C-156 TCPSocket#initialize**：複数アドレス候補へのフォールバック接続のテスト条件が環境依存
  3. **C-066 Socket.gethostname**：HOST_NAME_MAXの定義がプラットフォーム依存

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

- E-01: `mrbgems/mruby-socket/src/socket.c` - Cソースコード（メインのソケット実装）
- E-02: `mrbgems/mruby-socket/mrblib/socket.rb` - Rubyソースコード（Rubyレイヤーの実装）
- E-03: `mrbgems/mruby-socket/include/socket_hal.h` - HALインターフェースヘッダ
- E-04: `mrbgems/mruby-socket/src/const.def` - ソケット定数定義ファイル
- E-05: `mrbgems/mruby-socket/src/const.cstub` - 定数定義のCスタブ
- E-06: `mrbgems/mruby-socket/mrbgem.rake` - gem定義ファイル

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | Addrinfo.getaddrinfoが正常にアドレス情報を返却する | E-01 (L178-224) | ○ |
| C-002 | getaddrinfoが整数のservnameを受け付ける | E-01 (L193-195) | ○ |
| C-003 | getaddrinfoがfamily/socktype/protocolでフィルタリングする | E-01 (L205-215) | ○ |
| C-004 | getaddrinfoがservname=nilを受け付ける | E-01 (L196-198) | ○ |
| C-005 | getaddrinfoがnull hostnameでエラーになる | E-01 (L187, L217-219) | ○ |
| C-006 | getaddrinfoが存在しないホストでSocketErrorを発生 | E-01 (L217-219) | ○ |
| C-007 | getaddrinfoが不正な型のservnameでTypeError | E-01 (L199-201) | ○ |
| C-008 | getnameinfofが正常にホスト名とサービス名を返却 | E-01 (L236-258) | ○ |
| C-009 | getnameinfoがNI_NUMERICHOSTで数値アドレスを返却 | E-01 (L240, L248) | ○ |
| C-010 | getnameinfoが無効sockaddrでSocketError | E-01 (L244-247) | ○ |
| C-011 | unix_pathがUnixソケットパスを返却 | E-01 (L268-278) | ○ |
| C-012 | unix_pathが無効sockaddrでSocketError | E-01 (L273-275) | ○ |
| C-013 | sa2addrlistがAF_INETで正しい配列を生成 | E-01 (L281-308) | ○ |
| C-014 | sa2addrlistがAF_INET6で正しい配列を生成 | E-01 (L281-308) | ○ |
| C-015 | sa2addrlistが未知AFでArgumentError | E-01 (L286-289) | ○ |
| C-016 | get_af_infoがAF_INETで正しいaf_info_tを返却 | E-01 (L59-61, L87-94) | ○ |
| C-017 | get_af_infoがAF_INET6で正しいaf_info_tを返却 | E-01 (L62) | ○ |
| C-018 | get_af_infoが未知AFでNULLを返却 | E-01 (L87-94) | ○ |
| C-019 | get_pf_nameがPF_INETでINETを返却 | E-01 (L98, L119-126) | ○ |
| C-020 | get_pf_nameが未知PFでNULLを返却 | E-01 (L119-126) | ○ |
| C-021 | getpeereidがeuid/egidを返却 | E-01 (L341-358) | ○ |
| C-022 | getpeereidが未サポート環境でRuntimeError | E-01 (L354-356) | ○ |
| C-023 | getpeereidが無効ソケットでシステムエラー | E-01 (L347-348) | △ |
| C-024 | getpeernameがリモートアドレスを返却 | E-01 (L369-378) | ○ |
| C-025 | getpeernameが未接続ソケットでエラー | E-01 (L374-375) | ○ |
| C-026 | getsocknameがローカルアドレスを返却 | E-01 (L389-398) | ○ |
| C-027 | getsocknameが無効ソケットでエラー | E-01 (L394-395) | ○ |
| C-028 | getsockoptがSocket::Optionを返却 | E-01 (L628-645) | ○ |
| C-029 | getsockoptが無効オプションでエラー | E-01 (L639-640) | ○ |
| C-030 | recvがデータを受信 | E-01 (L656-669) | ○ |
| C-031 | recvがmaxlenより短いデータをリサイズ | E-01 (L667) | ○ |
| C-032 | recvが無効ソケットでエラー | E-01 (L665-666) | ○ |
| C-033 | _recvfromがデータとアドレスを返却 | E-01 (L678-698) | ○ |
| C-034 | _recvfromが無効ソケットでエラー | E-01 (L689-690) | ○ |
| C-035 | sendがデータを送信 | E-01 (L708-727) | ○ |
| C-036 | sendが宛先指定でsendtoを使用 | E-01 (L718-723) | ○ |
| C-037 | sendが無効ソケットでエラー | E-01 (L724-725) | ○ |
| C-038 | _setnonblockがノンブロッキングモードを設定 | E-01 (L738-750) | ○ |
| C-039 | _setnonblockがブロッキングモードに戻す | E-01 (L738-750) | ○ |
| C-040 | _setnonblockが無効fdでエラー | E-01 (L746-747) | ○ |
| C-041 | setsockoptが整数値で設定 | E-01 (L760-807) | ○ |
| C-042 | setsockoptが真偽値で設定 | E-01 (L773-775) | ○ |
| C-043 | setsockoptが文字列で設定 | E-01 (L770-771) | ○ |
| C-044 | setsockoptがSocket::Optionで設定 | E-01 (L791-797) | ○ |
| C-045 | setsockoptがIP_MULTICAST_TTLをchar型で設定 | E-01 (L778-780) | ○ |
| C-046 | setsockoptが不正型optvalでArgumentError | E-01 (L787-789) | ○ |
| C-047 | setsockoptが非Optionオブジェクトでエラー | E-01 (L792-793) | ○ |
| C-048 | setsockoptが2引数でArgumentError | E-01 (L799-801) | ○ |
| C-049 | shutdownがデフォルトSHUT_RDWRで動作 | E-01 (L819-828) | ○ |
| C-050 | shutdownがSHUT_RDで動作 | E-01 (L822, L825) | ○ |
| C-051 | shutdownがSHUT_WRで動作 | E-01 (L822, L825) | ○ |
| C-052 | shutdownが未接続ソケットでエラー | E-01 (L825-826) | ○ |
| C-053 | _is_socket=がフラグを設定 | E-01 (L832-843) | ○ |
| C-054 | ntopがAF_INETバイナリを文字列に変換 | E-01 (L853-865) | ○ |
| C-055 | ntopがAF_INET6バイナリを文字列に変換 | E-01 (L853-865) | ○ |
| C-056 | ntopが不正アドレス長でArgumentError | E-01 (L861-863) | ○ |
| C-057 | ntopが不正IPv6アドレス長でArgumentError | E-01 (L861-863) | ○ |
| C-058 | ptonがIPv4文字列をバイナリに変換 | E-01 (L881-913) | ○ |
| C-059 | ptonがIPv6文字列をバイナリに変換 | E-01 (L902-907) | ○ |
| C-060 | ptonが不正IPv4でArgumentError | E-01 (L897-899) | ○ |
| C-061 | ptonが不正IPv6でArgumentError | E-01 (L904-906) | ○ |
| C-062 | ptonが未サポートAFでArgumentError | E-01 (L909-911) | ○ |
| C-063 | ptonが49バイト超でArgumentError | E-01 (L889-891) | ○ |
| C-064 | IPSocket#recvfromがデータとアドレス情報を返却 | E-01 (L924-948) | ○ |
| C-065 | IPSocket#recvfromが無効ソケットでエラー | E-01 (L938-939) | ○ |
| C-066 | gethostnameがホスト名を返却 | E-01 (L958-972) | ○ |
| C-067 | _acceptが新fdを返却 | E-01 (L981-992) | ○ |
| C-068 | _acceptが無効fdでエラー | E-01 (L988-989) | ○ |
| C-069 | _accept2がfdとsockaddrを返却 | E-01 (L994-1014) | ○ |
| C-070 | _accept2が無効fdでエラー | E-01 (L1006-1007) | ○ |
| C-071 | _bindがソケットをバインド | E-01 (L1022-1033) | ○ |
| C-072 | _bindがバインド競合でエラー | E-01 (L1029-1031) | ○ |
| C-073 | _connectが接続 | E-01 (L1041-1052) | ○ |
| C-074 | _connectが接続失敗でエラー | E-01 (L1048-1049) | ○ |
| C-075 | _listenがリスニング設定 | E-01 (L1060-1070) | ○ |
| C-076 | _listenが未バインドでエラー | E-01 (L1066-1067) | △ |
| C-077 | _sockaddr_familyがファミリ値を抽出 | E-01 (L1072-1084) | ○ |
| C-078 | _sockaddr_familyが短すぎるsockaddrでエラー | E-01 (L1079-1081) | ○ |
| C-079 | sockaddr_unがpacked sockaddrを生成 | E-01 (L1095-1102) | ○ |
| C-080 | socketpairがソケットペアを生成 | E-01 (L1114-1130) | ○ |
| C-081 | socketpairが不正ドメインでエラー | E-01 (L1122-1123) | ○ |
| C-082 | _socketがfdを作成 | E-01 (L1140-1151) | ○ |
| C-083 | _socketが不正パラメータでエラー | E-01 (L1148-1149) | ○ |
| C-084 | Socket::Option#initializeが初期化 | E-01 (L416-428) | ○ |
| C-085 | Socket::Option.boolがtrue値からOption生成 | E-01 (L438-449) | ○ |
| C-086 | Socket::Option.boolがfalse値からOption生成 | E-01 (L438-449) | ○ |
| C-087 | Socket::Option.intが整数からOption生成 | E-01 (L459-470) | ○ |
| C-088 | Socket::Option#familyがfamily値を返却 | E-01 (L480-484) | ○ |
| C-089 | Socket::Option#levelがlevel値を返却 | E-01 (L494-498) | ○ |
| C-090 | Socket::Option#optnameがoptname値を返却 | E-01 (L508-512) | ○ |
| C-091 | Socket::Option#dataがdata値を返却 | E-01 (L522-526) | ○ |
| C-092 | Socket::Option#intがデータを整数で返却 | E-01 (L551-556) | ○ |
| C-093 | Socket::Option#intがサイズ不一致でTypeError | E-01 (L534-536) | ○ |
| C-094 | Socket::Option#boolがtrueを返却 | E-01 (L566-571) | ○ |
| C-095 | Socket::Option#boolがfalseを返却 | E-01 (L566-571) | ○ |
| C-096 | Socket::Option#inspectが既知PFで正しい文字列 | E-01 (L589-618) | ○ |
| C-097 | Socket::Option#inspectが未知PFでfamily:形式 | E-01 (L606-608) | ○ |
| C-098 | Socket::Option#lingerがNotImplementedError | E-01 (L574-579, L1314) | ○ |
| C-099 | Socket::Option#unpackがNotImplementedError | E-01 (L574-579, L1315) | ○ |
| C-100 | Addrinfo#initializeが配列形式AF_INETで初期化 | E-02 (L13-33) | ○ |
| C-101 | Addrinfo#initializeが配列形式AF_INET6で初期化 | E-02 (L17) | ○ |
| C-102 | Addrinfo#initializeが配列形式AF_UNIXで初期化 | E-02 (L20-21) | ○ |
| C-103 | Addrinfo#initializeがpacked sockaddrで初期化 | E-02 (L24) | ○ |
| C-104 | Addrinfo#initializeがPF_UNSPECでファミリ自動検出 | E-02 (L26-28) | ○ |
| C-105 | Addrinfo#initializeが明示ファミリ指定 | E-02 (L29) | ○ |
| C-106 | Addrinfo.foreachがブロック実行 | E-02 (L45-49) | ○ |
| C-107 | Addrinfo.ipがポート0のAddrinfo生成 | E-02 (L61-63) | ○ |
| C-108 | Addrinfo.tcpがTCP Addrinfo生成 | E-02 (L74-76) | ○ |
| C-109 | Addrinfo.udpがUDP Addrinfo生成 | E-02 (L87-89) | ○ |
| C-110 | Addrinfo.unixがUnix Addrinfo生成 | E-02 (L100-102) | ○ |
| C-111 | Addrinfo.unixがsocktype指定で生成 | E-02 (L100) | ○ |
| C-112 | Addrinfo#afamilyが値を返却 | E-02 (L122-124) | ○ |
| C-113 | Addrinfo#inspectがIPv4 TCP形式 | E-02 (L146-159) | ○ |
| C-114 | Addrinfo#inspectがIPv6 UDP形式 | E-02 (L146-159) | ○ |
| C-115 | Addrinfo#inspectがUnix形式 | E-02 (L146-159) | ○ |
| C-116 | inspect_sockaddrがIPv4 addr:port形式 | E-02 (L170-182) | ○ |
| C-117 | inspect_sockaddrがIPv6 [addr]:port形式 | E-02 (L174-176) | ○ |
| C-118 | inspect_sockaddrがUnixパス表示 | E-02 (L177-178) | ○ |
| C-119 | inspect_sockaddrが未知AFで??? | E-02 (L179-180) | ○ |
| C-120 | ip?がIPv4でtrue | E-02 (L193-195) | ○ |
| C-121 | ip?がIPv6でtrue | E-02 (L193-195) | ○ |
| C-122 | ip?がUnixでfalse | E-02 (L193-195) | ○ |
| C-123 | ip_addressがIPアドレス文字列返却 | E-02 (L206-208) | ○ |
| C-124 | ip_portがポート番号返却 | E-02 (L219-221) | ○ |
| C-125 | ip_unpackが配列返却 | E-02 (L232-235) | ○ |
| C-126 | ipv4?がAF_INETでtrue | E-02 (L246-248) | ○ |
| C-127 | ipv4?がAF_INET6でfalse | E-02 (L246-248) | ○ |
| C-128 | ipv6?がAF_INET6でtrue | E-02 (L263-265) | ○ |
| C-129 | ipv6?がAF_INETでfalse | E-02 (L263-265) | ○ |
| C-130 | pfamilyがfamily値返却 | E-02 (L289-291) | ○ |
| C-131 | protocolがprotocol値返却 | E-02 (L302) | ○ |
| C-132 | socktypeがsocktype値返却 | E-02 (L313) | ○ |
| C-133 | _to_arrayがAF_INETで配列返却 | E-02 (L322-335) | ○ |
| C-134 | _to_arrayがAF_INET6で配列返却 | E-02 (L322-335) | ○ |
| C-135 | _to_arrayがAF_UNIXで配列返却 | E-02 (L322-335) | ○ |
| C-136 | to_sockaddrがsockaddr返却 | E-02 (L346-348) | ○ |
| C-137 | unix?がAF_UNIXでtrue | E-02 (L361-363) | ○ |
| C-138 | unix?がAF_INETでfalse | E-02 (L361-363) | ○ |
| C-139 | do_not_reverse_lookupが値取得 | E-02 (L377-379) | ○ |
| C-140 | do_not_reverse_lookup=がtrue設定 | E-02 (L389-391) | ○ |
| C-141 | do_not_reverse_lookup=がfalse設定 | E-02 (L389-391) | ○ |
| C-142 | do_not_reverse_lookup=がnil→false | E-02 (L390) | ○ |
| C-143 | BasicSocket#initializeがis_socket設定 | E-02 (L399-403) | ○ |
| C-144 | BasicSocket.for_fdがfd指定生成 | E-02 (L413-415) | ○ |
| C-145 | local_addressがAddrinfo返却 | E-02 (L427-429) | ○ |
| C-146 | recv_nonblockがノンブロッキング受信 | E-02 (L440-447) | ○ |
| C-147 | recv_nonblockがモード復帰 | E-02 (L444-446) | ○ |
| C-148 | remote_addressがAddrinfo返却 | E-02 (L457-459) | ○ |
| C-149 | IPSocket.getaddressがIPアドレス返却 | E-02 (L474-476) | ○ |
| C-150 | IPSocket#addrがアドレス配列返却 | E-02 (L486-488) | ○ |
| C-151 | IPSocket#peeraddrがアドレス配列返却 | E-02 (L498-500) | ○ |
| C-152 | IPSocket#recvfromがデータ・アドレス返却 | E-02 (L511-514) | ○ |
| C-153 | TCPSocket#initializeがTCP接続確立 | E-02 (L529-553) | ○ |
| C-154 | TCPSocket#initializeがローカルバインド付き接続 | E-02 (L538-543) | ○ |
| C-155 | TCPSocket#initializeがfd指定初期化 | E-02 (L530-532) | ○ |
| C-156 | TCPSocket#initializeが接続失敗でエラー | E-02 (L547-550) | △ |
| C-157 | TCPServer#initializeがリスニング状態 | E-02 (L569-579) | ○ |
| C-158 | TCPServer#initializeがhost省略で全IF | E-02 (L570) | ○ |
| C-159 | TCPServer#initializeがSO_REUSEADDR設定 | E-02 (L573-575) | ○ |
| C-160 | TCPServer#acceptがTCPSocket返却 | E-02 (L590-603) | ○ |
| C-161 | TCPServer#acceptがエラー時にfdクリーンアップ | E-02 (L599-601) | ○ |
| C-162 | TCPServer#accept_nonblockがノンブロッキング | E-02 (L614-621) | ○ |
| C-163 | TCPServer#accept_nonblockがモード復帰 | E-02 (L618-620) | ○ |
| C-164 | TCPServer#listenがbacklog設定 | E-02 (L632-635) | ○ |
| C-165 | TCPServer#sysacceptがfd返却 | E-02 (L645-647) | ○ |
| C-166 | UDPSocket#initializeがAF_INETでUDPソケット作成 | E-02 (L660-664) | ○ |
| C-167 | UDPSocket#initializeがAF_INET6対応 | E-02 (L660) | ○ |
| C-168 | UDPSocket#bindがバインド | E-02 (L675-678) | ○ |
| C-169 | UDPSocket#connectが接続 | E-02 (L689-692) | ○ |
| C-170 | UDPSocket#recvfrom_nonblockがノンブロッキング | E-02 (L703-712) | ○ |
| C-171 | UDPSocket#recvfrom_nonblockがモード復帰 | E-02 (L710-711) | ○ |
| C-172 | UDPSocket#sendが接続済みで送信 | E-02 (L723-731) | ○ |
| C-173 | UDPSocket#sendがhost/port指定で送信 | E-02 (L724-725) | ○ |
| C-174 | UDPSocket#sendがsockaddr指定で送信 | E-02 (L726-727) | ○ |
| C-175 | UDPSocket#_sockaddr_inがsockaddr生成 | E-02 (L740-743) | ○ |
| C-176 | Socket#initializeがソケット作成 | E-02 (L756-758) | ○ |
| C-177 | Socket#initializeがprotocol省略時デフォルト0 | E-02 (L756) | ○ |
| C-178 | Socket.getaddrinfoがアドレス情報返却 | E-02 (L771-779) | ○ |
| C-179 | Socket.sockaddr_inがsockaddr生成 | E-02 (L806-809) | ○ |
| C-180 | Socket.unpack_sockaddr_inがアンパック | E-02 (L830-832) | ○ |
| C-181 | Socket.unpack_sockaddr_unがアンパック | E-02 (L842-844) | ○ |
| C-182 | Socket#acceptがSocket/addr配列返却 | E-02 (L852-855) | ○ |
| C-183 | Socket#accept_nonblockがノンブロッキング | E-02 (L857-864) | ○ |
| C-184 | Socket#bindがsockaddr文字列でバインド | E-02 (L875-879) | ○ |
| C-185 | Socket#bindがAddrinfoでバインド | E-02 (L876) | ○ |
| C-186 | Socket#connectがsockaddr文字列で接続 | E-02 (L890-894) | ○ |
| C-187 | Socket#connectがAddrinfoで接続 | E-02 (L891) | ○ |
| C-188 | Socket#connect_nonblockがノンブロッキング | E-02 (L905-912) | ○ |
| C-189 | Socket#listenがbacklog設定 | E-02 (L916-919) | ○ |
| C-190 | Socket#recvfromがデータとAddrinfo返却 | E-02 (L921-925) | ○ |
| C-191 | Socket#recvfrom_nonblockがノンブロッキング | E-02 (L927-934) | ○ |
| C-192 | Socket#sysacceptが[fd, sockaddr]返却 | E-02 (L936-938) | ○ |
| C-193 | UNIXSocket#initializeがUnixソケット接続 | E-02 (L953-971) | ○ |
| C-194 | UNIXSocket#initializeがブロック付きでclose | E-02 (L960-969) | ○ |
| C-195 | UNIXSocket#initializeが存在しないパスでエラー | E-02 (L958) | △ |
| C-196 | UNIXSocket.socketpairがペア生成 | E-02 (L983-986) | ○ |
| C-197 | UNIXSocket.socketpairがSOCK_DGRAM対応 | E-02 (L983) | ○ |
| C-198 | UNIXSocket#addrが配列返却 | E-02 (L999-1001) | ○ |
| C-199 | UNIXSocket#pathがパス返却 | E-02 (L1011-1013) | ○ |
| C-200 | UNIXSocket#peeraddrが配列返却 | E-02 (L1023-1025) | ○ |
| C-201 | UNIXSocket#recvfromがデータとパス返却 | E-02 (L1029-1033) | ○ |
| C-202 | UNIXSocket#recvfromが空アドレスで空パス | E-02 (L1031) | ○ |
| C-203 | UNIXServer#initializeがサーバソケット作成 | E-02 (L1047-1065) | ○ |
| C-204 | UNIXServer#initializeがエラー時fdクリーンアップ | E-02 (L1053-1055) | ○ |
| C-205 | UNIXServer#initializeがブロック付きでclose | E-02 (L1058-1064) | ○ |
| C-206 | UNIXServer#acceptがUNIXSocket返却 | E-02 (L1076-1084) | ○ |
| C-207 | UNIXServer#accept_nonblockがノンブロッキング | E-02 (L1095-1102) | ○ |
| C-208 | UNIXServer#listenがbacklog設定 | E-02 (L1113-1116) | ○ |
| C-209 | UNIXServer#sysacceptがfd返却 | E-02 (L1126-1128) | ○ |
| C-210 | SocketErrorがStandardError継承 | E-02 (L1131) | ○ |
| C-211 | gem_initが全クラスを定義 | E-01 (L1318-1368) | ○ |
| C-212 | gem_initがSocket::Constants定数を定義 | E-01 (L1358-1367), E-04 | ○ |
| C-213 | gem_finalが正常終了 | E-01 (L1370-1374) | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-023**: getpeereidのエラーケースについて、実際にどのerrnoが返されるかはプラットフォーム実装依存であり、具体的なエラーメッセージの確認が必要
  - 候補：POSIXシステムのmanページ / プラットフォーム固有のドキュメント
- **C-076**: _listenの未バインドソケットに対するエラーについて、一部OSではエラーにならない可能性がある
  - 候補：OS固有のsocket API仕様 / POSIX仕様書
- **C-156**: TCPSocket#initializeの接続失敗時の正確なエラータイプがソースコードから直接読み取れない（複数のアドレス候補を試すフォールバック機構が存在するため）
  - 候補：Addrinfo.foreachの動作仕様 / SocketError以外の例外の可能性
- **C-195**: UNIXSocket#initializeの接続失敗時のエラーはSocket._connectのsys_fail経由で、具体的なerrnoに依存する
  - 候補：POSIX connect(2)のエラーコード一覧
- **Windows固有のメソッド（close, sysread, sysseek, syswrite）**：#ifdef _WIN32 内のメソッドについてはテストケースを生成したが、Windows環境でのみテスト可能であり、POSIX環境では根拠確認のみ
  - 候補：Windows Sockets APIドキュメント
- **HALインターフェース**：socket_hal.hで定義されたHAL関数の実装は別モジュール（hal-posix-socket, hal-win-socket）にあるため、本モジュールの範囲では動作確認不可
  - 候補：hal-posix-socket / hal-win-socketモジュールの実装コード

## 5) リスクフラグ（レビュー観点）
- **リスク2（高）**: setsockopt/getsockoptのソケットオプション操作 - セキュリティやネットワーク動作に直結する
- **リスク2（高）**: TCPSocket/TCPServer接続処理 - ネットワークリソースのリーク可能性
- **リスク1（中）**: send/recv系メソッド - バッファサイズの境界値やネットワーク障害時の挙動
- **リスク1（中）**: ノンブロッキングモード操作 - ensure句でのモード復帰が確実に行われるか
- **リスク1（中）**: UNIXServer/UNIXSocket初期化のリソースクリーンアップ - エラーパスでのfdリーク
- **リスク0（低）**: inspect系メソッド、アクセサメソッド - 表示のみの処理

## 6) レビュアーチェックリスト（最小）
- [ ] 全213テストケースがCSVに含まれていることを確認
- [ ] setsockoptの各引数パターン（3引数整数/真偽値/文字列、1引数Socket::Option）のテストケースが網羅されていること
- [ ] ソケット操作（bind/connect/listen/accept）の正常系・異常系が対になっていること
- [ ] ノンブロッキングモード操作でensure句によるモード復帰がテストされていること
- [ ] TCP/UDP/UNIXの各ソケットタイプで初期化・通信・終了のライフサイクルがカバーされていること
- [ ] Windows固有メソッド（#ifdef _WIN32内）のテストケースが環境条件付きで含まれているか確認（本CSVではWindows固有メソッドは省略されているため、必要に応じて追加を検討）
- [ ] HALインターフェース関数の戻り値チェック（エラー時の-1返却）がテストされていること
- [ ] IP_MULTICAST_TTL/IP_MULTICAST_LOOPのchar型特殊処理がテストされていること
