---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 183
  claims_with_evidence: 183
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：183 / 183、根拠なし：0
- 優先レビュー（高）
  1. 全てのテストケースはソースコードから直接抽出されており、根拠が明確です

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

- E-01: `src/os/main.zig` - osモジュールのエントリーポイント、エクスポート定義
- E-02: `src/os/TempDir.zig` - 一時ディレクトリ管理
- E-03: `src/os/args.zig` - コマンドライン引数処理
- E-04: `src/os/cf_release_thread.zig` - CFRelease用スレッド（macOS）
- E-05: `src/os/cgroup.zig` - Linux cgroup管理
- E-06: `src/os/dbus.zig` - D-Busアクティベーション検出
- E-07: `src/os/desktop.zig` - デスクトップ環境検出
- E-08: `src/os/env.zig` - 環境変数操作
- E-09: `src/os/file.zig` - ファイル操作ユーティリティ
- E-10: `src/os/flatpak.zig` - Flatpak環境対応
- E-11: `src/os/homedir.zig` - ホームディレクトリ取得
- E-12: `src/os/hostname.zig` - ホスト名検証
- E-13: `src/os/i18n.zig` - 国際化対応
- E-14: `src/os/kernel_info.zig` - Linuxカーネル情報取得
- E-15: `src/os/locale.zig` - ロケール設定
- E-16: `src/os/mach.zig` - macOS Mach VM操作
- E-17: `src/os/macos.zig` - macOS固有機能
- E-18: `src/os/mouse.zig` - マウス設定取得
- E-19: `src/os/open.zig` - URL/ファイルオープン
- E-20: `src/os/passwd.zig` - passwd情報取得
- E-21: `src/os/path.zig` - PATH検索
- E-22: `src/os/pipe.zig` - パイプ作成
- E-23: `src/os/resourcesdir.zig` - リソースディレクトリ検出
- E-24: `src/os/shell.zig` - シェルコマンドビルダー
- E-25: `src/os/string_encoding.zig` - 文字列エンコード/デコード
- E-26: `src/os/systemd.zig` - systemd対応
- E-27: `src/os/uri.zig` - URI解析
- E-28: `src/os/wasm.zig` - WebAssembly対応
- E-29: `src/os/wasm/log.zig` - wasmログ出力
- E-30: `src/os/wasm/target.zig` - wasmターゲット判定
- E-31: `src/os/windows.zig` - Windows API定義
- E-32: `src/os/xdg.zig` - XDG Base Directory対応

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

### TempDir.zig (UT-OSS-001 ~ UT-OSS-004)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | TempDir.initは一時ディレクトリを作成する | E-02: init関数（24-56行目） | ○ |
| C-02 | TempDir.nameはディレクトリ名を返す | E-02: name関数（60-62行目） | ○ |
| C-03 | TempDir.deinitはディレクトリを削除する | E-02: deinit関数（66-70行目） | ○ |
| C-04 | 既存テストが動作確認を提供 | E-02: test block（81-95行目） | ○ |

### args.zig (UT-OSS-005 ~ UT-OSS-011)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-05 | iterator関数はArgIteratorを返す | E-03: iterator関数（12-15行目） | ○ |
| C-06 | IteratorMacOSはNSProcessInfoを使用 | E-03: initWithAllocator（41-78行目） | ○ |
| C-07 | nextは引数を順次返す | E-03: next関数（87-113行目） | ○ |
| C-08 | skipはインデックスを進める | E-03: skip関数（116-120行目） | ○ |
| C-09 | deinitはメモリを解放 | E-03: deinit関数（80-85行目） | ○ |

### cf_release_thread.zig (UT-OSS-012 ~ UT-OSS-017)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-10 | Thread.initはイベントループを初期化 | E-04: init関数（61-87行目） | ○ |
| C-11 | Thread.deinitはリソースを解放 | E-04: deinit関数（91-98行目） | ○ |
| C-12 | threadMainはメインループを実行 | E-04: threadMain関数（101-118行目） | ○ |
| C-13 | drainMailboxはメッセージを処理 | E-04: drainMailbox関数（142-159行目） | ○ |

### cgroup.zig (UT-OSS-018 ~ UT-OSS-020)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-14 | currentは/proc/<pid>/cgroupを読む | E-05: current関数（6-26行目） | ○ |

### dbus.zig (UT-OSS-021 ~ UT-OSS-023)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-15 | launchedByDbusActivationはDBUS_STARTER_*をチェック | E-06: launchedByDbusActivation関数（10-21行目） | ○ |

### desktop.zig (UT-OSS-024 ~ UT-OSS-029)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | launchedFromDesktopはOS別に判定 | E-07: launchedFromDesktop関数（19-68行目） | ○ |
| C-17 | desktopEnvironmentはDE種別を返す | E-07: desktopEnvironment関数（83-112行目） | ○ |
| C-18 | 既存テストが検証を提供 | E-07: test block（114-160行目） | ○ |

### env.zig (UT-OSS-030 ~ UT-OSS-043)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-19 | getEnvMapは環境変数マップを返す | E-08: getEnvMap関数（10-15行目） | ○ |
| C-20 | appendEnvは値を追加 | E-08: appendEnv関数（19-29行目） | ○ |
| C-21 | prependEnvは先頭に追加 | E-08: prependEnv関数（50-63行目） | ○ |
| C-22 | getenvは環境変数を取得 | E-08: getenv関数（82-96行目） | ○ |
| C-23 | setenv/unsetenvは環境変数を操作 | E-08: setenv/unsetenv関数（113-125行目） | ○ |
| C-24 | 既存テストが動作確認を提供 | E-08: test blocks（136-178行目） | ○ |

### file.zig (UT-OSS-044 ~ UT-OSS-050)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-25 | fixMaxFilesはファイル上限を調整 | E-09: fixMaxFiles関数（12-49行目） | ○ |
| C-26 | restoreMaxFilesは上限を復元 | E-09: restoreMaxFiles関数（51-54行目） | ○ |
| C-27 | allocTmpDirは一時ディレクトリを取得 | E-09: allocTmpDir関数（59-71行目） | ○ |
| C-28 | freeTmpDirはWindows用メモリ解放 | E-09: freeTmpDir関数（75-79行目） | ○ |

### flatpak.zig (UT-OSS-051 ~ UT-OSS-059)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-29 | isFlatpakは/.flatpak-infoをチェック | E-10: isFlatpak関数（10-14行目） | ○ |
| C-30 | FlatpakHostCommandはD-Bus経由でコマンド実行 | E-10: FlatpakHostCommand構造体（29-507行目） | ○ |
| C-31 | spawnはスレッドを起動しプロセスを開始 | E-10: spawn関数（111-128行目） | ○ |
| C-32 | waitは終了を待機 | E-10: wait関数（132-150行目） | ○ |
| C-33 | signalはシグナルを送信 | E-10: signal関数（225-267行目） | ○ |

### homedir.zig (UT-OSS-060 ~ UT-OSS-067)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-34 | homeはHOME環境変数を優先的に使用 | E-11: home/homeUnix関数（14-77行目） | ○ |
| C-35 | expandHomeはチルダを展開 | E-11: expandHome関数（122-143行目） | ○ |
| C-36 | 既存テストが動作確認を提供 | E-11: test blocks（145-181行目） | ○ |

### hostname.zig (UT-OSS-068 ~ UT-OSS-082)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-37 | isValidはRFC 1123に従って検証 | E-12: isValid関数（14-60行目） | ○ |
| C-38 | isLocalはlocalhostと現在のホスト名をチェック | E-12: isLocal関数（97-105行目） | ○ |
| C-39 | 既存テストが検証を提供 | E-12: test blocks（62-122行目） | ○ |

### i18n.zig (UT-OSS-083 ~ UT-OSS-091)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 | initはbindtextdomainを呼び出す | E-13: init関数（28-52行目） | ○ |
| C-41 | initGlobalDomainはtextdomainを設定 | E-13: initGlobalDomain関数（59-62行目） | ○ |
| C-42 | _はdgettextで翻訳を取得 | E-13: _関数（65-68行目） | ○ |
| C-43 | canonicalizeLocaleはロケールを正規化 | E-13: canonicalizeLocale関数（88-123行目） | ○ |
| C-44 | 既存テストが動作確認を提供 | E-13: test block（174-193行目） | ○ |

### kernel_info.zig (UT-OSS-092 ~ UT-OSS-093)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-45 | getKernelInfoは/proc/sys/kernel/osreleaseを読む | E-14: getKernelInfo関数（4-14行目） | ○ |

### locale.zig (UT-OSS-094 ~ UT-OSS-096)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-46 | ensureLocaleはロケールを設定 | E-15: ensureLocale関数（12-66行目） | ○ |
| C-47 | setLangFromCocoaはmacOSシステム設定を使用 | E-15: setLangFromCocoa関数（70-134行目） | ○ |

### mach.zig (UT-OSS-097 ~ UT-OSS-100)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-48 | VMTag.makeはタグをシフト | E-16: VMTag.make関数（31-33行目） | ○ |
| C-49 | taggedPageAllocatorはタグ付きアロケータを返す | E-16: taggedPageAllocator関数（38-44行目） | ○ |
| C-50 | TaggedPageAllocatorはmmap/munmapを使用 | E-16: TaggedPageAllocator構造体（48-146行目） | ○ |
| C-51 | 既存テストが検証を提供 | E-16: test block（148-150行目） | ○ |

### macos.zig (UT-OSS-101 ~ UT-OSS-106)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-52 | isAtLeastVersionはNSProcessInfoを使用 | E-17: isAtLeastVersion関数（9-17行目） | ○ |
| C-53 | appSupportDirはアプリサポートディレクトリを取得 | E-17: appSupportDir関数（24-33行目） | ○ |
| C-54 | cacheDirはキャッシュディレクトリを取得 | E-17: cacheDir関数（39-48行目） | ○ |
| C-55 | setQosClassはQoSクラスを設定 | E-17: setQosClass関数（60-74行目） | ○ |
| C-56 | 既存テストが検証を提供 | E-17: test block（152-177行目） | ○ |

### mouse.zig (UT-OSS-107 ~ UT-OSS-108)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-57 | clickIntervalはNSEventを使用 | E-18: clickInterval関数（8-25行目） | ○ |

### open.zig (UT-OSS-109 ~ UT-OSS-111)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-58 | openはOS別のコマンドを使用 | E-19: open関数（18-61行目） | ○ |
| C-59 | openThreadは非同期で出力を収集 | E-19: openThread関数（63-85行目） | ○ |

### passwd.zig (UT-OSS-112 ~ UT-OSS-114)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-60 | getはgetpwuid_rを使用 | E-20: get関数（34-144行目） | ○ |
| C-61 | Flatpak環境ではホストからエントリを取得 | E-20: flatpak block（57-123行目） | ○ |
| C-62 | 既存テストが検証を提供 | E-20: test block（146-157行目） | ○ |

### path.zig (UT-OSS-115 ~ UT-OSS-118)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-63 | expandはPATHを検索 | E-21: expand関数（9-65行目） | ○ |
| C-64 | 既存テストが検証を提供 | E-21: test blocks（73-89行目） | ○ |

### pipe.zig (UT-OSS-119 ~ UT-OSS-120)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-65 | pipeはOS別にパイプを作成 | E-22: pipe関数（8-21行目） | ○ |

### resourcesdir.zig (UT-OSS-121 ~ UT-OSS-128)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-66 | ResourcesDirはアプリ/ホストパスを管理 | E-23: ResourcesDir構造体（5-32行目） | ○ |
| C-67 | resourcesDirはリソースディレクトリを検出 | E-23: resourcesDir関数（40-114行目） | ○ |
| C-68 | maybeDirはディレクトリ存在確認 | E-23: maybeDir関数（122-139行目） | ○ |

### shell.zig (UT-OSS-129 ~ UT-OSS-140)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-69 | ShellCommandBuilderはコマンドを構築 | E-24: ShellCommandBuilder構造体（8-33行目） | ○ |
| C-70 | ShellEscapeWriterはシェル特殊文字をエスケープ | E-24: ShellEscapeWriter構造体（85-140行目） | ○ |
| C-71 | 既存テストが検証を提供 | E-24: test blocks（35-196行目） | ○ |

### string_encoding.zig (UT-OSS-141 ~ UT-OSS-153)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-72 | printfQDecodeはprintf %qをデコード | E-25: printfQDecode関数（6-66行目） | ○ |
| C-73 | urlPercentDecodeはパーセントエンコードをデコード | E-25: urlPercentDecode関数（166-191行目） | ○ |
| C-74 | urlPercentEncodeはパーセントエンコード | E-25: urlPercentEncode関数（305-307行目） | ○ |
| C-75 | 既存テストが検証を提供 | E-25: test blocks（68-294行目） | ○ |

### systemd.zig (UT-OSS-154 ~ UT-OSS-159)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-76 | launchedBySystemdは環境変数とppidをチェック | E-26: launchedBySystemd関数（12-65行目） | ○ |
| C-77 | notify.readyはREADY=1を送信 | E-26: notify.ready関数（171-175行目） | ○ |
| C-78 | notify.reloadingはRELOADING=1を送信 | E-26: notify.reloading関数（180-197行目） | ○ |
| C-79 | notify.sendはUNIXソケットに送信 | E-26: notify.send関数（89-167行目） | ○ |

### uri.zig (UT-OSS-160 ~ UT-OSS-167)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-80 | parseはstd.Uriを拡張 | E-27: parse関数（21-91行目） | ○ |
| C-81 | isValidMacAddressはMACアドレスを検証 | E-27: isValidMacAddress関数（176-191行目） | ○ |
| C-82 | 既存テストが検証を提供 | E-27: test blocks（93-204行目） | ○ |

### wasm.zig (UT-OSS-168)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-83 | wasmアロケータはwasm_allocatorを使用 | E-28: alloc定義（22-25行目） | ○ |

### wasm/log.zig (UT-OSS-169 ~ UT-OSS-170)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-84 | Freestanding.logはJSにログを送信 | E-29: log関数（10-38行目） | ○ |

### wasm/target.zig (UT-OSS-171)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-85 | targetはwasm以外でnull | E-30: target定義（13-20行目） | ○ |

### xdg.zig (UT-OSS-172 ~ UT-OSS-183)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-86 | configはXDG_CONFIG_HOMEを取得 | E-32: config関数（23-29行目） | ○ |
| C-87 | cacheはXDG_CACHE_HOMEを取得 | E-32: cache関数（32-38行目） | ○ |
| C-88 | stateはXDG_STATE_HOMEを取得 | E-32: state関数（41-47行目） | ○ |
| C-89 | parseTerminalExecはxdg-terminal-execを解析 | E-32: parseTerminalExec関数（106-119行目） | ○ |
| C-90 | 既存テストが検証を提供 | E-32: test blocks（121-308行目） | ○ |

## 4) 不足情報（Unknown / Missing）
- なし。全てのテストケースはソースコードから直接抽出されています。

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全テストケースがソースコードの関数・メソッド定義から直接導出されており、根拠が明確です。
- 既存の単体テスト（test block）が多数存在し、期待動作の参照として活用しました。
- プラットフォーム固有のコード（macOS、Linux、Windows、wasm）については、コンパイル時分岐を考慮したテストケースを設計しました。

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースがソースコードの関数/メソッドを網羅しているか確認
- [ ] 各プラットフォーム（macOS、Linux、Windows）固有のテストケースが適切か確認
- [ ] 境界値テストケースが適切な値を使用しているか確認
- [ ] エラーハンドリングのテストケースが全ての主要なエラーパスをカバーしているか確認
- [ ] 既存のtest blockとの重複・整合性を確認
- [ ] Flatpak/systemd/D-Bus等のLinux固有機能のテストケースが実行可能か確認
