1 /* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef TEST_OUTPUT_H 6 #define TEST_OUTPUT_H 7 8 9 #include <stdarg.h> 10 11 #include <KernelExport.h> 12 13 14 class TestOutput { 15 public: 16 TestOutput(); 17 virtual ~TestOutput(); 18 19 virtual int PrintArgs(const char* format, va_list args) = 0; 20 inline int Print(const char* format,...); 21 }; 22 23 24 class DebugTestOutput : public TestOutput { 25 public: 26 DebugTestOutput(); 27 virtual ~DebugTestOutput(); 28 29 virtual int PrintArgs(const char* format, va_list args); 30 31 private: 32 spinlock fLock; 33 char fBuffer[1024]; 34 }; 35 36 37 int Print(const char * format,...)38TestOutput::Print(const char* format,...) 39 { 40 va_list args; 41 va_start(args, format); 42 int result = PrintArgs(format, args); 43 va_end(args); 44 45 return result; 46 } 47 48 49 50 #endif // TEST_OUTPUT_H 51