# 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/VspJQN4s3NzUR3C9
コンパイラーの選択などは後述のコマンドラインオプションの項をご覧ください。

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

-c | --compiler COMPILER | コンパイラーを選択します。選択できるコンパイラーは Wandbox を確認するか、--list_compiler オプションで確認してください。デフォルト：[gcc-head]
-x | --options OPTIONS | オプションを選択します。選択できるコンパイラーは Wandbox を確認するか、--list_options オプションで確認してください。
| --default | Wandbox のデフォルトオプションを使用します。廃止されました。デフォルトで有効です。
| --no-default | Wandbox のデフォルトオプションを使用しないようにします。
| --std VERSION | 使用する C++ のバージョンを指定します。
| --boost VERSION | 使用する boost のバージョンを指定します。nothing を指定すると boost を使用しません。
| --cpp-verbose | Wandbox の Verbose を有効にします。
| --optimize | Wandbox の Optimization を有効します。
| --sprout | Sprout を使用します。
| --msgpack | MessagePack を使用します。
-f | --compiler-options-raw OPTIONS | コンパイラーのオプションを直接指定します。複数のオプションを指定する場合は、[ -f"-Dx=hogefuga -O3" ] とするか、[ -f"-Dx=hogefuga" -f"-O3" ] のように記述できます。
-r | --runtime-options-raw OPTIONS | ビルドした実行ファイルのコマンドラインオプションを指定します。複数のオプションを指定する場合は、[ -r"--iutest_shuffle --iutest_random_seed=1" ] とするか、[ -r"--iutest_shuffle" -r"--iutest_random_seed=1" ] のように複数オプションを記述してください。
| --iutest-use-main | -DIUTEST_USE_MAIN をコンパイルオプションにつけます。main 関数の記述が省略できます。
| --list-compiler | 利用可能なコンパイラーを列挙します。
| --list-options COMPILER | COMPILER で利用可能なオプションを列挙します。
| --stdin | 実行時の stdin の内容を指定します。
| --encoding ENCODING | 入力ソースコードファイルのエンコードを指定します。
| --expand-include | 入力ソースコードファイルに含まれる include を展開します。
-o | --output FILE | ソースコードを FILE に書き出します。
| --xml FILE | テスト結果 xml を FILE に書き出します。
| --junit FILE | テスト結果 xml を junit 形式で FILE に書き出します。
-s | --save | permarnent link を生成します。
| --verbose | 実行前にパラメータを表示します。
| --dryrun | Wandbox で実行せず終了します。
| --permlink ID | ID の permarnent link の情報を取得します。--output オプションを指定すると、ソースコードをファイルに書き出します。
-v | --version | バージョンを表示します。
-h | --help | ヘルプを表示します。

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