[詳解]
   15 #ifndef INCG_IRIS_IUTEST_TAP_PRINTER_HPP_77055C2B_AAE1_4944_A61C_26C58B04B37B_ 
   16 #define INCG_IRIS_IUTEST_TAP_PRINTER_HPP_77055C2B_AAE1_4944_A61C_26C58B04B37B_ 
   20 #include "../iutest_core.hpp" 
   21 #include "../internal/iutest_log_stream.hpp" 
   22 #include "../internal/iutest_filepath.hpp" 
   32 class TAPPrintListener : 
public EmptyTestEventListener
 
   61 class TAPFileGeneratorListener : 
public TAPPrintListener
 
   63     ::std::string m_output_path;
 
   71         SetFilePath(directory);
 
   77     const ::std::string& 
GetFilePath()
 const { 
return m_output_path; }
 
   82     void SetFilePath(
const char* directory)
 
   84         if( directory == NULL || *directory == 
'\0' )
 
   86             m_output_path = internal::posix::GetCWD();
 
   90             detail::iuFilePath path(directory);
 
   91             if( path.IsDirectory() )
 
   93                 m_output_path = directory;
 
   97                 m_output_path = path.RemoveFileName().ToString();
 
  104         IUTEST_UNUSED_VAR(test);
 
  108         IUTEST_UNUSED_VAR(test_property);
 
  116     static TestEventListener* 
SetUp()
 
  119         const ::std::string& output =  TestEnv::get_output_option();
 
  128     IUTEST_UNUSED_VAR(test);
 
  132         detail::iuConsole::color_output(detail::iuConsole::yellow
 
  133             , 
"# Note: iutest filter = %s\n", TestEnv::test_filter());
 
  138     detail::LogStream stream;
 
  149     detail::iuConsole::output(
"1..%d\n", number-1);
 
  153     stream->Printf(
"# %s started.\n", test_case.
name());
 
  155     for( 
int i=0, test_count=test_case.
total_test_count(); i < test_count; ++i )
 
  161             stream->Printf(
"ok %d # SKIP - %s\n", top+i, test_info->
name());
 
  167                 stream->Printf(
"not ok %d - %s ", top+i, test_info->
name() );
 
  171                     ::std::string summary = part.make_message();
 
  173                     detail::StringReplace(summary, 
'\n', 
", ");
 
  174                     stream->Printf(
"%s. ", summary.c_str() );
 
  176                 stream->Printf(
"\n");
 
  180                 stream->Printf(
"ok %d - %s\n", top+i, test_info->
name() );
 
  185     stream->Printf(
"# %s ended.\n", test_case.
name());
 
  194         IUTEST_UNUSED_VAR(test);
 
  195         IFile* fp = detail::IFileSystem::New();
 
  201         ::std::string filepath = m_output_path;
 
  202         ::std::string name = test_case.
name();
 
  203         detail::StringReplace(name, 
'/', 
"_");
 
  204         filepath += detail::GetPathSeparator();
 
  210             fprintf(stderr, 
"Unable to open file \"%s\".\n", filepath.c_str());
 
  219         detail::IFileSystem::Free(fp);
 
  225 #endif // INCG_IRIS_IUTEST_TAP_PRINTER_HPP_77055C2B_AAE1_4944_A61C_26C58B04B37B_ 
  
空のイベントリスナー
Definition: iutest_listener.hpp:91
 
イベントリスナー
Definition: iutest_listener.hpp:63
 
static UnitTest * GetInstance()
UnitTest インスタンスの取得
Definition: iutest_core.hpp:41
 
virtual void OnTestProgramEnd(const UnitTest &test) IUTEST_CXX_OVERRIDE
テストプログラム終了時に呼ばれます
Definition: iutest_tap_printer.hpp:137
 
テスト情報クラス
Definition: iutest_info.hpp:32
 
virtual void OnTestProgramStart(const UnitTest &test) IUTEST_CXX_OVERRIDE
テストプログラム開始時に呼ばれます
Definition: iutest_tap_printer.hpp:103
 
iutest root namespace
Definition: iutest_charcode.hpp:31
 
bool should_run() const IUTEST_CXX_NOEXCEPT_SPEC
Definition: iutest_info.hpp:63
 
テスト全体の管理者
Definition: iutest_core.hpp:33
 
const TestResult * result() const IUTEST_CXX_NOEXCEPT_SPEC
Definition: iutest_info.hpp:75
 
static TestEventListener * SetUp()
TAPFileGeneratorListener に切り替え
Definition: iutest_tap_printer.hpp:117
 
int total_test_case_count() const
Definition: iutest_core.hpp:89
 
const ::std::string & GetFilePath() const
出力パスの取得
Definition: iutest_tap_printer.hpp:78
 
TAP出力イベントリスナー
Definition: iutest_tap_printer.hpp:33
 
TestEventListener * Release(TestEventListener *listener)
リスナーの解放
Definition: iutest_listener.hpp:174
 
static TestEventListener * SetUp()
TAPPrintListener に切り替え
Definition: iutest_tap_printer.hpp:49
 
TAPFileGeneratorListener(const char *directory=NULL)
コンストラクタ
Definition: iutest_tap_printer.hpp:70
 
const TestInfo * GetTestInfo(int index) const
Definition: iutest_case.hpp:103
 
bool HasFailure() const
エラーが出たかどうか
Definition: iutest_info.hpp:110
 
virtual void Close()=0
閉じる
 
#define IUTEST_CXX_OVERRIDE
override definition
Definition: iutest_compiler.hpp:670
 
const TestPartResult & GetTestPartResult(int index) const
テスト結果の取得
Definition: iutest_result.hpp:306
 
const TestCase * GetTestCase(int index) const
Definition: iutest_core.hpp:113
 
bool Open(const char *filename, int mode)
開く
Definition: iutest_file.hpp:52
 
void OnReportTestCase(detail::IOutStream *const stream, const TestCase &test_case, int top=1)
テストケース毎の処理
Definition: iutest_tap_printer.hpp:152
 
void Append(TestEventListener *listener)
リスナーの追加
Definition: iutest_listener.hpp:169
 
ファイルクラスインターフェイス
Definition: iutest_file.hpp:32
 
virtual void OnTestProgramStart(const UnitTest &test) IUTEST_CXX_OVERRIDE
テストプログラム開始時に呼ばれます
Definition: iutest_tap_printer.hpp:127
 
テストプロパティ
Definition: iutest_result.hpp:156
 
int total_test_count() const IUTEST_CXX_NOEXCEPT_SPEC
Definition: iutest_case.hpp:76
 
const char * name() const
Definition: iutest_case.hpp:73
 
イベントリスナーの管理クラス
Definition: iutest_listener.hpp:158
 
static bool IsEnableFlag(int flag)
フラグが立っているかどうか
Definition: iutest_env.hpp:208
 
virtual void OnTestProgramEnd(const UnitTest &test) IUTEST_CXX_OVERRIDE
テストプログラム終了時に呼ばれます
Definition: iutest_tap_printer.hpp:189
 
テスト結果を示すクラス
Definition: iutest_result.hpp:54
 
TAPファイル出力イベントリスナー
Definition: iutest_tap_printer.hpp:62
 
int total_part_count() const
結果の数を取得
Definition: iutest_result.hpp:293
 
const char * name() const
Definition: iutest_info.hpp:61
 
@ OpenWrite
書き込み
Definition: iutest_file.hpp:39
 
TestEventListeners & listeners() const
Definition: iutest_core.hpp:121
 
TestEventListener * default_result_printer() const IUTEST_CXX_NOEXCEPT_SPEC
デフォルト出力リスナーの取得
Definition: iutest_listener.hpp:180
 
テストケース
Definition: iutest_case.hpp:31
 
@ FILTERING_TESTS
テストのフィルタリング
Definition: iutest_env.hpp:145