Files
morluto 537467ab9e fix(test-fixtures): keep managed metadata and method bodies disjoint
Lay out resources, ReadyToRun data and IL bodies from their actual extents. Preserve RVA zero for bodyless methods and verify adjacent bodies through the production inspector.
2026-10-14 08:58:34 +08:00

40 lines
1.2 KiB
TypeScript

export interface ManagedPeFixtureMethod {
readonly body?: Buffer;
readonly flags?: number;
readonly implFlags?: number;
readonly name: string;
/** An explicit metadata RVA; zero represents a method without an IL body. */
readonly rva?: number;
}
export interface ManagedPeFixtureOptions {
readonly cliFlags?: number;
readonly corruptMetadataSignature?: boolean;
readonly fieldName?: string;
readonly ilBody?: Buffer;
readonly machine?: number;
readonly metadataValidMaskExtra?: bigint;
readonly methodImplFlags?: number;
readonly methodName?: string;
readonly methods?: readonly ManagedPeFixtureMethod[];
readonly mvid?: Buffer;
readonly pinvoke?: {
readonly importName?: string;
readonly mappingFlags?: number;
readonly memberRow?: number;
readonly moduleName?: string;
};
readonly readyToRun?: boolean;
readonly references?: readonly string[];
readonly resourceData?: Buffer;
readonly targetFramework?: string;
readonly typeName?: string;
readonly typeNamespace?: string;
}
export const alternateMvid: Buffer;
export function buildManagedPeFixture(
options?: ManagedPeFixtureOptions,
): Buffer;
export function buildNativePeFixture(): Buffer;