* Update testsuite web interface

git-svn-id: trunk@14562 -
This commit is contained in:
pierre 2010-01-07 15:22:18 +00:00
parent e6648da567
commit d4e57bcfa9

View File

@ -10,9 +10,13 @@ uses cgiapp,sysutils,mysql50conn,sqldb,whtml,dbwhtml,db,
const const
TestsuiteURLPrefix='http://www.freepascal.org/testsuite/'; TestsuiteURLPrefix='http://www.freepascal.org/testsuite/';
TestsuiteCGIURL = TestsuiteURLPrefix+'cgi-bin/testsuite.cgi'; TestsuiteBin='testsuite.cgi';
ViewVCURL='http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/tests/'; ViewURL='http://svn.freepascal.org/cgi-bin/viewvc.cgi/';
ViewVCTrunkURL=ViewURL+'trunk/tests/';
ViewVCBranchURL=ViewURL+'%s/tests/';
ViewVCDataBaseURL=ViewURL+'trunk/packages/fcl-db/tests/';
var
TestsuiteCGIURL : string;
Type Type
TTestSuite = Class(TCgiApplication) TTestSuite = Class(TCgiApplication)
Private Private
@ -25,8 +29,10 @@ Type
FTestFileID, FTestFileID,
FTestFileName, FTestFileName,
FVersion, FVersion,
FVersionBranch,
FCPU, FCPU,
FOS : String; FOS : String;
FViewVCURL : String;
FDate : TDateTime; FDate : TDateTime;
FDebug, FDebug,
FNoSkipped, FNoSkipped,
@ -89,8 +95,38 @@ Const
DefPassword = ''; // fill this in, too. DefPassword = ''; // fill this in, too.
} }
Const Var
SDetailsURL = TestsuiteCGIURL + '?action=1&run1id=%s'; SDetailsURL : string;
type
known_versions = (
ver_unknown,
ver_1_0_10,
ver_2_4_0,
ver_2_4_1,
ver_2_5_1);
const
ver_trunk = high (known_versions);
const
ver_string : array[known_versions] of string =
(
'unknown',
'1.0.10',
'2.4.0',
'2.4.1',
'2.5.1'
);
ver_branch : array [known_versions] of string =
(
'',
'',
'tags/release_2_4_0',
'branches/fixes_2_4',
'trunk'
);
Procedure TTestSuite.DoRun; Procedure TTestSuite.DoRun;
@ -109,17 +145,20 @@ begin
{$ifdef TEST} {$ifdef TEST}
98 : 98 :
begin begin
EmitOverviewForm; ///EmitOverviewForm;
Writeln(stdout,'<PRE>'); system.Writeln(stdout,'<PRE>');
FreeMem(pointer($ffffffff)); system.Writeln(stdout,'paramstr(0) is ',paramstr(0));
Writeln(stdout,'</PRE>'); system.FreeMem(pointer($ffffffff));
system.Writeln(stdout,'</PRE>');
system.Flush(stdout);
end; end;
99 : 99 :
begin begin
EmitOverviewForm; EmitOverviewForm;
Writeln(stdout,'<PRE>'); system.Writeln(stdout,'<PRE>');
Dump_stack(stdout,get_frame); system.Dump_stack(stdout,get_frame);
Writeln(stdout,'</PRE>'); system.Writeln(stdout,'</PRE>');
system.Flush(stdout);
end; end;
{$endif TEST} {$endif TEST}
end; end;
@ -154,6 +193,7 @@ begin
FVersion:=RequestVariables['version']; FVersion:=RequestVariables['version'];
if Length(FVersion) = 0 then if Length(FVersion) = 0 then
FVersion:=RequestVariables['TESTVERSION']; FVersion:=RequestVariables['TESTVERSION'];
FOS:=RequestVariables['os']; FOS:=RequestVariables['os'];
if Length(FOS) = 0 then if Length(FOS) = 0 then
FOS:=RequestVariables['TESTOS']; FOS:=RequestVariables['TESTOS'];
@ -533,7 +573,7 @@ Function TTestSuite.ShowRunData : Boolean;
Const Const
SGetRunData = 'SELECT TU_ID,TU_DATE,TC_NAME,TO_NAME,' + SGetRunData = 'SELECT TU_ID,TU_DATE,TC_NAME,TO_NAME,' +
'TU_SUBMITTER,TU_MACHINE,TU_COMMENT,TV_VERSION '+ 'TU_SUBMITTER,TU_MACHINE,TU_COMMENT,TV_VERSION'+
' FROM TESTRUN,TESTCPU,TESTOS,TESTVERSION '+ ' FROM TESTRUN,TESTCPU,TESTOS,TESTVERSION '+
'WHERE '+ 'WHERE '+
' (TC_ID=TU_CPU_FK) AND '+ ' (TC_ID=TU_CPU_FK) AND '+
@ -787,11 +827,13 @@ Procedure TTestSuite.ShowOneTest;
Var Var
S : String; S : String;
Qry : String; Qry : String;
Category : string;
Q : TSQLQuery; Q : TSQLQuery;
i : longint; i : longint;
FieldName,FieldValue, FieldName,FieldValue,
Log,Source : String; Log,Source : String;
Res : Boolean; Res : Boolean;
ver : known_versions;
begin begin
ConnectToDB; ConnectToDB;
ContentType:='text/html'; ContentType:='text/html';
@ -924,6 +966,8 @@ begin
//If FDebug then //If FDebug then
if FRunId<>'' then if FRunId<>'' then
begin begin
Category:=getsingleton('select TU_CATEGORY_FK from TESTRUN where TU_ID='+FRunId);
FVersionBranch:=GetVersionName(getsingleton('select TU_VERSION_FK from TESTRUN where TU_ID='+fRunId));
log:=''; log:='';
Try Try
log:=getsingleton('select TR_LOG from TESTRESULTS where (TR_TEST_FK='+ftestfileid log:=getsingleton('select TR_LOG from TESTRESULTS where (TR_TEST_FK='+ftestfileid
@ -988,12 +1032,31 @@ begin
PreformatEnd; PreformatEnd;
end; end;
Finally Finally
FViewVCURL:=ViewVCTrunkURL;
if FVersionBranch<>'' then
begin
// Test all but last version, which is assumed to be trunk
for ver:=low(known_versions) to pred(high(known_versions)) do
if ver_string[ver]=FVersionBranch then
begin
FViewVCURL:=Format(ViewVCBranchURL,[ver_branch[ver]]);
break;
end;
end;
if Category<>'1' then
begin
FViewVCURL:=ViewVCDatabaseURL;
// This assumes that type TAnyType is
// defined in anytype.pas source PM
if pos('/',FTestFileName)>0 then
FTestfilename:=lowercase(copy(FTestFilename,2,pos('/',FTestFilename)-2)+'.pas');
end;
if Source='' then if Source='' then
begin begin
HeaderStart(3); HeaderStart(3);
DumpLn('<P>No Source in TestSuite DataBase.</P>'); DumpLn('<P>No Source in TestSuite DataBase.</P>');
DumpLn('Link to SVN view of '+ DumpLn('Link to SVN view of '+
'<A HREF="'+ViewVCURL+FTestFileName+'?view=markup'+ '<A HREF="'+FViewVCURL+FTestFileName+'?view=markup'+
'" TARGET="_blank"> '+FTestFileName+'</A> source. '); '" TARGET="_blank"> '+FTestFileName+'</A> source. ');
HeaderEnd(3); HeaderEnd(3);
end end
@ -1001,7 +1064,7 @@ begin
begin begin
HeaderStart(3); HeaderStart(3);
DumpLn('Link to SVN view of '+ DumpLn('Link to SVN view of '+
'<A HREF="'+ViewVCURL+FTestFileName+'?view=markup'+ '<A HREF="'+FViewVCURL+FTestFileName+'?view=markup'+
'" TARGET="_blank"> '+FTestFileName+'</A> source. '); '" TARGET="_blank"> '+FTestFileName+'</A> source. ');
HeaderEnd(3); HeaderEnd(3);
end; end;
@ -1393,5 +1456,11 @@ begin
// Writeln('All done'); // Writeln('All done');
end; end;
begin
if paramstr(0)<>'' then
TestsuiteCGIURL:=TestsuiteURLPrefix+'cgi-bin/'+extractfilename(paramstr(0))
else
TestsuiteCGIURL:=TestsuiteURLPrefix+'cgi-bin/'+TestsuiteBin;
SDetailsURL := TestsuiteCGIURL + '?action=1&run1id=%s';
end. end.