mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 14:49:16 +02:00
* Add Category and svn information
git-svn-id: trunk@19077 -
This commit is contained in:
parent
44bd4470f9
commit
ea6138cffa
@ -51,6 +51,7 @@ Type
|
|||||||
FMachine,
|
FMachine,
|
||||||
FComment,
|
FComment,
|
||||||
FCPU,
|
FCPU,
|
||||||
|
FCategory,
|
||||||
FOS : String;
|
FOS : String;
|
||||||
FViewVCURL : String;
|
FViewVCURL : String;
|
||||||
FDate : TDateTime;
|
FDate : TDateTime;
|
||||||
@ -89,6 +90,7 @@ Type
|
|||||||
Function GetOSName(ID : String) : String;
|
Function GetOSName(ID : String) : String;
|
||||||
Function GetCPUName(ID : String) : String;
|
Function GetCPUName(ID : String) : String;
|
||||||
Function GetVersionName(ID : String) : String;
|
Function GetVersionName(ID : String) : String;
|
||||||
|
Function GetCategoryName(ID : String) : String;
|
||||||
Function GetTestFileName(ID : String) : String;
|
Function GetTestFileName(ID : String) : String;
|
||||||
Function GetFailCount(RunID : longint) : string;
|
Function GetFailCount(RunID : longint) : string;
|
||||||
Function InitCGIVars : Integer;
|
Function InitCGIVars : Integer;
|
||||||
@ -311,6 +313,9 @@ begin
|
|||||||
FCPU:=RequestVariables['cpu'];
|
FCPU:=RequestVariables['cpu'];
|
||||||
if Length(FCPU) = 0 then
|
if Length(FCPU) = 0 then
|
||||||
FCPU:=RequestVariables['TESTCPU'];
|
FCPU:=RequestVariables['TESTCPU'];
|
||||||
|
FCategory:=RequestVariables['category'];
|
||||||
|
if Length(FCategory) = 0 then
|
||||||
|
FCategory:=RequestVariables['TESTCATEGORY'];
|
||||||
FCond:=RequestVariables['cond'];
|
FCond:=RequestVariables['cond'];
|
||||||
if Length(FCond) = 0 then
|
if Length(FCond) = 0 then
|
||||||
FCond:=RequestVariables['TESTCOND'];
|
FCond:=RequestVariables['TESTCOND'];
|
||||||
@ -547,6 +552,12 @@ begin
|
|||||||
EmitInput('cond',FCond);
|
EmitInput('cond',FCond);
|
||||||
CellEnd;
|
CellEnd;
|
||||||
end;
|
end;
|
||||||
|
RowNext;
|
||||||
|
CellStart;
|
||||||
|
Write('Category');
|
||||||
|
CellNext;
|
||||||
|
ComboBoxFromQuery('Category','SELECT TCAT_ID,TCAT_NAME FROM TESTCATEGORY ORDER BY TCAT_NAME',FCategory);
|
||||||
|
CellEnd;
|
||||||
RowNext;
|
RowNext;
|
||||||
CellStart;
|
CellStart;
|
||||||
Write('Only failed tests');
|
Write('Only failed tests');
|
||||||
@ -673,6 +684,12 @@ begin
|
|||||||
else
|
else
|
||||||
EmitInput('cond',FCond);
|
EmitInput('cond',FCond);
|
||||||
CellEnd;
|
CellEnd;
|
||||||
|
RowNext;
|
||||||
|
CellStart;
|
||||||
|
Write('Category');
|
||||||
|
CellNext;
|
||||||
|
ComboBoxFromQuery('Category','SELECT TCAT_ID,TCAT_NAME FROM TESTCATEGORY ORDER BY TCAT_NAME',FCategory);
|
||||||
|
CellEnd;
|
||||||
RowNext;
|
RowNext;
|
||||||
CellStart;
|
CellStart;
|
||||||
Write('Only failed tests');
|
Write('Only failed tests');
|
||||||
@ -781,12 +798,13 @@ Const
|
|||||||
'(TU_FAILEDTOCOMPILE+TU_FAILEDTORUN+TU_FAILEDTOFAIL) as Failed,'+
|
'(TU_FAILEDTOCOMPILE+TU_FAILEDTORUN+TU_FAILEDTOFAIL) as Failed,'+
|
||||||
'(TU_SUCCESSFULLYFAILED+TU_SUCCESFULLYCOMPILED+TU_SUCCESSFULLYRUN+'+
|
'(TU_SUCCESSFULLYFAILED+TU_SUCCESFULLYCOMPILED+TU_SUCCESSFULLYRUN+'+
|
||||||
'TU_FAILEDTOCOMPILE+TU_FAILEDTORUN+TU_FAILEDTOFAIL) as Total,'+
|
'TU_FAILEDTOCOMPILE+TU_FAILEDTORUN+TU_FAILEDTOFAIL) as Total,'+
|
||||||
'TU_SUBMITTER as Submitter, TU_MACHINE as Machine, TU_COMMENT as Comment '+
|
'TU_SUBMITTER as Submitter, TU_MACHINE as Machine, TU_COMMENT as Comment %s '+
|
||||||
'FROM TESTRESULTS,TESTRUN,TESTCPU,TESTOS,TESTVERSION '+
|
'FROM TESTRESULTS,TESTRUN,TESTCPU,TESTOS,TESTVERSION,TESTCATEGORY '+
|
||||||
'WHERE '+
|
'WHERE '+
|
||||||
'(TC_ID=TU_CPU_FK) AND '+
|
'(TC_ID=TU_CPU_FK) AND '+
|
||||||
'(TO_ID=TU_OS_FK) AND '+
|
'(TO_ID=TU_OS_FK) AND '+
|
||||||
'(TV_ID=TU_VERSION_FK) AND '+
|
'(TV_ID=TU_VERSION_FK) AND '+
|
||||||
|
'(TCAT_ID=TU_CATEGORY_FK) AND '+
|
||||||
'(TR_TESTRUN_FK=TU_ID) '+
|
'(TR_TESTRUN_FK=TU_ID) '+
|
||||||
'%s '+
|
'%s '+
|
||||||
'GROUP BY TU_ID '+
|
'GROUP BY TU_ID '+
|
||||||
@ -794,13 +812,15 @@ Const
|
|||||||
|
|
||||||
|
|
||||||
Var
|
Var
|
||||||
S,A,Qry : String;
|
SC,S,A,Qry : String;
|
||||||
Q : TSQLQuery;
|
Q : TSQLQuery;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
S:='';
|
S:='';
|
||||||
If (FCPU<>'') and (GetCPUName(FCPU)<>'All') then
|
If (FCPU<>'') and (GetCPUName(FCPU)<>'All') then
|
||||||
S:=S+' AND (TU_CPU_FK='+FCPU+')';
|
S:=S+' AND (TU_CPU_FK='+FCPU+')';
|
||||||
|
If (FCategory<>'') and (GetCategoryName(FCategory)<>'All') then
|
||||||
|
S:=S+' AND (TU_CATEGORY_FK='+FCategory+')';
|
||||||
If (FVersion<>'') and (GetVersionName(FVersion)<>'All') then
|
If (FVersion<>'') and (GetVersionName(FVersion)<>'All') then
|
||||||
S:=S+' AND (TU_VERSION_FK='+FVERSION+')';
|
S:=S+' AND (TU_VERSION_FK='+FVERSION+')';
|
||||||
if (FOS<>'') and (GetOSName(FOS)<>'All') then
|
if (FOS<>'') and (GetOSName(FOS)<>'All') then
|
||||||
@ -817,12 +837,20 @@ begin
|
|||||||
S:=S+' AND ('+FCond+')';
|
S:=S+' AND ('+FCond+')';
|
||||||
If FOnlyFailed then
|
If FOnlyFailed then
|
||||||
S:=S+' AND (TR_OK="-")';
|
S:=S+' AND (TR_OK="-")';
|
||||||
|
If GetCategoryName(FCategory)<>'DB' then
|
||||||
|
SC:=', CONCAT(TU_SVNCOMPILERREVISION,"/",TU_SVNRTLREVISION,"/", '+
|
||||||
|
'TU_SVNPACKAGESREVISION,"/",TU_SVNTESTSREVISION) as svnrev'
|
||||||
|
else
|
||||||
|
SC:='';
|
||||||
|
If GetCategoryName(FCategory)='All' then
|
||||||
|
SC:=SC+', TCAT_NAME as Cat';
|
||||||
|
|
||||||
A:=SDetailsURL;
|
A:=SDetailsURL;
|
||||||
If FOnlyFailed then
|
If FOnlyFailed then
|
||||||
A:=A+'&failedonly=1';
|
A:=A+'&failedonly=1';
|
||||||
If FNoSkipped then
|
If FNoSkipped then
|
||||||
A:=A+'&noskipped=1';
|
A:=A+'&noskipped=1';
|
||||||
Qry:=Format(SOverview,[S,FLimit]);
|
Qry:=Format(SOverview,[SC,S,FLimit]);
|
||||||
If FDebug then
|
If FDebug then
|
||||||
Writeln('Query : '+Qry);
|
Writeln('Query : '+Qry);
|
||||||
Q:=CreateDataset(Qry);
|
Q:=CreateDataset(Qry);
|
||||||
@ -885,17 +913,26 @@ begin
|
|||||||
Result:=GetSingleton('SELECT TV_VERSION FROM TESTVERSION WHERE TV_ID='+ID);
|
Result:=GetSingleton('SELECT TV_VERSION FROM TESTVERSION WHERE TV_ID='+ID);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Function TTestSuite.GetCategoryName(ID : String) : String;
|
||||||
|
|
||||||
|
begin
|
||||||
|
if (ID<>'') then
|
||||||
|
Result:=GetSingleton('SELECT TCAT_NAME FROM TESTCATEGORY WHERE TCAT_ID='+ID);
|
||||||
|
end;
|
||||||
|
|
||||||
Function TTestSuite.ShowRunData : Boolean;
|
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,'+
|
||||||
|
'TU_CATEGORY_FK,TU_SVNCOMPILERREVISION,TU_SVNRTLREVISION,'+
|
||||||
|
'TU_SVNPACKAGESREVISION,TU_SVNTESTSREVISION,'+
|
||||||
'(TU_SUCCESSFULLYFAILED+TU_SUCCESFULLYCOMPILED+TU_SUCCESSFULLYRUN) AS OK,'+
|
'(TU_SUCCESSFULLYFAILED+TU_SUCCESFULLYCOMPILED+TU_SUCCESSFULLYRUN) AS OK,'+
|
||||||
'(TU_FAILEDTOCOMPILE+TU_FAILEDTORUN+TU_FAILEDTOFAIL) as Failed,'+
|
'(TU_FAILEDTOCOMPILE+TU_FAILEDTORUN+TU_FAILEDTOFAIL) as Failed,'+
|
||||||
'(TU_SUCCESSFULLYFAILED+TU_SUCCESFULLYCOMPILED+TU_SUCCESSFULLYRUN+'+
|
'(TU_SUCCESSFULLYFAILED+TU_SUCCESFULLYCOMPILED+TU_SUCCESSFULLYRUN+'+
|
||||||
'TU_FAILEDTOCOMPILE+TU_FAILEDTORUN+TU_FAILEDTOFAIL) as Total'+
|
'TU_FAILEDTOCOMPILE+TU_FAILEDTORUN+TU_FAILEDTOFAIL) as Total'+
|
||||||
|
|
||||||
' FROM TESTRUN,TESTCPU,TESTOS,TESTVERSION '+
|
' %s FROM TESTRUN,TESTCPU,TESTOS,TESTVERSION '+
|
||||||
'WHERE '+
|
'WHERE '+
|
||||||
' (TC_ID=TU_CPU_FK) AND '+
|
' (TC_ID=TU_CPU_FK) AND '+
|
||||||
' (TO_ID=TU_OS_FK) AND '+
|
' (TO_ID=TU_OS_FK) AND '+
|
||||||
@ -906,14 +943,23 @@ Const
|
|||||||
Var
|
Var
|
||||||
Q1,Q2 : TSQLQuery;
|
Q1,Q2 : TSQLQuery;
|
||||||
F : TField;
|
F : TField;
|
||||||
|
SC : string;
|
||||||
Date1, Date2: TDateTime;
|
Date1, Date2: TDateTime;
|
||||||
begin
|
begin
|
||||||
Result:=(FRunID<>'');
|
Result:=(FRunID<>'');
|
||||||
If Result then
|
If Result then
|
||||||
begin
|
begin
|
||||||
Q1:=CreateDataset(Format(SGetRunData,[FRunID]));
|
If GetCategoryName(FCategory)<>'DB' then
|
||||||
|
SC:=', CONCAT(TU_SVNCOMPILERREVISION,"/",TU_SVNRTLREVISION,"/", '+
|
||||||
|
'TU_SVNPACKAGESREVISION,"/",TU_SVNTESTSREVISION) as svnrev'
|
||||||
|
else
|
||||||
|
SC:='';
|
||||||
|
If GetCategoryName(FCategory)='All' then
|
||||||
|
SC:=SC+', TCAT_NAME as Cat';
|
||||||
|
|
||||||
|
Q1:=CreateDataset(Format(SGetRunData,[SC,FRunID]));
|
||||||
if Length(FCompareRunID) > 0 then
|
if Length(FCompareRunID) > 0 then
|
||||||
Q2:=CreateDataset(Format(SGetRunData,[FCompareRunID]))
|
Q2:=CreateDataset(Format(SGetRunData,[SC,FCompareRunID]))
|
||||||
else
|
else
|
||||||
Q2:=nil;
|
Q2:=nil;
|
||||||
Try
|
Try
|
||||||
@ -996,7 +1042,31 @@ begin
|
|||||||
if Q2 <> nil then
|
if Q2 <> nil then
|
||||||
Write(Q2.FieldByName('TU_MACHINE').AsString);
|
Write(Q2.FieldByName('TU_MACHINE').AsString);
|
||||||
CellEnd;
|
CellEnd;
|
||||||
RowNext;
|
if GetCategoryName(FCategory)<>'All' then
|
||||||
|
begin
|
||||||
|
RowNext;
|
||||||
|
CellStart;
|
||||||
|
Write('Category:');
|
||||||
|
CellNext;
|
||||||
|
Write(GetCategoryName(Q1.FieldByName('TU_CATEGORY_FK').AsString));
|
||||||
|
CellNext;
|
||||||
|
if Q2 <> nil then
|
||||||
|
Write(GetCategoryName(Q2.FieldByName('TU_CATEGORY_FK').AsString));
|
||||||
|
CellEnd;
|
||||||
|
end;
|
||||||
|
If GetCategoryName(FCategory)<>'DB' then
|
||||||
|
begin
|
||||||
|
RowNext;
|
||||||
|
CellStart;
|
||||||
|
Write('SVN Revisions:');
|
||||||
|
CellNext;
|
||||||
|
Write(Q1.FieldByName('svnrev').AsString);
|
||||||
|
CellNext;
|
||||||
|
if Q2 <> nil then
|
||||||
|
Write(Q2.FieldByName('svnrev').AsString);
|
||||||
|
CellEnd;
|
||||||
|
end;
|
||||||
|
RowNext;
|
||||||
CellStart;
|
CellStart;
|
||||||
Write('Submitter:');
|
Write('Submitter:');
|
||||||
CellNext;
|
CellNext;
|
||||||
@ -1175,7 +1245,7 @@ Var
|
|||||||
Q : TSQLQuery;
|
Q : TSQLQuery;
|
||||||
i : longint;
|
i : longint;
|
||||||
FieldName,FieldValue,
|
FieldName,FieldValue,
|
||||||
Log,Source : String;
|
LLog,Source : String;
|
||||||
Res : Boolean;
|
Res : Boolean;
|
||||||
ver : known_versions;
|
ver : known_versions;
|
||||||
begin
|
begin
|
||||||
@ -1328,22 +1398,22 @@ begin
|
|||||||
begin
|
begin
|
||||||
Category:=getsingleton('select TU_CATEGORY_FK from TESTRUN where TU_ID='+FRunId);
|
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));
|
FVersionBranch:=GetVersionName(getsingleton('select TU_VERSION_FK from TESTRUN where TU_ID='+fRunId));
|
||||||
log:='';
|
LLog:='';
|
||||||
Try
|
Try
|
||||||
log:=getsingleton('select TR_LOG from TESTRESULTS where (TR_TEST_FK='+ftestfileid
|
LLog:=getsingleton('select TR_LOG from TESTRESULTS where (TR_TEST_FK='+ftestfileid
|
||||||
+') and (TR_TESTRUN_FK='+frunid+')');
|
+') and (TR_TESTRUN_FK='+frunid+')');
|
||||||
if Log<>'' then
|
if LLog<>'' then
|
||||||
begin
|
begin
|
||||||
HeaderStart(2);
|
HeaderStart(2);
|
||||||
Write('Log of '+FRunId+':');
|
Write('Log of '+FRunId+':');
|
||||||
HeaderEnd(2);
|
HeaderEnd(2);
|
||||||
PreformatStart;
|
PreformatStart;
|
||||||
system.Write(Log);
|
system.Write(LLog);
|
||||||
system.flush(output);
|
system.flush(output);
|
||||||
PreformatEnd;
|
PreformatEnd;
|
||||||
end;
|
end;
|
||||||
Finally
|
Finally
|
||||||
if Log='' then
|
if LLog='' then
|
||||||
begin
|
begin
|
||||||
HeaderStart(2);
|
HeaderStart(2);
|
||||||
Write('No log of '+FRunId+'.');
|
Write('No log of '+FRunId+'.');
|
||||||
@ -1353,22 +1423,22 @@ begin
|
|||||||
end;
|
end;
|
||||||
if FCompareRunId<>'' then
|
if FCompareRunId<>'' then
|
||||||
begin
|
begin
|
||||||
log:='';
|
LLog:='';
|
||||||
Try
|
Try
|
||||||
log:=getsingleton('select TR_LOG from TESTRESULTS where (TR_TEST_FK='+ftestfileid
|
LLog:=getsingleton('select TR_LOG from TESTRESULTS where (TR_TEST_FK='+ftestfileid
|
||||||
+') and (TR_TESTRUN_FK='+fcomparerunid+')');
|
+') and (TR_TESTRUN_FK='+fcomparerunid+')');
|
||||||
if Log<>'' then
|
if LLog<>'' then
|
||||||
begin
|
begin
|
||||||
HeaderStart(2);
|
HeaderStart(2);
|
||||||
Write('Log of '+FCompareRunId+':');
|
Write('Log of '+FCompareRunId+':');
|
||||||
HeaderEnd(2);
|
HeaderEnd(2);
|
||||||
PreformatStart;
|
PreformatStart;
|
||||||
system.Write(Log);
|
system.Write(LLog);
|
||||||
system.flush(output);
|
system.flush(output);
|
||||||
PreformatEnd;
|
PreformatEnd;
|
||||||
end;
|
end;
|
||||||
Finally
|
Finally
|
||||||
if Log='' then
|
if LLog='' then
|
||||||
begin
|
begin
|
||||||
HeaderStart(2);
|
HeaderStart(2);
|
||||||
Write('No log of '+FCompareRunId+'.');
|
Write('No log of '+FCompareRunId+'.');
|
||||||
@ -1478,7 +1548,7 @@ Var
|
|||||||
cpu_first_date_id, cpu_last_date_id,
|
cpu_first_date_id, cpu_last_date_id,
|
||||||
version_first_date_id, version_last_date_id : PStatusLA;
|
version_first_date_id, version_last_date_id : PStatusLA;
|
||||||
FieldName,FieldValue,
|
FieldName,FieldValue,
|
||||||
Log,Source : String;
|
LLog,Source : String;
|
||||||
Res : Boolean;
|
Res : Boolean;
|
||||||
ver : known_versions;
|
ver : known_versions;
|
||||||
begin
|
begin
|
||||||
@ -2015,22 +2085,22 @@ begin
|
|||||||
begin
|
begin
|
||||||
Category:=getsingleton('select TU_CATEGORY_FK from TESTRUN where TU_ID='+FRunId);
|
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));
|
FVersionBranch:=GetVersionName(getsingleton('select TU_VERSION_FK from TESTRUN where TU_ID='+fRunId));
|
||||||
log:='';
|
LLog:='';
|
||||||
Try
|
Try
|
||||||
log:=getsingleton('select TR_LOG from TESTRESULTS where (TR_TEST_FK='+ftestfileid
|
LLog:=getsingleton('select TR_LOG from TESTRESULTS where (TR_TEST_FK='+ftestfileid
|
||||||
+') and (TR_TESTRUN_FK='+frunid+')');
|
+') and (TR_TESTRUN_FK='+frunid+')');
|
||||||
if Log<>'' then
|
if LLog<>'' then
|
||||||
begin
|
begin
|
||||||
HeaderStart(2);
|
HeaderStart(2);
|
||||||
Write('Log of '+FRunId+':');
|
Write('LLog of '+FRunId+':');
|
||||||
HeaderEnd(2);
|
HeaderEnd(2);
|
||||||
PreformatStart;
|
PreformatStart;
|
||||||
system.Write(Log);
|
system.Write(LLog);
|
||||||
system.flush(output);
|
system.flush(output);
|
||||||
PreformatEnd;
|
PreformatEnd;
|
||||||
end;
|
end;
|
||||||
Finally
|
Finally
|
||||||
if Log='' then
|
if LLog='' then
|
||||||
begin
|
begin
|
||||||
HeaderStart(2);
|
HeaderStart(2);
|
||||||
Write('No log of '+FRunId+'.');
|
Write('No log of '+FRunId+'.');
|
||||||
@ -2040,22 +2110,22 @@ begin
|
|||||||
end;
|
end;
|
||||||
if FCompareRunId<>'' then
|
if FCompareRunId<>'' then
|
||||||
begin
|
begin
|
||||||
log:='';
|
LLog:='';
|
||||||
Try
|
Try
|
||||||
log:=getsingleton('select TR_LOG from TESTRESULTS where (TR_TEST_FK='+ftestfileid
|
LLog:=getsingleton('select TR_LOG from TESTRESULTS where (TR_TEST_FK='+ftestfileid
|
||||||
+') and (TR_TESTRUN_FK='+fcomparerunid+')');
|
+') and (TR_TESTRUN_FK='+fcomparerunid+')');
|
||||||
if Log<>'' then
|
if LLog<>'' then
|
||||||
begin
|
begin
|
||||||
HeaderStart(2);
|
HeaderStart(2);
|
||||||
Write('Log of '+FCompareRunId+':');
|
Write('Log of '+FCompareRunId+':');
|
||||||
HeaderEnd(2);
|
HeaderEnd(2);
|
||||||
PreformatStart;
|
PreformatStart;
|
||||||
system.Write(Log);
|
system.Write(LLog);
|
||||||
system.flush(output);
|
system.flush(output);
|
||||||
PreformatEnd;
|
PreformatEnd;
|
||||||
end;
|
end;
|
||||||
Finally
|
Finally
|
||||||
if Log='' then
|
if LLog='' then
|
||||||
begin
|
begin
|
||||||
HeaderStart(2);
|
HeaderStart(2);
|
||||||
Write('No log of '+FCompareRunId+'.');
|
Write('No log of '+FCompareRunId+'.');
|
||||||
@ -2064,7 +2134,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if FDebug then
|
if FDebug then
|
||||||
Write('After Log.');
|
Write('After log.');
|
||||||
Source:='';
|
Source:='';
|
||||||
Try
|
Try
|
||||||
Source:=getsingleton('select T_SOURCE from TESTS where T_ID='+ftestfileid);
|
Source:=getsingleton('select T_SOURCE from TESTS where T_ID='+ftestfileid);
|
||||||
|
Loading…
Reference in New Issue
Block a user