Browse Source

* also delete temporary files if the test crashes

git-svn-id: trunk@21680 -
Jonas Maebe 13 years ago
parent
commit
d953783a7e
1 changed files with 44 additions and 41 deletions
  1. 44 41
      tests/test/packages/bzip2/tbzip2streamtest.pp

+ 44 - 41
tests/test/packages/bzip2/tbzip2streamtest.pp

@@ -70,53 +70,56 @@ begin
   UncompressedFile:=SysUtils.GetTempFileName(EmptyStr, 'UNC');
   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
-    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
-      ExampleFileStream.CopyFrom(ExampleFileResourceStream, ExampleFileResourceStream.Size);
+      ExampleFileStream := TFileStream.Create(CompressedFile, fmCreate);
+      try
+        ExampleFileStream.CopyFrom(ExampleFileResourceStream, ExampleFileResourceStream.Size);
+      finally
+        ExampleFileStream.Free;
+      end;
     finally
-      ExampleFileStream.Free;
+      ExampleFileResourceStream.Free;
     end;
-  finally
-    ExampleFileResourceStream.Free;
-  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;
+    // 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);
+    if code = 0 then
+      writeln('Basic bzip2 tests passed')
+    else
+      writeln('Basic bzip2 test failed: ', code);
+  finally
+    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;
   Halt(code);
 end.