forge-mutation-tester
Version:
Mutation testing tool for Solidity smart contracts using Gambit
96 lines • 2.2 kB
TypeScript
export interface RunOptions {
repo?: string;
localPath?: string;
token?: string;
branch: string;
output: string;
openaiKey?: string;
model: string;
cleanup: boolean;
iterative?: boolean;
numMutants?: number;
includePatterns?: string[];
excludePatterns?: string[];
solcRemappings?: string[];
}
export interface MutationConfig {
repository?: {
url?: string;
local_path?: string;
branch?: string;
token?: string;
};
openai?: {
api_key?: string;
model?: string;
};
output?: {
directory?: string;
cleanup?: boolean;
};
testing?: {
iterative?: boolean;
num_mutants?: number;
};
files?: {
include?: string[];
exclude?: string[];
};
solidity?: {
remappings?: string[];
};
}
export interface MutationResult {
file: string;
line: number;
column: number;
mutationType: string;
original: string;
mutated: string;
status: 'killed' | 'survived' | 'timeout' | 'error';
testOutput?: string;
killReason?: string;
mutantId?: string;
timestamp?: string;
}
export interface MutationSession {
sessionId: string;
timestamp: string;
projectPath: string;
config: MutationConfig;
iterations: MutationIteration[];
summary: MutationSummary;
}
export interface MutationIteration {
iterationNumber: number;
timestamp: string;
mutationResults: MutationResult[];
generatedTests?: GeneratedTest[];
stats: {
total: number;
killed: number;
survived: number;
timeout: number;
error: number;
};
}
export interface TestGap {
mutationResult: MutationResult;
context: string;
suggestedTest?: string;
}
export interface GeneratedTest {
fileName: string;
content: string;
description: string;
targetedMutations: MutationResult[];
}
export interface MutationSummary {
totalMutations: number;
killedMutations: number;
survivedMutations: number;
mutationScore: number;
gaps: TestGap[];
generatedTests: GeneratedTest[];
}
//# sourceMappingURL=index.d.ts.map