Language-neutral contracts for MoonSmith compiler testing
pub(all) struct BuildFailureReduction {
predicate : FailurePredicate
progress : ReductionProgress
} derive(Eq, Debug)pub(all) enum CheckOutcome {
Satisfied
Violated(FailureKind)
NotApplicable
Insufficient(FailureKind)
} derive(Eq, Debug)pub(all) struct DifferentialAttempt {
format_version : Int
purpose : String
source : String
configurations : Array[String]
result_protocol : String
toolchain : ProcessEvidence
platform : ProcessEvidence
injected : Bool
observations : Array[Observation]
comparison : Comparison
} derive(Eq, ToJson, Debug, FromJson)pub(all) struct DifferentialCase {
format_version : Int
generation : GenerationRecord
source : String
module_source : String
package_source : String
result_protocol : String
configurations : Array[String]
build_timeout_ms : Int
run_timeout_ms : Int
injected : Bool
} derive(Eq, ToJson, Debug, FromJson)pub(all) struct DifferentialReduction {
format_version : Int
first_configuration : String
second_configuration : String
original_attempt : String
cost_model : String
original_cost : ReductionCost
candidate_limit : Int
candidates : Int
accepted : Int
elapsed_ms : Int64
best_cost : ReductionCost
best_attempt : String
stop_reason : String
confirmation_attempt : String?
confirmation : PredicateStatus?
error : String?
} derive(Eq, ToJson, Debug, FromJson)pub(all) struct EquivalentComparison {
configurations : Array[String]
observations : Array[Observation]
attempts : Array[(String, String)]
comparison : Comparison
injected : Bool
error : String?
}pub(all) struct EquivalentGroupRecord {
format_version : Int
purpose : String
case_source : String
configurations : Array[String]
result_protocol : String
injected : Bool
members : Array[GroupMember]
comparison : Comparison
} derive(Eq, ToJson, Debug, FromJson)fn EquivalentGroupReduction::from_json(Json, JsonPath) -> EquivalentGroupReduction raise JsonDecodeErrorfn EquivalentGroupReduction::not_equal(x : EquivalentGroupReduction, y : EquivalentGroupReduction) -> Boolpub(all) struct OracleResult {
oracle : String
configuration : String
phase : Phase
outcome : CheckOutcome
} derive(Eq, Debug)pub(all) struct Output {
status : ProcessStatus
stdout : String
stderr : String
} derive(Eq, ToJson, Debug, FromJson)pub(all) struct ReductionProgress {
original_attempt : String
cost_model : String
original_cost : ReductionCost
candidate_limit : Int
candidates : Int
accepted : Int
elapsed_ms : Int64
best_cost : ReductionCost
best_attempt : String
stop_reason : String
confirmation_attempt : String?
confirmation : PredicateStatus?
error : String?
trials : Array[ReductionTrial]
} derive(Eq, ToJson, Debug, FromJson)pub(all) struct ReductionTrial {
attempt : String
cost : ReductionCost
status : PredicateStatus
accepted : Bool
} derive(Eq, ToJson, Debug, FromJson)pub(all) struct TaskObservation {
case_directory : String
attempt_directory : String
comparison : Comparison
error : String?
} derive(Eq, ToJson, Debug, FromJson)pub(all) enum TaskOutcome {
Observed(TaskObservation)
Failed(String)
} derive(Eq, ToJson, Debug, FromJson)pub(all) struct TaskSample {
format_version : Int
seed : Int
generation : GenerationRecord?
baseline_build : Bool?
comparable_results : Int
planned_results : Int
elapsed_ms : Int64
outcome : TaskOutcome
} derive(Eq, ToJson, Debug, FromJson)pub(all) struct TaskSummary {
format_version : Int
name : String
sample_count : Int
attempted : Int
consistent : Int
differences : Int
incomplete : Int
operation_errors : Int
generated_valid : Int
baseline_configuration : String?
baseline_attempted : Int
baseline_accepted : Int
comparisons_complete : Int
elapsed_ms : Int64
} derive(Eq, ToJson, Debug, FromJson)pub(all) enum Verdict {
Match
Finding(Fingerprint)
Inconclusive(Fingerprint)
} derive(Eq, ToJson, Debug, FromJson)