mirror of
https://review.haiku-os.org/haiku
synced 2025-01-22 06:16:03 +01:00
39 lines
1.1 KiB
C
39 lines
1.1 KiB
C
|
#ifndef _beos_threaded_test_case_h_
|
||
|
#define _beos_threaded_test_case_h_
|
||
|
|
||
|
#include <Locker.h>
|
||
|
#include <kernel/OS.h>
|
||
|
#include <TestCase.h>
|
||
|
#include <map>
|
||
|
#include <string>
|
||
|
|
||
|
//! Base class for single threaded unit tests
|
||
|
class BThreadedTestCase : public BTestCase {
|
||
|
public:
|
||
|
BThreadedTestCase(std::string Name = "", std::string progressSeparator = ".");
|
||
|
virtual ~BThreadedTestCase();
|
||
|
|
||
|
/*! \brief Displays the next sub test progress indicator for the
|
||
|
thread in which it's called (i.e. [A.0][B.0][A.1][A.2][B.1]...). */
|
||
|
virtual void NextSubTest();
|
||
|
|
||
|
//! Saves the location of the current working directory.
|
||
|
void SaveCWD();
|
||
|
|
||
|
//! Restores the current working directory to last directory saved by a call to SaveCWD().
|
||
|
void RestoreCWD(const char *alternate = NULL);
|
||
|
void InitThreadInfo(thread_id id, std::string threadName);
|
||
|
protected:
|
||
|
// friend class ThreadManager<BThreadedTestCase>;
|
||
|
std::string fProgressSeparator;
|
||
|
|
||
|
struct ThreadSubTestInfo {
|
||
|
std::string name;
|
||
|
int32 subTestNum;
|
||
|
};
|
||
|
std::map<thread_id, ThreadSubTestInfo*> fNumberMap;
|
||
|
BLocker *fNumberMapLock;
|
||
|
};
|
||
|
|
||
|
#endif // _beos_threaded_test_case_h_
|