[ROSAUTOTEST]

- Finish a test run in the database when all tests have successfully been run. This got lost during the C++ rewrite of rosautotest in r40147.
- Don't spam the logs with useless OK messages. Only report the web service response if an error occurred.

svn path=/trunk/; revision=66516
This commit is contained in:
Colin Finck 2015-03-01 11:19:30 +00:00
parent f268fadf4a
commit 65b4da13f4
3 changed files with 43 additions and 6 deletions

View file

@ -94,6 +94,38 @@ CWebService::DoRequest(const string& InputData)
return Data.release();
}
/**
* Interface to other classes for finishing this test run
*
* @param TestType
* Constant pointer to a char array containing the test type to be run (i.e. "wine")
*/
void
CWebService::Finish(const char* TestType)
{
auto_array_ptr<char> Response;
string Data;
stringstream ss;
if (!m_TestID)
EXCEPTION("CWebService::Finish was called, but not a single result had been submitted!");
Data = "action=finish";
Data += Configuration.GetAuthenticationRequestString();
Data += "&testtype=";
Data += TestType;
Data += "&testid=";
Data += m_TestID;
Response.reset(DoRequest(Data));
if (strcmp(Response, "OK"))
{
ss << "When finishing the test run, the server responded:" << endl << Response << endl;
SSEXCEPTION;
}
}
/**
* Requests a Test ID from the Web Service for our test run.
*
@ -206,9 +238,9 @@ CWebService::Submit(const char* TestType, CTestInfo* TestInfo)
Response.reset(DoRequest(Data));
ss << "The server responded:" << endl << Response << endl;
StringOut(ss.str());
if(strcmp(Response, "OK"))
EXCEPTION("Aborted!\n");
if (strcmp(Response, "OK"))
{
ss << "When submitting the result, the server responded:" << endl << Response << endl;
SSEXCEPTION;
}
}

View file

@ -2,7 +2,7 @@
* PROJECT: ReactOS Automatic Testing Utility
* LICENSE: GNU GPLv2 or any later version as published by the Free Software Foundation
* PURPOSE: Class implementing the interface to the "testman" Web Service
* COPYRIGHT: Copyright 2009 Colin Finck <colin@reactos.org>
* COPYRIGHT: Copyright 2009-2015 Colin Finck <colin@reactos.org>
*/
class CWebService
@ -21,5 +21,6 @@ public:
CWebService();
~CWebService();
void Finish(const char* TestType);
void Submit(const char* TestType, CTestInfo* TestInfo);
};

View file

@ -372,6 +372,10 @@ CWineTest::Run()
StringOut("\n\n");
}
/* We're done with all tests. Finish this run */
if(Configuration.DoSubmit())
WebService->Finish("wine");
/* Restore the original error mode */
if(!Configuration.IsInteractive())
SetErrorMode(ErrorMode);