forge-mutation-tester
Version:
Mutation testing tool for Solidity smart contracts using Gambit
90 lines • 3.23 kB
TypeScript
import { MutationResult } from '../types';
export declare class GambitService {
private gambitPath;
checkGambitInstalled(): Promise<boolean>;
installGambit(): Promise<void>;
compileProject(projectPath: string): Promise<void>;
prepareProject(projectPath: string): Promise<void>;
setupGambitConfig(projectPath: string): Promise<void>;
setupGambitConfigWithoutDependencies(projectPath: string, includePatterns?: string[], excludePatterns?: string[]): Promise<void>;
ensureSolcAvailable(projectPath: string): Promise<string>;
runMutationTesting(projectPath: string): Promise<MutationResult[]>;
/**
* Filter source files based on include/exclude patterns
* @param files List of files to filter
* @param includePatterns Optional glob patterns to include
* @param excludePatterns Optional glob patterns to exclude
* @returns Filtered list of files
*/
private filterFilesByPatterns;
runMutationTestingWithoutSetup(projectPath: string, numMutants?: number, includePatterns?: string[], excludePatterns?: string[], customRemappings?: string[]): Promise<MutationResult[]>;
/**
* Test a single mutant by replacing the original file, running tests, and restoring
*/
private testSingleMutant;
/**
* Parse mutants from Gambit output directory
*/
private parseGambitMutants;
private parseGambitResults;
getSurvivedMutations(results: MutationResult[]): Promise<MutationResult[]>;
/**
* Re-test only the previously survived mutations
* This is much more efficient for iterative mode
*/
retestSurvivedMutations(projectPath: string, previousResults: MutationResult[]): Promise<MutationResult[]>;
/**
* Find existing mutant directories from previous runs
*/
private findMutantDirectories;
/**
* Generate comprehensive mutation analysis with Guardian Mutation Score
*/
generateMutationAnalysis(results: MutationResult[], projectPath: string): Promise<{
guardianScore: number;
analysis: {
summary: any;
byFile: any;
byMutationType: any;
criticalGaps: any[];
recommendations: string[];
};
reportMarkdown: string;
}>;
/**
* Calculate Guardian Mutation Score - a more sophisticated scoring system
*/
private calculateGuardianScore;
/**
* Get severity level for mutation types
*/
private getMutationSeverity;
/**
* Analyze mutations by file
*/
private analyzeByFile;
/**
* Analyze mutations by type
*/
private analyzeByMutationType;
/**
* Identify critical gaps that need immediate attention
*/
private identifyCriticalGaps;
/**
* Calculate priority score for a mutant based on various factors
*/
private calculateMutantPriority;
/**
* Generate actionable recommendations
*/
private generateRecommendations;
/**
* Generate detailed markdown mutation analysis report
*/
private generateMutationReport;
private getScoreEmoji;
private getScoreGrade;
private describeMutationImpact;
}
//# sourceMappingURL=gambit.service.d.ts.map