Funkcje minimalizacji korpusu
function HPDFMinimizeCorpusCase(const Input: TBytes;
const Predicate: THPDFFailurePredicate; MaximumAttempts: Integer;
out AInfo: THPDFCorpusMinimizationInfo): TBytes;
Reducer najpierw usuwa kompletne zakresy obiektów pośrednich, a potem stosuje coraz mniejsze redukcje zakresów bajtów
Kandydat jest akceptowany tylko wtedy, gdy predykat dalej raportuje oryginalną sygnaturę awarii
AInfo raportuje próby, zaakceptowane redukcje, usunięte zakresy obiektów, usunięte zakresy bajtów, rozmiary początkowy i końcowy oraz zachowaną sygnaturę
Ciągły magazyn korpusu
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;
type
THPDFCorpusStoreAction = (csaAdded, csaReplaced, csaKeptExisting);
THPDFCorpusStoreOptions = record
MaximumAttempts: Integer;
MaximumInputBytes: Int64;
MaximumStoredBytes: Int64;
LockRetryCount: Integer;
end;
Magazyn wyprowadza stabilne ID przypadku ze skrótu SHA-256 sygnatury awarii, rewaliduje każdy istniejący przypadek, minimalizuje zarówno istniejącego, jak i nadchodzącego kandydata i zachowuje najmniejszy wynik
Blokada międzyprocesowa szereguje decyzje dla jednego katalogu korpusu, a zapis przez pliki tymczasowe i atomowa podmiana uniemożliwiają czytnikom obserwację częściowych plików PDF lub metadanych
THPDFCorpusStoreOptions ogranicza próby minimalizacji, bajty nadchodzące, bajty przechowywane i ponowienia blokady, a THPDFCorpusCaseInfo.Action raportuje, czy przypadek został dodany, podmieniony czy zachowany
Schemat sidecara hotpdf.corpus.case.v1 zapisuje ID przypadku, dokładną sygnaturę awarii, SHA-256 zawartości i liczbę przechowywanych bajtów w stabilnej kolejności pól
HPDFCompareRegressionResultsDeterministic porównuje powtarzane sygnatury między silnikami w domenach parse, render, text i save oraz odrzuca przebiegi niestabilne lub nieudane