Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Factionのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Faction
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:フレームワーク]] [[en:Faction]] '''Faction''' はテスト駆動開発のための C ライブラリです。 == インストール == {{AUR|libfaction}} パッケージを[[インストール]]してください。 == 使用方法 == ライブラリにはテストを素早く書くための C マクロが複数含まれています。 * FI (Faction Initialization) * FT (Faction Test) * FC (Faction Close) FT マクロを使うときは3つのフィールドが必要です。 * AUTHORS() にはダブルクォーテーションで囲った作者の名前をカンマで区切ったリストで指定します。 * SPEC() にはシングルクォーテーションで囲ったテストの説明を記入します。 * C の boolean 表現 (C assert マクロと同じように使います) 基本的にはテストするコードが含まれているソースファイルの末尾に Faction のテストを記述します。テストは FACTION マクロガードで囲ってください (下の例を参照)。そうすることでコンパイル時に有効化・無効化できます。GNU C Compiler (GCC) などの C コンパイラはコマンドラインでマクロを有効にすることができます ({{ic| -D}} フラグ)。 == サンプル == /* This is the function to be tested */ int increment(int input) { return (input + 1); } #ifdef FACTION #include <faction.h> #include <limits.h> FI FT( AUTHORS( "timetoplatypus" ), SPEC( "increment() returns 1 when given 0" ), increment(0) == 1 ); FT( AUTHORS( "timetoplatypus" ), SPEC( "increment() returns 0 when given the largest integer value" ), increment(INT_MAX) == 0 ); FC #endif {{ ic | gcc <filename.c> -D FACTION }} でコンパイルすることができます。 == モード == Faction はコンパイルするときに2つのモードが存在します: ''minimal'' モードと ''extended'' モードです。 上の例ではミニマルモードで Faction をコンパイルしています。ミニマルモードでは3つのライブラリに依存します: stdlib, stdio, getopt。拡張モードではさらに依存ライブラリが増え、一部の関数は GNU 機能検査マクロでしか使えません。 拡張モードでコンパイルするときは、ファイルの一番上に GNU 機能検査マクロを定義してください。例えば、上記のサンプルは拡張モードでコンパイルすると以下のようになります: {{ hc | head= #ifdef FACTION #define _GNU_SOURCE #endif | output= /* This is the function to be tested */ increment(int input) { return (input + 1); } #ifdef FACTION #include <faction.h> #include <limits.h> FI FT( AUTHORS( "timetoplatypus" ), SPEC( "increment() returns 1 when given 0" ), increment(0) == 1 ); FT( AUTHORS( "timetoplatypus" ), SPEC( "increment() returns 0 when given the largest integer value" ), increment(INT_MAX) == 0 ); FC #endif }} === 拡張モードの機能 === 拡張モードでは: * 実行時に {{ ic | -l }} フラグを使うことでユーザーが定義したログファイルに出力をコピーできます。 * 結果表は使用しているターミナルの横幅にあわせて動的にサイズが変わります。デフォルトの横幅は78文字です。 == 参照 == * [https://timetoplatypus.com/static/faction/index.html Faction ホームページ] {{TranslationStatus|Faction|2024/9/8|815766}}
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:TranslationStatus
(
ソースを閲覧
)
Faction
に戻る。
検索
検索
Factionのソースを表示
話題を追加