fixing TestRunner for Linux

This commit is contained in:
Бондарев Иван 2015-12-29 15:56:29 +01:00
parent a84d2cded2
commit e9d8219af1
3 changed files with 56 additions and 25 deletions

View file

@ -0,0 +1,30 @@
#!/bin/sh
MONO_IOMAP=case xbuild pabcnetc.sln
export MONO_IOMAP=all
cd ReleaseGenerators
mono ../bin/pabcnetc.exe RebuildStandartModules.pas /rebuild
if [ $? -eq 0 ]; then
cd PABCRtl
mono ../../bin/pabcnetc.exe PABCRtl.pas /rebuild
if [ $? -eq 0 ]; then
sn -Vr PABCRtl.dll
sn -R PABCRtl.dll KeyPair.snk
sn -Vu PABCRtl.dll
cp PABCRtl.dll ../../bin/Lib
mono ../../bin/pabcnetc.exe PABCRtl32.pas /rebuild
if [ $? -eq 0 ]; then
sn -Vr PABCRtl32.dll
sn -R PABCRtl32.dll KeyPair32.snk
sn -Vu PABCRtl32.dll
cp PABCRtl32.dll ../../bin/Lib
gacutil -u PABCRtl
gacutil -i ../bin/Lib/PABCRtl.dll
mono ../bin/pabcnetc.exe RebuildStandartModules.pas /rebuild
if [ $? -eq 0 ]; then
cd ../bin
mono TestRunner.exe
cd ..
fi
fi
fi
fi

Binary file not shown.

View file

@ -9,6 +9,7 @@
uses PascalABCCompiler, System.IO, System.Diagnostics;
var TestSuiteDir: string;
var PathSeparator: string := Path.DirectorySeparatorChar;
function GetTestSuiteDir: string;
begin
@ -20,7 +21,7 @@ end;
function GetLibDir: string;
begin
var dir := Path.GetDirectoryName(GetEXEFileName());
Result := dir+'\Lib';
Result := dir+PathSeparator+'Lib';
end;
procedure CompileErrorTests(withide: boolean);
@ -28,12 +29,12 @@ begin
var comp := new Compiler();
var files := Directory.GetFiles(TestSuiteDir+'\errors','*.pas');
var files := Directory.GetFiles(TestSuiteDir+PathSeparator+'errors','*.pas');
for var i := 0 to files.Length - 1 do
begin
var co: CompilerOptions := new CompilerOptions(files[i],CompilerOptions.OutputType.ConsoleApplicaton);
co.Debug := true;
co.OutputDirectory := TestSuiteDir+'\errors';
co.OutputDirectory := TestSuiteDir+PathSeparator+'errors';
co.UseDllForSystemUnits := false;
co.RunWithEnvironment := withide;
comp.ErrorsList.Clear();
@ -64,7 +65,7 @@ begin
begin
var co: CompilerOptions := new CompilerOptions(files[i],CompilerOptions.OutputType.ConsoleApplicaton);
co.Debug := true;
co.OutputDirectory := TestSuiteDir+'\exe';
co.OutputDirectory := TestSuiteDir+PathSeparator+'exe';
co.UseDllForSystemUnits := withdll;
co.RunWithEnvironment := false;
co.IgnoreRtlErrors := false;
@ -87,12 +88,12 @@ begin
var comp := new Compiler();
var files := Directory.GetFiles(TestSuiteDir+'\'+dir,'*.pas');
var files := Directory.GetFiles(TestSuiteDir+PathSeparator+dir,'*.pas');
for var i := 0 to files.Length - 1 do
begin
var co: CompilerOptions := new CompilerOptions(files[i],CompilerOptions.OutputType.ConsoleApplicaton);
co.Debug := true;
co.OutputDirectory := TestSuiteDir+'\'+dir;
co.OutputDirectory := TestSuiteDir+PathSeparator+dir;
co.UseDllForSystemUnits := withdll;
co.RunWithEnvironment := false;
co.IgnoreRtlErrors := false;
@ -112,8 +113,8 @@ end;
procedure CompileAllUnits;
begin
var comp := new Compiler();
var files := Directory.GetFiles(TestSuiteDir+'\units','*.pas');
var dir := TestSuiteDir+'\units\';
var files := Directory.GetFiles(TestSuiteDir+PathSeparator+'units','*.pas');
var dir := TestSuiteDir+PathSeparator+'units'+PathSeparator;
for var i := 0 to files.Length - 1 do
begin
var co: CompilerOptions := new CompilerOptions(files[i],CompilerOptions.OutputType.ConsoleApplicaton);
@ -138,12 +139,12 @@ begin
System.Environment.CurrentDirectory := Path.GetDirectoryName(GetEXEFileName());
var comp := new Compiler();
var files := Directory.GetFiles(TestSuiteDir+'\usesunits','*.pas');
var files := Directory.GetFiles(TestSuiteDir+PathSeparator+'usesunits','*.pas');
for var i := 0 to files.Length - 1 do
begin
var co: CompilerOptions := new CompilerOptions(files[i],CompilerOptions.OutputType.ConsoleApplicaton);
co.Debug := true;
co.OutputDirectory := TestSuiteDir+'\exe';
co.OutputDirectory := TestSuiteDir+PathSeparator+'exe';
co.UseDllForSystemUnits := false;
comp.ErrorsList.Clear();
comp.Warnings.Clear();
@ -160,24 +161,24 @@ end;
procedure CopyPCUFiles;
begin
System.Environment.CurrentDirectory := Path.GetDirectoryName(GetEXEFileName());
var files := Directory.GetFiles(TestSuiteDir+'\units','*.pcu');
var files := Directory.GetFiles(TestSuiteDir+PathSeparator+'units','*.pcu');
foreach fname: string in files do
begin
&File.Move(fname,TestSuiteDir+'\usesunits\'+Path.GetFileName(fname));
&File.Move(fname,TestSuiteDir+PathSeparator+'usesunits'+PathSeparator+Path.GetFileName(fname));
end;
end;
procedure RunAllTests(redirectIO: boolean);
begin
var files := Directory.GetFiles(TestSuiteDir+'\exe','*.exe');
var files := Directory.GetFiles(TestSuiteDir+PathSeparator+'exe','*.exe');
for var i := 0 to files.Length - 1 do
begin
var psi := new System.Diagnostics.ProcessStartInfo(files[i]);
psi.CreateNoWindow := true;
psi.UseShellExecute := false;
psi.WorkingDirectory := TestSuiteDir+'\exe';
psi.WorkingDirectory := TestSuiteDir+PathSeparator+'exe';
{psi.RedirectStandardInput := true;
psi.RedirectStandardOutput := true;
psi.RedirectStandardError := true;}
@ -207,10 +208,10 @@ end;
procedure RunFormatterTests;
begin
CodeCompletion.FormatterTester.Test();
var errors := &File.ReadAllText(TestSuiteDir+'\formatter_tests\output\log.txt');
var errors := &File.ReadAllText(TestSuiteDir+PathSeparator+'formatter_tests'+PathSeparator+'output'+PathSeparator+'log.txt');
if not string.IsNullOrEmpty(errors) then
begin
System.Windows.Forms.MessageBox.Show(errors+System.Environment.NewLine+'more info at TestSuite\formatter_tests\output\log.txt');
System.Windows.Forms.MessageBox.Show(errors+System.Environment.NewLine+'more info at TestSuite/formatter_tests/output/log.txt');
Halt;
end;
end;
@ -230,18 +231,18 @@ end;
procedure ClearExeDir;
begin
ClearDirByPattern(TestSuiteDir+'\exe','*.*');
ClearDirByPattern(TestSuiteDir+'\CompilationSamples','*.exe');
ClearDirByPattern(TestSuiteDir+'\CompilationSamples','*.pdb');
ClearDirByPattern(TestSuiteDir+'\CompilationSamples','*.pcu');
ClearDirByPattern(TestSuiteDir+'\pabcrtl_tests','*.exe');
ClearDirByPattern(TestSuiteDir+'\pabcrtl_tests','*.pdb');
ClearDirByPattern(TestSuiteDir+'\pabcrtl_tests','*.pcu');
ClearDirByPattern(TestSuiteDir+PathSeparator+'exe','*.*');
ClearDirByPattern(TestSuiteDir+PathSeparator+'CompilationSamples','*.exe');
ClearDirByPattern(TestSuiteDir+PathSeparator+'CompilationSamples','*.pdb');
ClearDirByPattern(TestSuiteDir+PathSeparator+'CompilationSamples','*.pcu');
ClearDirByPattern(TestSuiteDir+PathSeparator+'pabcrtl_tests','*.exe');
ClearDirByPattern(TestSuiteDir+PathSeparator+'pabcrtl_tests','*.pdb');
ClearDirByPattern(TestSuiteDir+PathSeparator+'pabcrtl_tests','*.pcu');
end;
procedure DeletePCUFiles;
begin
ClearDirByPattern(TestSuiteDir+'\usesunits','*.pcu');
ClearDirByPattern(TestSuiteDir+PathSeparator+'usesunits','*.pcu');
end;
procedure DeletePABCSystemPCU;
@ -255,7 +256,7 @@ begin
var files := Directory.GetFiles(GetLibDir(),'*.pas');
foreach f: string in files do
begin
&File.Copy(f, TestSuiteDir+'\CompilationSamples\'+Path.GetFileName(f), true);
&File.Copy(f, TestSuiteDir+PathSeparator+'CompilationSamples'+PathSeparator+Path.GetFileName(f), true);
end;
end;