anchor.diff:    try
       Stream2 := TFileStream.Create(AFileName2, fmOpenRead or fmShareDenyWrite);
       try
  -      CheckStreamMatch(Stream1, Stream2, Msg);
  +      CheckStreamMatch(Stream1, Stream2, aMsg);
       finally
         Stream2.Free;
       end;
  
positive.code: end;
  
  procedure TAbTestCase.CheckFileMatchesStream(const aFileName : string;
    aStream : TStream; Msg : string);
  var
    FileStream : TStream;
  begin
    FileStream := TFileStream.Create(aFileName, fmOpenRead or fmShareDenyWrite);
    try
      CheckStreammatch(FileStream, aStream, Msg);
    finally
      FileStream.Free;
    end;
  
negative.code: 
  
  procedure TAbTestCase.CheckStreamMatch(aStream1, aStream2 : TStream;
    const aMsg: string = '');
  var
    I, BytesRead, BufSize : Integer;
    Buf1, Buf2 : array of Byte;
  begin
    CheckEquals(aStream1.Size, aStream2.Size, aMsg);
    if aStream1.Size = 0 then
      Exit;
    aStream1.Seek(0, soFromBeginning);
    aStream2.Seek(0, soFromBeginning);
    BufSize := Min(aStream1.Size, 32768);
    SetLength(Buf1, BufSize);
    SetLength(Buf2, BufSize);
    while True do begin
      BytesRead := aStream1.Read(Buf1[0], BufSize);
      Check(BytesRead = aStream2.Read(Buf2[0], BufSize), 'Bytes read mismatch');
      if BytesRead = 0 then
        Exit;
      if not CompareMem(Pointer(Buf1), Pointer(Buf2), BytesRead) then
        for i := 0 to BytesRead - 1 do
          if Buf1[i] <> Buf2[i] then
            FailEquals(IntToHex(Buf1[i], 2), IntToHex(Buf2[i], 2), 'Bytes do not match: ' + aMsg);
    end;
  end;
  
  procedure TAbTestCase.CreateDummyFile(aFileName : string; aSize : Integer);
  