test: goals accomplished (#8319)

This PR adds a test for the goals accomplished diagnostics so that we
notice when they break.

Follow-up for #8242.
This commit is contained in:
Marc Huisinga 2025-05-13 15:00:47 +02:00 committed by GitHub
parent aa3e7848c2
commit 92b59ae4f6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 177 additions and 13 deletions

View file

@ -95,6 +95,9 @@ partial def main (args : List String) : IO Unit := do
}
}
}
lean? := some {
silentDiagnosticSupport? := some true
}
}
Ipc.writeRequest ⟨0, "initialize", { capabilities : InitializeParams }⟩
let _ ← Ipc.readResponseAs 0 InitializeResult

View file

@ -1,7 +1,29 @@
blocked!
cancelled!
rerun!
{"version": 2, "uri": "file:///cancellation.lean", "diagnostics": []}
{"version": 2,
"uri": "file:///cancellation.lean",
"diagnostics":
[{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 11, "character": 0}, "end": {"line": 12, "character": 0}},
"message": "Goals accomplished!",
"leanTags": [2],
"isSilent": true,
"fullRange":
{"start": {"line": 11, "character": 0},
"end": {"line": 12, "character": 15}}},
{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 18, "character": 0}, "end": {"line": 19, "character": 0}},
"message": "Goals accomplished!",
"leanTags": [2],
"isSilent": true,
"fullRange":
{"start": {"line": 18, "character": 0},
"end": {"line": 21, "character": 9}}}]}
blocked!
unblocking!
{"version": 2,
@ -20,8 +42,17 @@ unblocking!
{"start": {"line": 7, "character": 2}, "end": {"line": 7, "character": 18}},
"message": "blocked",
"fullRange":
{"start": {"line": 7, "character": 2},
"end": {"line": 7, "character": 18}}}]}
{"start": {"line": 7, "character": 2}, "end": {"line": 7, "character": 18}}},
{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 10, "character": 0}, "end": {"line": 11, "character": 0}},
"message": "Goals accomplished!",
"leanTags": [2],
"isSilent": true,
"fullRange":
{"start": {"line": 10, "character": 0},
"end": {"line": 11, "character": 18}}}]}
unblocking!
{"version": 2,
"uri": "file:///cancellation.lean",
@ -32,8 +63,17 @@ unblocking!
{"start": {"line": 7, "character": 2}, "end": {"line": 7, "character": 24}},
"message": "blocked",
"fullRange":
{"start": {"line": 7, "character": 2},
"end": {"line": 7, "character": 24}}}]}
{"start": {"line": 7, "character": 2}, "end": {"line": 7, "character": 24}}},
{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 10, "character": 0}, "end": {"line": 11, "character": 0}},
"message": "Goals accomplished!",
"leanTags": [2],
"isSilent": true,
"fullRange":
{"start": {"line": 10, "character": 0},
"end": {"line": 11, "character": 18}}}]}
unblocking!
{"version": 2,
"uri": "file:///cancellation.lean",
@ -64,14 +104,47 @@ unblocking!
{"start": {"line": 7, "character": 2}, "end": {"line": 7, "character": 18}},
"message": "blocked",
"fullRange":
{"start": {"line": 7, "character": 2},
"end": {"line": 7, "character": 18}}}]}
{"start": {"line": 7, "character": 2}, "end": {"line": 7, "character": 18}}},
{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 9, "character": 0}, "end": {"line": 9, "character": 37}},
"message": "Goals accomplished!",
"leanTags": [2],
"isSilent": true,
"fullRange":
{"start": {"line": 9, "character": 0},
"end": {"line": 9, "character": 37}}}]}
blocked!
cancelled!
{"version": 2, "uri": "file:///cancellation.lean", "diagnostics": []}
{"version": 2,
"uri": "file:///cancellation.lean",
"diagnostics":
[{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 6, "character": 0}, "end": {"line": 7, "character": 0}},
"message": "Goals accomplished!",
"leanTags": [2],
"isSilent": true,
"fullRange":
{"start": {"line": 6, "character": 0},
"end": {"line": 13, "character": 9}}}]}
blocked!
cancelled!
{"version": 2, "uri": "file:///cancellation.lean", "diagnostics": []}
{"version": 2,
"uri": "file:///cancellation.lean",
"diagnostics":
[{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 6, "character": 0}, "end": {"line": 7, "character": 0}},
"message": "Goals accomplished!",
"leanTags": [2],
"isSilent": true,
"fullRange":
{"start": {"line": 6, "character": 0},
"end": {"line": 13, "character": 9}}}]}
unblocking!
{"version": 2,
"uri": "file:///cancellation.lean",
@ -86,13 +159,61 @@ unblocking!
"end": {"line": 6, "character": 39}}}]}
blocked!
cancelled!
{"version": 2, "uri": "file:///cancellation.lean", "diagnostics": []}
{"version": 2,
"uri": "file:///cancellation.lean",
"diagnostics":
[{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 6, "character": 0}, "end": {"line": 7, "character": 0}},
"message": "Goals accomplished!",
"leanTags": [2],
"isSilent": true,
"fullRange":
{"start": {"line": 6, "character": 0},
"end": {"line": 11, "character": 9}}}]}
blocked!
cancelled!
{"version": 2, "uri": "file:///cancellation.lean", "diagnostics": []}
{"version": 2,
"uri": "file:///cancellation.lean",
"diagnostics":
[{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 6, "character": 0}, "end": {"line": 7, "character": 0}},
"message": "Goals accomplished!",
"leanTags": [2],
"isSilent": true,
"fullRange":
{"start": {"line": 6, "character": 0},
"end": {"line": 11, "character": 9}}}]}
blocked!
cancelled!
{"version": 2, "uri": "file:///cancellation.lean", "diagnostics": []}
{"version": 2,
"uri": "file:///cancellation.lean",
"diagnostics":
[{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 6, "character": 0}, "end": {"line": 7, "character": 0}},
"message": "Goals accomplished!",
"leanTags": [2],
"isSilent": true,
"fullRange":
{"start": {"line": 6, "character": 0},
"end": {"line": 13, "character": 10}}}]}
blocked!
cancelled!
{"version": 2, "uri": "file:///cancellation.lean", "diagnostics": []}
{"version": 2,
"uri": "file:///cancellation.lean",
"diagnostics":
[{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 6, "character": 0}, "end": {"line": 7, "character": 0}},
"message": "Goals accomplished!",
"leanTags": [2],
"isSilent": true,
"fullRange":
{"start": {"line": 6, "character": 0},
"end": {"line": 13, "character": 10}}}]}

View file

@ -0,0 +1,9 @@
theorem foo : True := by
exact True.intro
--^ collectDiagnostics
theorem foobar : True := True.intro
--^ collectDiagnostics
example : True := True.intro
--^ collectDiagnostics

View file

@ -0,0 +1,31 @@
{"version": 1,
"uri": "file:///goalsAccomplished.lean",
"diagnostics":
[{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 0, "character": 0}, "end": {"line": 1, "character": 0}},
"message": "Goals accomplished!",
"leanTags": [2],
"isSilent": true,
"fullRange":
{"start": {"line": 0, "character": 0}, "end": {"line": 1, "character": 18}}},
{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 4, "character": 0}, "end": {"line": 4, "character": 35}},
"message": "Goals accomplished!",
"leanTags": [2],
"isSilent": true,
"fullRange":
{"start": {"line": 4, "character": 0}, "end": {"line": 4, "character": 35}}},
{"source": "Lean 4",
"severity": 3,
"range":
{"start": {"line": 7, "character": 0}, "end": {"line": 7, "character": 28}},
"message": "Goals accomplished!",
"leanTags": [2],
"isSilent": true,
"fullRange":
{"start": {"line": 7, "character": 0},
"end": {"line": 7, "character": 28}}}]}