mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 20:19:33 +02:00
* also delete temporary files if the test crashes
git-svn-id: trunk@21680 -
This commit is contained in:
parent
b70ed0a407
commit
d953783a7e
@ -70,53 +70,56 @@ begin
|
|||||||
UncompressedFile:=SysUtils.GetTempFileName(EmptyStr, 'UNC');
|
UncompressedFile:=SysUtils.GetTempFileName(EmptyStr, 'UNC');
|
||||||
CompressedFile:=SysUtils.GetTempFileName(EmptyStr, 'BZ2');
|
CompressedFile:=SysUtils.GetTempFileName(EmptyStr, 'BZ2');
|
||||||
|
|
||||||
// Set up test bz2 file
|
|
||||||
// create a resource stream which points to our resource
|
|
||||||
ExampleFileResourceStream := TResourceStream.Create(HInstance, 'ALL', 'RT_RCDATA');
|
|
||||||
try
|
try
|
||||||
ExampleFileStream := TFileStream.Create(CompressedFile, fmCreate);
|
// Set up test bz2 file
|
||||||
|
// create a resource stream which points to our resource
|
||||||
|
ExampleFileResourceStream := TResourceStream.Create(HInstance, 'ALL', 'RT_RCDATA');
|
||||||
try
|
try
|
||||||
ExampleFileStream.CopyFrom(ExampleFileResourceStream, ExampleFileResourceStream.Size);
|
ExampleFileStream := TFileStream.Create(CompressedFile, fmCreate);
|
||||||
|
try
|
||||||
|
ExampleFileStream.CopyFrom(ExampleFileResourceStream, ExampleFileResourceStream.Size);
|
||||||
|
finally
|
||||||
|
ExampleFileStream.Free;
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
ExampleFileStream.Free;
|
ExampleFileResourceStream.Free;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// Actual decompression
|
||||||
|
if decompress(CompressedFile, UncompressedFile) then
|
||||||
|
begin
|
||||||
|
// Now check if contents match.
|
||||||
|
UncompressedHash:=MD5Print(MD5File(UncompressedFile, MDDefBufSize));
|
||||||
|
if UncompressedHash=ExpectedHash then
|
||||||
|
begin
|
||||||
|
code:=0; //success
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
writeln('MD5 hash comparison between original file and uncompressed file failed');
|
||||||
|
writeln('Got hash:'+UncompressedHash);
|
||||||
|
writeln('Expected:'+ExpectedHash);
|
||||||
|
code:=2;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
writeln('bunzip2 decompression failure');
|
||||||
|
code:=1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
if code = 0 then
|
||||||
|
writeln('Basic bzip2 tests passed')
|
||||||
|
else
|
||||||
|
writeln('Basic bzip2 test failed: ', code);
|
||||||
finally
|
finally
|
||||||
ExampleFileResourceStream.Free;
|
try
|
||||||
|
if CompressedFile<>EmptyStr then DeleteFile(CompressedFile);
|
||||||
|
if UncompressedFile<>EmptyStr then DeleteFile(UncompressedFile);
|
||||||
|
finally
|
||||||
|
// Ignore errors; operating system should clean out temp files
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Actual decompression
|
|
||||||
if decompress(CompressedFile, UncompressedFile) then
|
|
||||||
begin
|
|
||||||
// Now check if contents match.
|
|
||||||
UncompressedHash:=MD5Print(MD5File(UncompressedFile, MDDefBufSize));
|
|
||||||
if UncompressedHash=ExpectedHash then
|
|
||||||
begin
|
|
||||||
code:=0; //success
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
writeln('MD5 hash comparison between original file and uncompressed file failed');
|
|
||||||
writeln('Got hash:'+UncompressedHash);
|
|
||||||
writeln('Expected:'+ExpectedHash);
|
|
||||||
code:=2;
|
|
||||||
end;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
writeln('bunzip2 decompression failure');
|
|
||||||
code:=1;
|
|
||||||
end;
|
|
||||||
|
|
||||||
try
|
|
||||||
if CompressedFile<>EmptyStr then DeleteFile(CompressedFile);
|
|
||||||
if UncompressedFile<>EmptyStr then DeleteFile(UncompressedFile);
|
|
||||||
finally
|
|
||||||
// Ignore errors; operating system should clean out temp files
|
|
||||||
end;
|
|
||||||
|
|
||||||
if code = 0 then
|
|
||||||
writeln('Basic bzip2 tests passed')
|
|
||||||
else
|
|
||||||
writeln('Basic bzip2 test failed: ', code);
|
|
||||||
Halt(code);
|
Halt(code);
|
||||||
end.
|
end.
|
||||||
|
Loading…
Reference in New Issue
Block a user