Funktionen zur Corpus-Minimierung
function HPDFMinimizeCorpusCase(const Input: TBytes;
const Predicate: THPDFFailurePredicate; MaximumAttempts: Integer;
out AInfo: THPDFCorpusMinimizationInfo): TBytes;Der Reduzierer entfernt zunächst vollständige Bereiche indirekter Objekte und wendet dann schrittweise kleinere Reduktionen von Bytebereichen an
Ein Kandidat wird nur akzeptiert, wenn das Prädikat weiterhin die ursprüngliche Fehlersignatur meldet
AInfo meldet Versuche, akzeptierte Reduktionen, entfernte Objektbereiche und Bytebereiche, ursprüngliche und endgültige Größe sowie die bewahrte Signatur
Fortlaufende Korpus-Speicherung
function HPDFDefaultCorpusStoreOptions: THPDFCorpusStoreOptions;
function HPDFMinimizeAndStoreCorpusCase(const Input: TBytes;
const Predicate: THPDFFailurePredicate;
const CorpusDirectory: string;
const Options: THPDFCorpusStoreOptions;
out AInfo: THPDFCorpusCaseInfo): Boolean;
function HPDFCorpusCaseInfoToJSON(
const AInfo: THPDFCorpusCaseInfo): AnsiString;function HPDFDefaultCorpusStoreOptions: THPDFCorpusStoreOptions;
function HPDFMinimizeAndStoreCorpusCase(const Input: TBytes;
const Predicate: THPDFFailurePredicate;
const CorpusDirectory: string;
const Options: THPDFCorpusStoreOptions;
out AInfo: THPDFCorpusMinimizationInfo): string;Die Speicherung verwendet atomare Veröffentlichung und stabile Signaturen, damit identische Fehlerfälle in der Regression und bei der Triage wiederverwendet werden können
Ein prozessübergreifendes Lock serialisiert die Entscheidungen für ein Korpusverzeichnis, während Write-Through-Temporärdateien und atomarer Austausch verhindern, dass Leser partielle PDF- oder Metadatendateien zu sehen bekommen
THPDFCorpusStoreOptions begrenzt Minimierungsversuche, eingehende Bytes, gespeicherte Bytes und Lock-Wiederholungen, und THPDFCorpusCaseInfo.Action meldet, ob der Fall hinzugefügt, ersetzt oder behalten wurde
Das Sidecar-Schema hotpdf.corpus.case.v1 hält Fall-ID, exakte Fehlersignatur, Inhalts-SHA-256 und gespeicherte Byteanzahl in stabiler Feldreihenfolge fest
HPDFCompareRegressionResultsDeterministic vergleicht wiederholte engineübergreifende Signaturen über die Domänen Parse, Render, Text und Save und weist instabile oder fehlgeschlagene Läufe zurück