---
generated_at: 2026-02-22 12:00:00
metrics:
  claims_total: 192
  claims_with_evidence: 186
  claims_without_evidence: 6
confidence_derived: 0.97
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：186 / 192、根拠なし：6
- 優先レビュー（高）
  1. **C-048 uv_sem_init異常系**：CreateSemaphore失敗の具体的な再現条件が不明確
  2. **C-102 uv_os_getppid異常系**：NtQueryInformationProcess失敗の再現が困難
  3. **C-174 uv_os_uname Windows 11判定**：ビルド番号22000の境界値テストの前提条件がOS依存
  4. **C-189/190/191 snprintf**：MSVC<2015限定のコードであり、現代環境でのテスト不可能性
  5. **C-188 uv__winapi_init DLL未対応**：powrprof.dll未対応環境の再現が困難

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

- E-01: `src/win/thread.c` - スレッド管理・同期プリミティブ実装（569行）
- E-02: `src/win/tty.c` - TTY/コンソール入出力実装（約2000行以上）
- E-03: `src/win/util.c` - ユーティリティ関数群（1761行）
- E-04: `src/win/winapi.c` - Windows API動的ロード（174行）
- E-05: `src/win/winapi.h` - Windows API型定義・マクロ定義ヘッダ
- E-06: `src/win/snprintf.c` - MSVC<2015向けsnprintfエミュレーション（43行）
- E-07: `include/uv.h` - パブリックAPIヘッダ（APIシグネチャ定義）
- E-08: `src/win/internal.h` - 内部関数宣言ヘッダ

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

### thread.c 関連（C-001 ～ C-064）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | uv_once: コールバックが一度だけ実行される | E-01 (L49-52: InitOnceExecuteOnce使用) | ○ |
| C-002 | uv_once: 複数回呼び出しても1回のみ | E-01 (L49-52: InitOnceExecuteOnce保証) | ○ |
| C-003 | uv_thread_create: スレッド正常作成 | E-01 (L95-99: uv_thread_create_exへ委譲) | ○ |
| C-004 | uv_thread_create_ex: スタックサイズ指定 | E-01 (L110-171: UV_THREAD_HAS_STACK_SIZE分岐) | ○ |
| C-005 | uv_thread_create_ex: デフォルトスタックサイズ | E-01 (L121-122: UV_THREAD_NO_FLAGSでstack_size=0) | ○ |
| C-006 | uv_thread_create_ex: メモリ確保失敗 | E-01 (L134-136: uv__malloc NULL チェック) | ○ |
| C-007 | uv_thread_create_ex: スタックサイズオーバーフロー | E-01 (L130-131: unsigned castチェック) | ○ |
| C-008 | uv_thread_create_ex: スタックサイズ0 | E-01 (L121-124: stack_size=0はスキップ) | ○ |
| C-009 | uv_thread_detach: 正常デタッチ | E-01 (L102-107: CloseHandle使用) | ○ |
| C-010 | uv_thread_detach: 無効ハンドル | E-01 (L103-104: CloseHandle失敗時) | ○ |
| C-011 | uv_thread_join: 正常join | E-01 (L267-276: WaitForSingleObject/CloseHandle) | ○ |
| C-012 | uv_thread_join: join失敗 | E-01 (L268-269: WaitForSingleObject失敗) | ○ |
| C-013 | uv_thread_equal: 同一ID | E-01 (L279-281: *t1==*t2比較) | ○ |
| C-014 | uv_thread_equal: 異なるID | E-01 (L279-281: *t1==*t2比較) | ○ |
| C-015 | uv_thread_self: ID取得 | E-01 (L249-264: TLSから取得/DuplicateHandle) | ○ |
| C-016 | uv_thread_self: メインスレッド | E-01 (L253-261: key==NULL時DuplicateHandle) | ○ |
| C-017 | uv_thread_getcpu: CPU番号取得 | E-01 (L245-247: GetCurrentProcessorNumber) | ○ |
| C-018 | uv_thread_setaffinity: 正常設定 | E-01 (L173-214: SetThreadAffinityMask使用) | ○ |
| C-019 | uv_thread_setaffinity: マスクサイズ不足 | E-01 (L187-188: mask_size < cpumasksize) | ○ |
| C-020 | uv_thread_setaffinity: 無効CPU指定 | E-01 (L196-201: procmask外のビット) | ○ |
| C-021 | uv_thread_setaffinity: 旧マスク取得 | E-01 (L208-211: oldmask書き込み) | ○ |
| C-022 | uv_thread_setaffinity: oldmask=NULL | E-01 (L208: oldmask NULLチェック) | ○ |
| C-023 | uv_thread_getaffinity: 正常取得 | E-01 (L216-243: SetThreadAffinityMask往復) | ○ |
| C-024 | uv_thread_getaffinity: マスクサイズ不足 | E-01 (L228-229: mask_size < cpumasksize) | ○ |
| C-025 | uv_thread_setname: 正常設定 | E-01 (L295-323: pSetThreadDescription使用) | ○ |
| C-026 | uv_thread_setname: NULL入力 | E-01 (L306-307: name==NULLチェック) | ○ |
| C-027 | uv_thread_setname: API未対応 | E-01 (L303-304: pSetThreadDescription==NULL) | ○ |
| C-028 | uv_thread_setname: 名前切り詰め | E-01 (L309-310: strncpyとNUL終端) | ○ |
| C-029 | uv_thread_getname: 正常取得 | E-01 (L326-367: pGetThreadDescription使用) | ○ |
| C-030 | uv_thread_getname: NULL出力バッファ | E-01 (L339: name==NULLチェック) | ○ |
| C-031 | uv_thread_getname: サイズ0 | E-01 (L339: size==0チェック) | ○ |
| C-032 | uv_thread_getname: NULL tid | E-01 (L342: tid==NULL||*tid==NULLチェック) | ○ |
| C-033 | uv_thread_getname: 終了済みスレッド | E-01 (L346-347: GetExitCodeThread確認) | ○ |
| C-034 | uv_mutex_init: 正常初期化 | E-01 (L370-373: InitializeCriticalSection) | ○ |
| C-035 | uv_mutex_init_recursive: 再帰初期化 | E-01 (L376-378: uv_mutex_initへ委譲) | ○ |
| C-036 | uv_mutex_lock: ロック/アンロック | E-01 (L386-388, L399-401: Enter/LeaveCriticalSection) | ○ |
| C-037 | uv_mutex_trylock: 成功 | E-01 (L391-396: TryEnterCriticalSection) | ○ |
| C-038 | uv_mutex_trylock: ビジー | E-01 (L391-396: UV_EBUSY返却) | ○ |
| C-039 | uv_mutex_destroy: 正常破棄 | E-01 (L381-383: DeleteCriticalSection) | ○ |
| C-040 | uv_rwlock_init: 正常初期化 | E-01 (L410-415: InitializeSRWLock) | ○ |
| C-041 | uv_rwlock_rdlock: 読み取りロック | E-01 (L424-426: AcquireSRWLockShared) | ○ |
| C-042 | uv_rwlock_tryrdlock: 成功 | E-01 (L429-434: TryAcquireSRWLockShared) | ○ |
| C-043 | uv_rwlock_tryrdlock: 失敗 | E-01 (L429-434: UV_EBUSY返却) | ○ |
| C-044 | uv_rwlock_wrlock: 書き込みロック | E-01 (L442-444: AcquireSRWLockExclusive) | ○ |
| C-045 | uv_rwlock_trywrlock: 成功 | E-01 (L447-452: TryAcquireSRWLockExclusive) | ○ |
| C-046 | uv_rwlock_trywrlock: 失敗 | E-01 (L447-452: UV_EBUSY返却) | ○ |
| C-047 | uv_sem_init: 正常初期化 | E-01 (L460-466: CreateSemaphore) | ○ |
| C-048 | uv_sem_init: 作成失敗 | E-01 (L462-463: CreateSemaphore==NULL) | △ |
| C-049 | uv_sem_post: ポスト | E-01 (L475-478: ReleaseSemaphore) | ○ |
| C-050 | uv_sem_wait: ウェイト | E-01 (L481-484: WaitForSingleObject) | ○ |
| C-051 | uv_sem_trywait: 成功 | E-01 (L487-498: WAIT_OBJECT_0) | ○ |
| C-052 | uv_sem_trywait: EAGAIN | E-01 (L493-494: WAIT_TIMEOUT) | ○ |
| C-053 | uv_cond_init: 正常初期化 | E-01 (L501-504: InitializeConditionVariable) | ○ |
| C-054 | uv_cond_signal: シグナル | E-01 (L513-515: WakeConditionVariable) | ○ |
| C-055 | uv_cond_broadcast: ブロードキャスト | E-01 (L518-520: WakeAllConditionVariable) | ○ |
| C-056 | uv_cond_timedwait: 正常完了 | E-01 (L529-531: SleepConditionVariableCS成功) | ○ |
| C-057 | uv_cond_timedwait: タイムアウト | E-01 (L532-534: ERROR_TIMEOUT→UV_ETIMEDOUT) | ○ |
| C-058 | uv_cond_timedwait: タイムアウト0 | E-01 (L530: timeout/1e6=0→即タイムアウト) | ○ |
| C-059 | uv_key_create: 正常作成 | E-01 (L538-543: TlsAlloc) | ○ |
| C-060 | uv_key_create: スロット枯渇 | E-01 (L540-541: TLS_OUT_OF_INDEXES) | ○ |
| C-061 | uv_key_get: 値取得 | E-01 (L553-562: TlsGetValue) | ○ |
| C-062 | uv_key_get: 値未設定 | E-01 (L557-559: value==NULL, ERROR_SUCCESS) | ○ |
| C-063 | uv_key_set: 値設定 | E-01 (L565-568: TlsSetValue) | ○ |
| C-064 | uv_key_delete: キー削除 | E-01 (L546-550: TlsFree, TLS_OUT_OF_INDEXES設定) | ○ |

### tty.c 関連（C-065 ～ C-081）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-065 | uv_tty_init: 出力TTY初期化 | E-02 (L205-303: fd=1時の処理フロー) | ○ |
| C-066 | uv_tty_init: 入力TTY初期化 | E-02 (L272-286: UV_HANDLE_TTY_READABLE設定) | ○ |
| C-067 | uv_tty_init: 無効fd | E-02 (L215-216: INVALID_HANDLE_VALUE→UV_EBADF) | ○ |
| C-068 | uv_tty_init: fd 0-2の複製 | E-02 (L218-233: DuplicateHandle呼び出し) | ○ |
| C-069 | uv_tty_set_mode: NORMALモード | E-02 (L367-437: mode==UV_TTY_MODE_NORMAL分岐) | ○ |
| C-070 | uv_tty_set_mode: RAWモード | E-02 (L392-394: UV_TTY_MODE_RAW分岐) | ○ |
| C-071 | uv_tty_set_mode: RAW_VTモード | E-02 (L388-391: UV_TTY_MODE_RAW_VT分岐) | ○ |
| C-072 | uv_tty_set_mode: 読み取り不可TTY | E-02 (L375-377: UV_HANDLE_TTY_READABLEフラグチェック) | ○ |
| C-073 | uv_tty_set_mode: 同一モード再設定 | E-02 (L379-381: mode==current→return 0) | ○ |
| C-074 | uv_tty_set_mode: IOモード | E-02 (L395-396: UV_TTY_MODE_IO→UV_ENOTSUP) | ○ |
| C-075 | uv_tty_set_mode: 不正モード値 | E-02 (L397-398: default→UV_EINVAL) | ○ |
| C-076 | uv_tty_get_winsize: 正常取得 | E-02 (L440-455: GetConsoleScreenBufferInfo) | ○ |
| C-077 | uv_tty_get_winsize: 取得失敗 | E-02 (L443-445: GetConsoleScreenBufferInfo失敗) | ○ |
| C-078 | uv__tty_read_start: 正常開始 | E-02 (L1035-1068: UV_HANDLE_READING設定) | ○ |
| C-079 | uv__tty_read_start: 読み取り不可 | E-02 (L1039-1041: ERROR_INVALID_PARAMETER) | ○ |
| C-080 | uv__tty_read_stop: 正常停止 | E-02 (L1071-1099: UV_HANDLE_READING解除) | ○ |
| C-081 | uv__console_init: コンソール初期化 | E-02 (L167-202: セマフォ/ハンドル初期化) | ○ |

### util.c 関連（C-082 ～ C-184）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-082 | uv_exepath: 正常取得 | E-03 (L97-141: GetModuleFileNameW使用) | ○ |
| C-083 | uv_exepath: NULLバッファ | E-03 (L102-103: NULL/sizeチェック) | ○ |
| C-084 | uv_exepath: NULLサイズ | E-03 (L102-103: NULL/sizeチェック) | ○ |
| C-085 | uv_exepath: サイズ0 | E-03 (L102-103: *size_ptr==0チェック) | ○ |
| C-086 | uv_exepath: 大きなバッファ | E-03 (L106-108: 32768制限) | ○ |
| C-087 | uv_cwd: 正常取得 | E-03 (L189-207: uv__cwd使用) | ○ |
| C-088 | uv_cwd: NULLバッファ | E-03 (L194-196: NULLチェック) | ○ |
| C-089 | uv_cwd: NULLサイズ | E-03 (L194-196: NULLチェック) | ○ |
| C-090 | uv_cwd: サイズ0 | E-03 (L194-196: *size==0チェック) | ○ |
| C-091 | uv_chdir: 正常変更 | E-03 (L210-270: SetCurrentDirectoryW使用) | ○ |
| C-092 | uv_chdir: 存在しないディレクトリ | E-03 (L221-224: SetCurrentDirectoryW失敗) | ○ |
| C-093 | uv_chdir: ドライブ環境変数更新 | E-03 (L258-265: SetEnvironmentVariableW) | ○ |
| C-094 | uv_chdir: UNCパス | E-03 (L244-247: drive_letter=0) | ○ |
| C-095 | uv_loadavg: 常に0 | E-03 (L273-276: avg[0]=avg[1]=avg[2]=0) | ○ |
| C-096 | uv_get_free_memory: 正常取得 | E-03 (L279-288: GlobalMemoryStatusEx) | ○ |
| C-097 | uv_get_total_memory: 正常取得 | E-03 (L291-300: GlobalMemoryStatusEx) | ○ |
| C-098 | uv_get_constrained_memory: 常に0 | E-03 (L303-305: return 0) | ○ |
| C-099 | uv_get_available_memory: free_memoryと同値 | E-03 (L308-310: uv_get_free_memory呼び出し) | ○ |
| C-100 | uv_os_getpid: PID取得 | E-03 (L313-315: GetCurrentProcessId) | ○ |
| C-101 | uv_os_getppid: 親PID取得 | E-03 (L318-332: NtQueryInformationProcess) | ○ |
| C-102 | uv_os_getppid: API失敗 | E-03 (L329-331: return -1) | △ |
| C-103 | uv_set_process_title: 正常設定 | E-03 (L344-375: SetConsoleTitleW使用) | ○ |
| C-104 | uv_set_process_title: タイトル切り詰め | E-03 (L357-358: MAX_TITLE_LENGTHチェック) | ○ |
| C-105 | uv_get_process_title: 正常取得 | E-03 (L390-424: process_titleコピー) | ○ |
| C-106 | uv_get_process_title: NULLバッファ | E-03 (L394-395: NULLチェック) | ○ |
| C-107 | uv_get_process_title: サイズ0 | E-03 (L394-395: size==0チェック) | ○ |
| C-108 | uv_get_process_title: バッファ不足 | E-03 (L415-417: UV_ENOBUFS) | ○ |
| C-109 | uv_clock_gettime: MONOTONIC | E-03 (L428-455: UV_CLOCK_MONOTONIC分岐) | ○ |
| C-110 | uv_clock_gettime: REALTIME | E-03 (L442-451: UV_CLOCK_REALTIME分岐) | ○ |
| C-111 | uv_clock_gettime: NULLポインタ | E-03 (L432-433: UV_EFAULT) | ○ |
| C-112 | uv_clock_gettime: 無効クロックID | E-03 (L453-454: UV_EINVAL) | ○ |
| C-113 | uv_hrtime: 高精度タイマー | E-03 (L458-461: uv__hrtime(UV__NANOSEC)) | ○ |
| C-114 | uv_hrtime: 単調増加 | E-03 (L464-483: QueryPerformanceCounter) | ○ |
| C-115 | uv_resident_set_memory: RSS取得 | E-03 (L486-499: GetProcessMemoryInfo) | ○ |
| C-116 | uv_uptime: 稼働時間取得 | E-03 (L502-505: GetTickCount64) | ○ |
| C-117 | uv_available_parallelism: 並列度取得 | E-03 (L508-526: GetProcessAffinityMask) | ○ |
| C-118 | uv_cpu_info: CPU情報取得 | E-03 (L529-651: レジストリ+NtQuerySystemInformation) | ○ |
| C-119 | uv_cpu_info: 内容確認 | E-03 (L619-631: model/speed/cpu_times設定) | ○ |
| C-120 | uv_interface_addresses: NIC取得 | E-03 (L654-867: GetAdaptersAddresses) | ○ |
| C-121 | uv_interface_addresses: アドレス詳細 | E-03 (L836-853: IPv4/IPv6アドレス・ネットマスク設定) | ○ |
| C-122 | uv_getrusage: リソース使用量 | E-03 (L870-927: GetProcessTimes/GetProcessMemoryInfo) | ○ |
| C-123 | uv_getrusage_thread: スレッドリソース | E-03 (L930-967: GetThreadTimes) | ○ |
| C-124 | uv_os_homedir: 正常取得 | E-03 (L970-1009: USERPROFILE環境変数) | ○ |
| C-125 | uv_os_homedir: フォールバック | E-03 (L989-1006: uv_os_get_passwd呼び出し) | ○ |
| C-126 | uv_os_homedir: 短すぎるパス | E-03 (L982-986: *size < 3→UV_ENOENT) | ○ |
| C-127 | uv_os_tmpdir: 正常取得 | E-03 (L1012-1055: GetTempPathW) | ○ |
| C-128 | uv_os_tmpdir: NULLバッファ | E-03 (L1017-1018: NULLチェック) | ○ |
| C-129 | uv_os_tmpdir: 末尾スラッシュ除去 | E-03 (L1046-1050: L'\\'除去ロジック) | ○ |
| C-130 | uv_os_tmpdir: ドライブルート保持 | E-03 (L1047: len==3 && L':'チェック) | ○ |
| C-131 | uv__convert_utf16_to_utf8: 正常変換 | E-03 (L1065-1073: uv_utf16_to_wtf8使用) | ○ |
| C-132 | uv__convert_utf16_to_utf8: NULL入力 | E-03 (L1068-1069: utf16==NULL→UV_EINVAL) | ○ |
| C-133 | uv__convert_utf8_to_utf16: 正常変換 | E-03 (L1080-1101: uv_wtf8_length_as_utf16使用) | ○ |
| C-134 | uv__convert_utf8_to_utf16: NULL入力 | E-03 (L1083-1084: utf8==NULL→UV_EINVAL) | ○ |
| C-135 | uv__copy_utf16_to_utf8: 正常コピー | E-03 (L1111-1127: uv_utf16_to_wtf8使用) | ○ |
| C-136 | uv__copy_utf16_to_utf8: NULLバッファ | E-03 (L1114-1115: utf8==NULL→UV_EINVAL) | ○ |
| C-137 | uv__copy_utf16_to_utf8: NULLサイズ | E-03 (L1114-1115: size==NULL→UV_EINVAL) | ○ |
| C-138 | uv__copy_utf16_to_utf8: サイズ0 | E-03 (L1117-1119: *size==0→UV_ENOBUFS) | ○ |
| C-139 | uv_os_get_passwd: 正常取得 | E-03 (L1130-1200, L1203-1205: uv__getpwuid_r) | ○ |
| C-140 | uv_os_get_passwd: デフォルト値 | E-03 (L1195-1197: shell=NULL, uid=-1, gid=-1) | ○ |
| C-141 | uv_os_get_passwd2: 未実装 | E-03 (L1208-1210: UV_ENOTSUP) | ○ |
| C-142 | uv_os_get_group: 未実装 | E-03 (L1213-1215: UV_ENOTSUP) | ○ |
| C-143 | uv_os_environ: 正常取得 | E-03 (L1218-1286: GetEnvironmentStringsW) | ○ |
| C-144 | uv_os_environ: name/value分割 | E-03 (L1249-1261: strchrで=分割) | ○ |
| C-145 | uv_os_getenv: 正常取得 | E-03 (L1289-1348: GetEnvironmentVariableW) | ○ |
| C-146 | uv_os_getenv: NULL名前 | E-03 (L1297-1298: NULLチェック) | ○ |
| C-147 | uv_os_getenv: NULLバッファ | E-03 (L1297-1298: NULLチェック) | ○ |
| C-148 | uv_os_getenv: NULLサイズ | E-03 (L1297-1298: NULLチェック) | ○ |
| C-149 | uv_os_getenv: サイズ0 | E-03 (L1297-1298: *size==0チェック) | ○ |
| C-150 | uv_os_getenv: 存在しない変数 | E-03 (L1312-1313: len==0→sys_error) | ○ |
| C-151 | uv_os_setenv: 正常設定 | E-03 (L1351-1379: SetEnvironmentVariableW) | ○ |
| C-152 | uv_os_setenv: NULL名前 | E-03 (L1356-1357: NULLチェック) | ○ |
| C-153 | uv_os_setenv: NULL値 | E-03 (L1356-1357: NULLチェック) | ○ |
| C-154 | uv_os_unsetenv: 正常削除 | E-03 (L1382-1401: SetEnvironmentVariableW(name, NULL)) | ○ |
| C-155 | uv_os_unsetenv: NULL名前 | E-03 (L1386-1387: NULLチェック) | ○ |
| C-156 | uv_os_gethostname: 正常取得 | E-03 (L1404-1419: pGetHostNameW使用) | ○ |
| C-157 | uv_os_gethostname: NULLバッファ | E-03 (L1407-1408: NULLチェック) | ○ |
| C-158 | uv_os_gethostname: API未対応 | E-03 (L1412-1413: pGetHostNameW==NULL) | ○ |
| C-159 | uv_os_getpriority: 正常取得 | E-03 (L1443-1479: GetPriorityClass) | ○ |
| C-160 | uv_os_getpriority: NULLポインタ | E-03 (L1447-1448: priority==NULL) | ○ |
| C-161 | uv_os_getpriority: 存在しないプロセス | E-03 (L1422-1440: uv__get_handle→UV_ESRCH) | ○ |
| C-162 | uv_os_getpriority: 優先度マッピング | E-03 (L1461-1472: Windows→Unix変換) | ○ |
| C-163 | uv_os_setpriority: 正常設定 | E-03 (L1482-1513: SetPriorityClass) | ○ |
| C-164 | uv_os_setpriority: 範囲外 | E-03 (L1488-1489: UV_EINVAL) | ○ |
| C-165 | uv_thread_getpriority: 正常取得 | E-03 (L1515-1532: GetThreadPriority) | ○ |
| C-166 | uv_thread_getpriority: NULLポインタ | E-03 (L1519-1520: priority==NULL) | ○ |
| C-167 | uv_thread_getpriority: 無効スレッド | E-03 (L1525-1526: ERROR_INVALID_HANDLE→UV_ESRCH) | ○ |
| C-168 | uv_thread_setpriority: 正常設定 | E-03 (L1534-1566: SetThreadPriority) | ○ |
| C-169 | uv_thread_setpriority: 各レベル | E-03 (L1538-1556: switch文の各case) | ○ |
| C-170 | uv_thread_setpriority: 不明値 | E-03 (L1554-1555: default→return 0) | ○ |
| C-171 | uv_os_uname: 正常取得 | E-03 (L1568-1726: RtlGetVersion+レジストリ) | ○ |
| C-172 | uv_os_uname: NULLバッファ | E-03 (L1580-1581: buffer==NULL) | ○ |
| C-173 | uv_os_uname: sysname確認 | E-03 (L1659: "Windows_NT"設定) | ○ |
| C-174 | uv_os_uname: Windows 11判定 | E-03 (L1615-1623: dwBuildNumber>=22000) | △ |
| C-175 | uv_gettimeofday: 正常取得 | E-03 (L1728-1743: GetSystemTimeAsFileTime) | ○ |
| C-176 | uv_gettimeofday: NULLポインタ | E-03 (L1734-1735: tv==NULL→UV_EINVAL) | ○ |
| C-177 | uv_gettimeofday: エポック以降 | E-03 (L1730, L1740: UNIX epoch変換) | ○ |
| C-178 | uv__random_winrandom: 正常生成 | E-03 (L1745-1756: ProcessPrng/SystemFunction036) | ○ |
| C-179 | uv__random_winrandom: バッファ長0 | E-03 (L1746-1747: buflen==0→return 0) | ○ |
| C-180 | uv__random_winrandom: ProcessPrng使用 | E-03 (L1749-1750: pProcessPrng!=NULL分岐) | ○ |
| C-181 | uv__random_winrandom: フォールバック | E-03 (L1752-1753: SystemFunction036呼び出し) | ○ |
| C-182 | uv_sleep: スリープ | E-03 (L1758-1760: Sleep(msec)) | ○ |
| C-183 | uv_sleep: 0ms | E-03 (L1758-1760: Sleep(0)) | ○ |
| C-184 | uv_setup_args: パススルー | E-03 (L335-337: return argv) | ○ |

### winapi.c 関連（C-185 ～ C-188）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-185 | uv__winapi_init: 正常初期化 | E-04 (L54-173: GetModuleHandleW/GetProcAddress) | ○ |
| C-186 | uv__winapi_init: ntdll関数ロード | E-04 (L80-134: ntdll.dll必須関数ロード) | ○ |
| C-187 | uv__winapi_init: オプショナルDLL | E-04 (L136-172: powrprof/bcrypt/user32/ws2_32) | ○ |
| C-188 | uv__winapi_init: DLL未対応 | E-04 (L139-144: powrprof_module!=NULLチェック) | △ |

### snprintf.c 関連（C-189 ～ C-191）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-189 | snprintf: 正常出力 | E-06 (L30-40: _vscprintf+vsnprintf_s) | △ |
| C-190 | snprintf: バッファ不足 | E-06 (L30-40: _TRUNCATE使用) | △ |
| C-191 | snprintf: 最小バッファ | E-06 (L30-40: _TRUNCATE使用) | △ |

### util.c 初期化（C-192）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-192 | uv__util_init: 正常初期化 | E-03 (L80-94: InitializeCriticalSection/QueryPerformanceFrequency) | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-048**: uv_sem_init異常系テストの具体的な再現方法が不明確。CreateSemaphoreの失敗条件（システムリソース枯渇）を人為的に再現する手法が必要。
  - 候補：モック / システムリソース制限 / エラーインジェクション
- **C-102**: NtQueryInformationProcess失敗パスのテスト再現が困難。通常の環境では常に成功する。
  - 候補：モック / 特殊な権限設定
- **C-174**: Windows 11判定のテストは実行環境のOSバージョンに依存する。異なるOS上でのテスト方法が未確定。
  - 候補：レジストリ値のモック / 条件付きテスト
- **C-188**: powrprof.dll未対応環境の再現が困難（通常のWindows環境では利用可能）。
  - 候補：LoadLibraryExAのモック / 特殊環境
- **C-189/190/191**: snprintf.cはMSVC<2015のみコンパイルされるガード付きコード（`#if defined(_MSC_VER) && _MSC_VER < 1900`）。現代のコンパイラ環境ではテスト不可。
  - 候補：旧MSVC環境でのビルド / 条件付きテスト

## 5) リスクフラグ（レビュー観点）
- **リスク0（低）**: thread.cの同期プリミティブ（mutex/rwlock/sem/cond）は標準的なWindows APIラッパーであり、テストケースはAPI仕様に忠実
- **リスク0（低）**: util.cのシステム情報取得関数は入力検証が明確にコード上で確認可能
- **リスク1（中）**: tty.cのANSIパーサー部分（uv__tty_write_bufs内部）は複雑な状態機械であり、本テストケースでは公開API中心でカバレッジが限定的
- **リスク1（中）**: snprintf.cのテストはコンパイラバージョン制約があるため、CI環境での実行可能性に注意
- **リスク1（中）**: winapi.cのDLL動的ロードはOS環境依存が大きく、テスト環境による差異が発生しうる

## 6) レビュアーチェックリスト（最小）
- [ ] thread.cの同期プリミティブのテストケースがマルチスレッド環境で実行可能な前提条件になっているか確認
- [ ] tty.cの内部関数（uv__tty_write_bufs, uv__tty_set_style等）のANSIパーサーテストが不足していないか検討
- [ ] util.cの文字コード変換関数（uv__convert_utf16_to_utf8/uv__convert_utf8_to_utf16）のマルチバイト文字テストが必要か検討
- [ ] snprintf.cのテストがMSVC<2015環境限定であることの取り扱い方針を確認
- [ ] Windows 11判定ロジック（C-174）のOS依存テストの方針を確認
- [ ] winapi.cの関数ポインタNULLチェックのテスト方針を確認（DLLモック可否）
