# Wandbox の利用

## iuwandbox

Wandbox で iutest を使ったテストコードを書けるように対応しました。
様々なコンパイラー・バージョンでビルド・テストができるため、あなたのプログラムのコンパイラー対応を助けます。

## 使い方

tools/wandbox/iuwandbox.py を使用します。
iuwandbox は python で書かれていますので、python が利用可能な環境で実行してください。
実行は簡単です。ビルド・実行したいソースコードファイルを引数に渡すだけです。
例）

    iuwandbox.py sample.cpp

ソースコードに特別な記述は必要ありません。
重要なのは iutest.hpp を include することです。このとき、iutest.hpp にパスが通っていなくても問題ありません。

    #include "../../include/iutest.hpp"
    #include <iostream>

    int main(int argc, char** argv)
    {
        int x = 0;
        std::cout << "hoge" << std::endl;

        IUTEST_INIT(&argc, argv);
        return IUTEST_RUN_ALL_TESTS();
    }

    IUTEST(Foo, Bar)
    {
        IUTEST_ASSERT_EQ(1, abs(-1));
    }

サンプルの実行結果はこちらになります。
http://melpon.org/wandbox/permlink/ASSmVgckBKb1HxFF
コンパイラーの選択などは後述のコマンドラインオプションの項をご覧ください。

## コマンドラインオプション

-c,--compiler COMPILER | コンパイラーを選択します。選択できるコンパイラーは Wandbox を確認するか、--list_compiler オプションで確認してください。デフォルト：[gcc-head]
-x,--options OPTIONS | オプションを選択します。選択できるコンパイラーは Wandbox を確認するか、--list_options オプションで確認してください。
--default | Wandbox のデフォルトオプションを使用します。
--boost VERSION | 使用する boost のバージョンを指定します。nothing を指定すると boost を使用しません。
-f,--compiler_options_raw OPTIONS | コンパイラーのオプションを直接指定します。複数のオプションを指定する場合は、[ -f"-Dx=hogefuga\n-O3" ] とするか、[ -f"-Dx=hogefuga" -f"-O3" ] のように複数オプションを記述してください。
-r,--runtime_options_raw OPTIONS | ビルドした実行ファイルのコマンドラインオプションを指定します。複数のオプションを指定する場合は、[ -r"--iutest_shuffle\n--iutest_random_seed=1" ] とするか、[ -r"--iutest_shuffle" -r"--iutest_random_seed=1" ] のように複数オプションを記述してください。
--list_compiler | 利用可能なコンパイラーを列挙します。
--list_options COMPILER | COMPILER で利用可能なオプションを列挙します。
--stdin | 実行時の stdin の内容を指定します。
--encoding ENCODING | 入力ソースコードファイルのエンコードを指定します。
--expand_include | 入力ソースコードファイルに含まれる include を展開します。
-o, --output FILE | ソースコードを FILE に書き出します。
-s, --save | permarnent link を生成します。
--verbose | 実行前にパラメータを表示します。
--permlink ID | ID の permarnent link の情報を取得します。--output オプションを指定すると、ソースコードをファイルに書き出します。
-v,--version | バージョンを表示します
-h,--help | ヘルプを表示します

Copyright (c) 2011-2016, Takazumi-Shirayanagi, All rights reserved.