Update of /cvsroot/cppunit/cppunit2/include/opentest
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29713/include/opentest
Added Files:
remoteinterfaces.h
Log Message:
Remote interface for TestRunner / TestDriver connection (serialize message)
--- NEW FILE: remoteinterfaces.h ---
#ifndef OPENTEST_REMOTEINTERFACES_H_INCLUDED
# define OPENTEST_REMOTEINTERFACES_H_INCLUDED
# include <opentest/interfaces.h>
namespace OpenTest {
enum MessageId
{
driverMessageSetTestDescriptions = 1,
minMessageId = driverMessageSetTestDescriptions,
driverMessageSetDefaultTestPlan,
driverMessageStartTesting,
driverMessageAddResultLog,
driverMessageAddResultAssertion,
driverMessageSetResultInputActualOutput,
driverMessageSetTestResult,
driverMessageTestPlanDone,
runnerMessageGetTestDescriptions,
runnerMessageGetTestPlans,
runnerMessageRunTests,
runnerMessageStopTest,
maxMessageId = runnerMessageStopTest
};
Stream & OPENTEST_API operator <<( Stream &stream, MessageId id );
Stream & OPENTEST_API operator >>( Stream &stream, MessageId &id );
class MessageSender
{
public:
virtual ~MessageSender()
{
}
Stream &stream()
{
CPPTL_ASSERT_MESSAGE( stream_ != 0, "No stream attached to remote proxy." );
return *stream_;
}
void beginMessage( MessageId message );
void sendMessage()
{
// @todo
}
private:
Stream *stream_;
};
class TestDriverProxy : public TestDriverInterface
, public MessageSender
{
public: // overridden from TestDriverInterface
void setTestDescriptions( TestDescriptions &tests );
void setDefaultTestPlan( const TestPlan &plan );
void startTesting( TestId testPlan );
void addResultLog( TestId testPlan,
const ResultLog &log );
void addResultAssertion( TestId testPlan,
const ResultAssertion &assertion );
void setResultInputActualOutput( TestId testPlan,
const ResultInputOutput &output );
void setTestResult( TestId testPlan,
ResultStatus &status );
void testPlanDone( TestPlanId id );
};
class MessageServer
{
public:
virtual ~MessageServer()
{
}
Stream &stream()
{
CPPTL_ASSERT_MESSAGE( stream_ != 0, "No stream attached to message sender." );
return *stream_;
}
private:
virtual void processMessageStream() = 0;
Stream *stream_;
};
class TestDriverServer : public MessageServer
{
public:
TestDriverServer( TestDriverInterface &impl )
: impl_( &impl )
{
}
public: // overridden from MessageServer
void processMessageStream();
private:
TestDriverInterface *impl_;
};
class TestRunnerProxy : public TestRunnerInterface
, public MessageSender
{
public: // overridden from TestRunnerInterface
void getTestDescriptions();
void getTestPlans();
void runTests( const TestPlan &plan );
void stopTest();
};
} // namespace OpenTest
#endif // OPENTEST_REMOTEINTERFACES_H_INCLUDED
|