add boilerplate to ease regression testing

This commit is contained in:
2025-08-04 07:14:00 +01:00
parent 83634ef20e
commit d4532e37cf
3 changed files with 58 additions and 10 deletions

View File

@@ -38,4 +38,5 @@ fcore/app-update.sml
test/Railroad/src/railroad.mlb
test/normal-move.sml
test/normal-delete.sml
test/regression.sml
test/test.sml

43
test/regression.sml Normal file
View File

@@ -0,0 +1,43 @@
structure Regression =
struct
open Railroad
open Railroad.Test
fun updateLoop (pos, str, app) =
if pos = String.size str then
app
else
let
val chr = String.sub (str, pos)
val app = AppUpdate.update (app, InputMsg.CHAR_EVENT chr)
in
updateLoop (pos + 1, str, app)
end
fun updateAppWithChars (historyString, app) =
updateLoop (0, historyString, app)
fun appFromText text =
let val buffer = LineGap.fromString text
in AppType.init (buffer, 0, 0)
end
fun loadFromFile (io, acc) =
case TextIO.inputLine io of
SOME line => loadFromFile (io, acc ^ line)
| NONE => acc
val initialText =
let
val io = TextIO.openIn "temp.txt"
val str = loadFromFile (io, "")
val () = TextIO.closeIn io
in
str
end
val charEventTests = describe "CHAR_EVENT regressions"
[test "placeholder" (fn _ => Expect.isTrue true)]
val tests = [charEventTests]
end

View File

@@ -1,12 +1,16 @@
fun main () =
let
open Railroad
open Railroad.Test
structure Test =
struct
open Railroad
open Railroad.Test
val tests = NormalMove.tests @ NormalDelete.tests
val tests = concat tests
in
runWithConfig [Configuration.PrintPassed false] tests
end
fun main () =
let
val tests =
List.concat [NormalMove.tests, NormalDelete.tests, Regression.tests]
val tests = concat tests
in
runWithConfig [Configuration.PrintPassed false] tests
end
end
val () = main ()
val () = Test.main ()