---
generated_at: 2026-02-17 21:30:00
metrics:
  claims_total: 170
  claims_with_evidence: 170
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：170 / 170、根拠なし：0
- 優先レビュー（高）
  1. **外部ライブラリ依存のテスト**：TinyCC、linenoise、PCRE、OpenSSLの各ライブラリが実行環境に存在することが前提
  2. **プラットフォーム固有機能**：一部の機能はWindows/Linux/macOSで動作が異なる可能性
  3. **OpenSSLバージョン依存**：OpenSSL 1.0.x、1.1.x、3.xで利用可能なAPIが異なる

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

- E-01: `lib/wrappers/tinyc.nim` - TinyCC (Tiny C Compiler) ラッパー
- E-02: `lib/wrappers/linenoise/linenoise.nim` - linenoise（行編集ライブラリ）ラッパー
- E-03: `lib/wrappers/pcre.nim` - PCRE（Perl互換正規表現）ラッパー
- E-04: `lib/wrappers/openssl.nim` - OpenSSL暗号ライブラリラッパー

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

### tinyc.nim（UT-WRP-001〜033）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | openCCState関数が存在し、PccStateを返す | E-01 L16 | ○ |
| C-02 | closeCCState関数が存在し、状態を解放する | E-01 L19 | ○ |
| C-03 | setErrorFunc関数でエラーコールバックを設定可能 | E-01 L22-24 | ○ |
| C-04 | setOptions関数でオプション設定可能 | E-01 L26 | ○ |
| C-05 | addIncludePath関数でインクルードパス追加可能 | E-01 L31-33 | ○ |
| C-06 | addSysincludePath関数でシステムインクルードパス追加可能 | E-01 L35-37 | ○ |
| C-07 | defineSymbol関数でプリプロセッサシンボル定義可能 | E-01 L39-41 | ○ |
| C-08 | undefineSymbol関数でシンボル未定義化可能 | E-01 L43-45 | ○ |
| C-09 | addFile関数でファイル追加可能、戻り値-1はエラー | E-01 L49-52 | ○ |
| C-10 | compileString関数で文字列コンパイル可能、非0はエラー | E-01 L54-56 | ○ |
| C-11 | OutputMemory等の出力タイプ定数が定義されている | E-01 L62-67 | ○ |
| C-12 | setOutputType関数で出力タイプ設定可能 | E-01 L69-71 | ○ |
| C-13 | addLibraryPath関数でライブラリパス追加可能 | E-01 L73-75 | ○ |
| C-14 | addLibrary関数でライブラリ追加可能 | E-01 L77-79 | ○ |
| C-15 | addSymbol関数でシンボル追加可能 | E-01 L81-83 | ○ |
| C-16 | outputFile関数でファイル出力可能 | E-01 L85-88 | ○ |
| C-17 | run関数でコンパイル済みコード実行可能 | E-01 L90-93 | ○ |
| C-18 | relocate関数でコード再配置可能 | E-01 L95-99 | ○ |
| C-19 | getSymbol関数でシンボルアドレス取得可能 | E-01 L101-103 | ○ |
| C-20 | setLibPath関数でライブラリパス設定可能 | E-01 L105-107 | ○ |

### linenoise.nim（UT-WRP-034〜056）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-21 | Completions型が定義されている | E-02 L11-13 | ○ |
| C-22 | CompletionCallback型が定義されている | E-02 L15 | ○ |
| C-23 | setCompletionCallback関数が存在 | E-02 L19-20 | ○ |
| C-24 | addCompletion関数が存在 | E-02 L21-22 | ○ |
| C-25 | readLine関数が存在しcstringを返す | E-02 L23 | ○ |
| C-26 | historyAdd関数が存在しcintを返す（discardable） | E-02 L24-25 | ○ |
| C-27 | historySetMaxLen関数が存在 | E-02 L26 | ○ |
| C-28 | historySave関数が存在 | E-02 L27 | ○ |
| C-29 | historyLoad関数が存在 | E-02 L28 | ○ |
| C-30 | clearScreen関数が存在 | E-02 L29 | ○ |
| C-31 | setMultiLine関数が存在 | E-02 L30 | ○ |
| C-32 | printKeyCodes関数が存在 | E-02 L31 | ○ |
| C-33 | free関数でcstringメモリ解放可能 | E-02 L33 | ○ |
| C-34 | Status enumが非Windows環境で定義されている | E-02 L48-51 | ○ |
| C-35 | ReadLineResult型が非Windows環境で定義されている | E-02 L53-55 | ○ |
| C-36 | readLineStatus関数が非Windows環境で定義されている | E-02 L57-72 | ○ |

### pcre.nim（UT-WRP-057〜093）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-37 | PCREバージョン定数が定義されている | E-03 L13-16 | ○ |
| C-38 | CASELESS等のオプション定数が定義されている | E-03 L57-104 | ○ |
| C-39 | ERROR_NOMATCH等のエラーコード定数が定義されている | E-03 L108-145 | ○ |
| C-40 | Pcre、JitStack等の型が定義されている | E-03 L257-262 | ○ |
| C-41 | ExtraData構造体が定義されている | E-03 L271-279 | ○ |
| C-42 | CalloutBlock構造体が定義されている | E-03 L286-303 | ○ |
| C-43 | compile関数が存在しptr Pcreを返す | E-03 L333-337 | ○ |
| C-44 | compile2関数が存在しエラーコード取得可能 | E-03 L339-344 | ○ |
| C-45 | config関数でPCRE設定取得可能 | E-03 L346-347 | ○ |
| C-46 | exec関数でパターンマッチ実行可能 | E-03 L375-382 | ○ |
| C-47 | dfa_exec関数でDFAマッチ実行可能 | E-03 L364-373 | ○ |
| C-48 | jit_exec関数でJITマッチ実行可能 | E-03 L384-392 | ○ |
| C-49 | study関数でパターン最適化可能 | E-03 L434-436 | ○ |
| C-50 | free_study関数でstudy結果解放可能 | E-03 L438 | ○ |
| C-51 | fullinfo関数でパターン情報取得可能 | E-03 L398-401 | ○ |
| C-52 | get_substring関数で部分文字列取得可能 | E-03 L418-422 | ○ |
| C-53 | get_named_substring関数で名前付きキャプチャ取得可能 | E-03 L403-408 | ○ |
| C-54 | copy_substring関数で文字列コピー可能 | E-03 L357-362 | ○ |
| C-55 | free_substring関数でメモリ解放可能 | E-03 L394 | ○ |
| C-56 | get_substring_list関数でリスト取得可能 | E-03 L424-427 | ○ |
| C-57 | free_substring_list関数でリスト解放可能 | E-03 L396 | ○ |
| C-58 | get_stringnumber関数で番号取得可能 | E-03 L410-411 | ○ |
| C-59 | maketables関数でテーブル生成可能 | E-03 L429 | ○ |
| C-60 | version関数でバージョン取得可能 | E-03 L440 | ○ |
| C-61 | jit_stack_alloc関数でJITスタック確保可能 | E-03 L450-451 | ○ |
| C-62 | jit_stack_free関数でJITスタック解放可能 | E-03 L453 | ○ |
| C-63 | assign_jit_stack関数でJITスタック割り当て可能 | E-03 L455-457 | ○ |
| C-64 | jit_free_unused_memory関数でメモリ解放可能 | E-03 L459 | ○ |

### openssl.nim（UT-WRP-094〜170）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-65 | DLLSSLName、DLLUtilName定数が定義されている | E-04 L50-104 | ○ |
| C-66 | SslPtr、SslCtx等の型が定義されている | E-04 L112-141 | ○ |
| C-67 | SSL_ERROR_xxx定数が定義されている | E-04 L156-164 | ○ |
| C-68 | SSL_VERIFY_xxx定数が定義されている | E-04 L227-228 | ○ |
| C-69 | TLSv1_method関数が存在 | E-04 L278 | ○ |
| C-70 | SSL_library_init関数が存在（バージョン依存実装） | E-04 L290-291, L301-303, L404-414 | ○ |
| C-71 | SSL_load_error_strings関数が存在 | E-04 L291, L315-319, L416-419 | ○ |
| C-72 | getOpenSSLVersion関数が存在 | E-04 L295-296, L309-313, L451-456 | ○ |
| C-73 | SSLv23_method関数が存在 | E-04 L292, L306-307, L428-429 | ○ |
| C-74 | TLS_method関数が存在 | E-04 L305, L437-438 | ○ |
| C-75 | SSL_CTX_new関数が存在 | E-04 L486-487 | ○ |
| C-76 | SSL_CTX_free関数が存在 | E-04 L490 | ○ |
| C-77 | SSL_new関数が存在 | E-04 L479 | ○ |
| C-78 | SSL_free関数が存在 | E-04 L480 | ○ |
| C-79 | SSL_set_fd関数が存在 | E-04 L509 | ○ |
| C-80 | SSL_connect関数が存在 | E-04 L514 | ○ |
| C-81 | SSL_accept関数が存在 | E-04 L518 | ○ |
| C-82 | SSL_read関数が存在 | E-04 L515 | ○ |
| C-83 | SSL_write関数が存在 | E-04 L516 | ○ |
| C-84 | SSL_get_error関数が存在 | E-04 L517 | ○ |
| C-85 | SSL_shutdown関数が存在 | E-04 L511 | ○ |
| C-86 | SSL_pending関数が存在 | E-04 L519 | ○ |
| C-87 | SSL_get_verify_result関数が存在 | E-04 L492-493 | ○ |
| C-88 | SSL_CTX_set_verify関数が存在 | E-04 L491 | ○ |
| C-89 | SSL_CTX_load_verify_locations関数が存在 | E-04 L488-489 | ○ |
| C-90 | SSL_CTX_use_certificate_file関数が存在 | E-04 L496-497 | ○ |
| C-91 | SSL_CTX_use_PrivateKey_file関数が存在 | E-04 L500-501 | ○ |
| C-92 | SSL_CTX_check_private_key関数が存在 | E-04 L502-503 | ○ |
| C-93 | SSL_CTX_set_cipher_list関数が存在 | E-04 L495 | ○ |
| C-94 | SSL_set_tlsext_host_name関数が存在 | E-04 L611-614 | ○ |
| C-95 | SSL_get_servername関数が存在 | E-04 L616-619 | ○ |
| C-96 | SSL_in_init関数が存在（バージョン依存実装） | E-04 L326-329, L458-471 | ○ |
| C-97 | ERR_get_error関数が存在 | E-04 L545 | ○ |
| C-98 | ERR_error_string関数が存在 | E-04 L543-544 | ○ |
| C-99 | ErrClearError関数が存在 | E-04 L692 | ○ |
| C-100 | BIO関連関数が存在 | E-04 L521-538, L664-671 | ○ |
| C-101 | d2i_X509関数が存在（string版） | E-04 L561-568 | ○ |
| C-102 | i2d_X509関数が存在（string版） | E-04 L570-578 | ○ |
| C-103 | HMAC関数が存在 | E-04 L741 | ○ |
| C-104 | EVP_sha256等のダイジェスト関数が存在 | E-04 L731-737 | ○ |
| C-105 | EVP_MD_size関数が存在 | E-04 L738 | ○ |
| C-106 | md5_File関数が存在 | E-04 L794-812 | ○ |
| C-107 | md5_Str関数が存在 | E-04 L814-830 | ○ |
| C-108 | RSA暗号化/復号関数が存在 | E-04 L710-717 | ○ |
| C-109 | RSA_verify関数が存在 | E-04 L700-701 | ○ |
| C-110 | RSA_size関数が存在 | E-04 L719 | ○ |
| C-111 | RSA_free関数が存在 | E-04 L718 | ○ |
| C-112 | ALPN関連関数が存在 | E-04 L905-912 | ○ |
| C-113 | PSK関連関数が存在 | E-04 L643-653 | ○ |
| C-114 | SSL_CTX_set_ecdh_auto関数が存在 | E-04 L655-662 | ○ |
| C-115 | CRYPTO_malloc_init関数が存在 | E-04 L593-597 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし（すべてのテストケースはソースコードの関数定義に基づいて生成）

**補足事項:**
- 本モジュールはすべてFFI（Foreign Function Interface）ラッパーであり、実際のテスト実行には外部ライブラリのインストールが必要
- OpenSSLのバージョンによって利用可能なAPIが異なるため、テスト実行時はバージョンに応じたテストケースの選択が必要
- 一部の関数（特にlinenoise）はインタラクティブな端末入力を必要とするため、自動テストでのモック化が必要

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースはソースコードの関数定義に直接対応しており、信頼度は高い
- 1: 中リスク - 外部ライブラリの動作はライブラリのバージョンや設定に依存する可能性がある
- 1: 中リスク - プラットフォーム固有の機能（Windows除外、OpenSSLバージョン依存等）については実行環境での確認が必要

## 6) レビュアーチェックリスト（最小）
- [ ] テスト対象の関数がすべてカバーされているか確認
- [ ] 外部ライブラリ（TinyCC、linenoise、PCRE、OpenSSL）のテスト環境が準備可能か確認
- [ ] OpenSSLバージョン依存のテストケースが正しく識別されているか確認
- [ ] プラットフォーム固有のテストケース（非Windows、macOS固有等）が正しくマークされているか確認
- [ ] 境界値テストケースが各関数に対して適切に設定されているか確認
- [ ] エラーハンドリング（nil入力、存在しないファイル等）のテストケースが網羅されているか確認
