Do not fail test which compares two documents if the timestamp in the ZIP header field is different

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1886532 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Dominik Stadler 2021-02-15 15:23:49 +00:00
parent 7a8f21b989
commit 37d2d474dc
1 changed files with 20 additions and 2 deletions

View File

@ -39,6 +39,7 @@ import java.util.List;
import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.FileMagic;
import org.apache.poi.ss.ITestDataProvider;
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.FormulaParseException;
@ -1827,8 +1828,25 @@ public abstract class BaseTestBugzillaIssues {
out1.flush();
out2.flush();
assertArrayEquals(out1.toByteArray(), out2.toByteArray());
// to avoid flaky tests if the documents are written at slightly different timestamps
// we clear some bytes which contain timestamps
assertArrayEquals(
removeTimestamp(out1.toByteArray()),
removeTimestamp(out2.toByteArray()));
}
}
}
}
private byte[] removeTimestamp(byte[] bytes) {
if (FileMagic.valueOf(bytes) == FileMagic.OOXML) {
// This removes the timestamp in the header of the ZIP-Format
// see "Local file header" at https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
bytes[10] = 0;
bytes[11] = 0;
bytes[12] = 0;
bytes[13] = 0;
}
return bytes;
}
}