Add cram tests in regressin directory

Signed-off-by: Kakadu <Kakadu@pm.me>
This commit is contained in:
Kakadu 2024-09-05 17:07:12 +03:00
parent e471b35ed0
commit f6277da16e
170 changed files with 808 additions and 588 deletions

View file

@ -1,24 +0,0 @@
DEBUG_FILES=stack-dump-before data-dump-before extra-roots-dump-before heap-dump-before stack-dump-after data-dump-after extra-roots-dump-after heap-dump-after
TESTS=$(sort $(filter-out test111, $(basename $(wildcard test*.lama))))
LAMAC=../src/lamac
.PHONY: check $(TESTS)
check: $(TESTS) ctest111
$(TESTS): %: %.lama
@echo "regression/$@"
@cat $@.input | LAMA=../runtime $(LAMAC) -i $< > $@.log && diff $@.log orig/$@.log
@cat $@.input | LAMA=../runtime $(LAMAC) -ds -s $< > $@.log && diff $@.log orig/$@.log
@LAMA=../runtime $(LAMAC) $< && cat $@.input | ./$@ > $@.log && diff $@.log orig/$@.log
ctest111:
@echo "regression/test111"
@LAMA=../runtime $(LAMAC) test111.lama && cat test111.input | $(ARCH) ./test111 > test111.log && diff test111.log orig/test111.log
clean:
$(RM) test*.log *.s *.sm *~ $(TESTS) *.i $(DEBUG_FILES) test111
$(MAKE) clean -C expressions
$(MAKE) clean -C deep-expressions

View file

@ -1,16 +0,0 @@
open GT
open Syntax
let conj = (&&)
open Embedding
let state ps = List.fold_right (fun (x, v) (s, p) -> Expr.update x v s, (x =:= !? v) :: p) ps (Expr.empty, [])
let eval (s, p) e =
let orig = Expr.eval s e in
let stmt = List.fold_right (fun p s -> p |> s) p (Stmt.Write e) in
let [s_orig] = eval [] stmt in
let [sm_orig] = SM.run [] (SM.compile stmt) in
if conj (orig = s_orig) (orig = sm_orig)
then Printf.printf "%d\n" orig
else Printf.printf "*** divergence: %d <?> %d <?> %d\n" orig s_orig sm_orig

162
regression/dune Normal file
View file

@ -0,0 +1,162 @@
; This file was autogenerated
(cram (deps ../src/Driver.exe ../runtime/Std.i ../runtime32/Std.i))
(cram (applies_to test001)
(deps test001.lama test001.input))
(cram (applies_to test002)
(deps test002.lama test002.input))
(cram (applies_to test003)
(deps test003.lama test003.input))
(cram (applies_to test004)
(deps test004.lama test004.input))
(cram (applies_to test005)
(deps test005.lama test005.input))
(cram (applies_to test006)
(deps test006.lama test006.input))
(cram (applies_to test007)
(deps test007.lama test007.input))
(cram (applies_to test008)
(deps test008.lama test008.input))
(cram (applies_to test009)
(deps test009.lama test009.input))
(cram (applies_to test010)
(deps test010.lama test010.input))
(cram (applies_to test011)
(deps test011.lama test011.input))
(cram (applies_to test012)
(deps test012.lama test012.input))
(cram (applies_to test013)
(deps test013.lama test013.input))
(cram (applies_to test014)
(deps test014.lama test014.input))
(cram (applies_to test015)
(deps test015.lama test015.input))
(cram (applies_to test016)
(deps test016.lama test016.input))
(cram (applies_to test017)
(deps test017.lama test017.input))
(cram (applies_to test018)
(deps test018.lama test018.input))
(cram (applies_to test019)
(deps test019.lama test019.input))
(cram (applies_to test020)
(deps test020.lama test020.input))
(cram (applies_to test021)
(deps test021.lama test021.input))
(cram (applies_to test022)
(deps test022.lama test022.input))
(cram (applies_to test023)
(deps test023.lama test023.input))
(cram (applies_to test024)
(deps test024.lama test024.input))
(cram (applies_to test025)
(deps test025.lama test025.input))
(cram (applies_to test026)
(deps test026.lama test026.input))
(cram (applies_to test027)
(deps test027.lama test027.input))
(cram (applies_to test028)
(deps test028.lama test028.input))
(cram (applies_to test029)
(deps test029.lama test029.input))
(cram (applies_to test034)
(deps test034.lama test034.input))
(cram (applies_to test036)
(deps test036.lama test036.input))
(cram (applies_to test040)
(deps test040.lama test040.input))
(cram (applies_to test041)
(deps test041.lama test041.input))
(cram (applies_to test042)
(deps test042.lama test042.input))
(cram (applies_to test045)
(deps test045.lama test045.input))
(cram (applies_to test046)
(deps test046.lama test046.input))
(cram (applies_to test050)
(deps test050.lama test050.input))
(cram (applies_to test054)
(deps test054.lama test054.input))
(cram (applies_to test059)
(deps test059.lama test059.input))
(cram (applies_to test063)
(deps test063.lama test063.input))
(cram (applies_to test072)
(deps test072.lama test072.input))
(cram (applies_to test073)
(deps test073.lama test073.input))
(cram (applies_to test074)
(deps test074.lama test074.input))
(cram (applies_to test077)
(deps test077.lama test077.input))
(cram (applies_to test078)
(deps test078.lama test078.input))
(cram (applies_to test079)
(deps test079.lama test079.input))
(cram (applies_to test080)
(deps test080.lama test080.input))
(cram (applies_to test081)
(deps test081.lama test081.input))
(cram (applies_to test082)
(deps test082.lama test082.input))
(cram (applies_to test083)
(deps test083.lama test083.input))
(cram (applies_to test084)
(deps test084.lama test084.input))
(cram (applies_to test085)
(deps test085.lama test085.input))
(cram (applies_to test086)
(deps test086.lama test086.input))
(cram (applies_to test088)
(deps test088.lama test088.input))
(cram (applies_to test089)
(deps test089.lama test089.input))
(cram (applies_to test090)
(deps test090.lama test090.input))
(cram (applies_to test091)
(deps test091.lama test091.input))
(cram (applies_to test092)
(deps test092.lama test092.input))
(cram (applies_to test093)
(deps test093.lama test093.input))
(cram (applies_to test094)
(deps test094.lama test094.input))
(cram (applies_to test095)
(deps test095.lama test095.input))
(cram (applies_to test096)
(deps test096.lama test096.input))
(cram (applies_to test097)
(deps test097.lama test097.input))
(cram (applies_to test098)
(deps test098.lama test098.input))
(cram (applies_to test099)
(deps test099.lama test099.input))
(cram (applies_to test100)
(deps test100.lama test100.input))
(cram (applies_to test101)
(deps test101.lama test101.input))
(cram (applies_to test102)
(deps test102.lama test102.input))
(cram (applies_to test103)
(deps test103.lama test103.input))
(cram (applies_to test104)
(deps test104.lama test104.input))
(cram (applies_to test105)
(deps test105.lama test105.input))
(cram (applies_to test106)
(deps test106.lama test106.input))
(cram (applies_to test107)
(deps test107.lama test107.input))
(cram (applies_to test110)
(deps test110.lama test110.input))
(cram (applies_to test111)
(deps test111.lama test111.input))
(cram (applies_to test112)
(deps test112.lama test112.input))
(cram (applies_to test801)
(deps test801.lama test801.input))
(cram (applies_to test802)
(deps test802.lama test802.input))
(cram (applies_to test803)
(deps test803.lama test803.input))

35
regression/gen.ml Normal file
View file

@ -0,0 +1,35 @@
(* Run as `ocaml gen.ml` *)
let count = 1000
let () =
Out_channel.with_open_text "dune" (fun dunech ->
let dprintfn fmt = Format.kasprintf (Printf.fprintf dunech "%s\n") fmt in
dprintfn "; This file was autogenerated\n";
dprintfn "(cram (deps ../src/Driver.exe ../runtime/Std.i ../runtime32/Std.i))\n";
for i = 0 to count - 1 do
let cram_buf = Buffer.create 100 in
let cram_printfn fmt =
Format.kasprintf (Printf.bprintf cram_buf "%s\n") fmt
in
let cram_file = ref (Printf.sprintf "test%03d.t" i) in
let lama_file = ref (Printf.sprintf "test%03d.lama" i) in
let input_file = ref (Printf.sprintf "test%03d.input" i) in
let found =
if Sys.file_exists !lama_file then (
cram_printfn
" $ LAMA=../runtime ../src/Driver.exe -i test%03d.lama < \
test%03d.input"
i i;
true)
else false
in
if found then (
dprintfn "(cram (applies_to test%03d)" i;
dprintfn " (deps %s %s))" !lama_file !input_file;
Out_channel.with_open_text !cram_file (fun ch ->
output_string ch (Buffer.contents cram_buf)))
done)

View file

@ -1,5 +0,0 @@
1
2
3
4
5

View file

@ -1,10 +0,0 @@
1
2
3
4
5
6
7
8
9
10

View file

@ -1,10 +0,0 @@
1
2
3
4
5
6
7
8
9
10

View file

@ -1 +0,0 @@
> > 90

View file

@ -1 +0,0 @@
> > 41

View file

@ -1,3 +0,0 @@
> > 7
3
1

View file

@ -1 +0,0 @@
> > 10

View file

@ -1 +0,0 @@
> > 11

View file

@ -1,6 +0,0 @@
> > 1
1
0
1
0
0

View file

@ -1 +0,0 @@
-4

View file

@ -1 +0,0 @@
-45

View file

@ -1 +0,0 @@
1024

View file

@ -1 +0,0 @@
499950

View file

@ -1 +0,0 @@
2

View file

@ -1,8 +0,0 @@
> 0
0
0
1
1
0
1
1

View file

@ -1,8 +0,0 @@
> 10
11
10
11
3
2
1
0

View file

@ -1,31 +0,0 @@
> 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

View file

@ -1 +0,0 @@
> 7919

View file

@ -1 +0,0 @@
> 3628800

View file

@ -1 +0,0 @@
> 6765

View file

@ -1,14 +0,0 @@
> 2
0
3
4
5
0
7
0
11
0
13
0
17
2

View file

@ -1 +0,0 @@
499950

View file

@ -1 +0,0 @@
> 7919

View file

@ -1 +0,0 @@
> 3628800

View file

@ -1 +0,0 @@
> 6765

View file

@ -1 +0,0 @@
> > > > > > 35

View file

@ -1,2 +0,0 @@
> 3
8

View file

@ -1,12 +0,0 @@
> 1
100
200
300
2
100
200
300
3
100
200
300

View file

@ -1,21 +0,0 @@
> 1
100
200
300
100
200
300
2
100
200
300
100
200
300
3
100
200
300
100
200
300

View file

@ -1,35 +0,0 @@
> 1
100
200
300
1
2
100
200
300
3
100
200
300
3
4
100
200
300
5
100
200
300
5
100
200
300
100
200
300
100
200
300
100
200
300

View file

@ -1,14 +0,0 @@
> 7
5040
6
720
5
120
4
24
3
6
2
2
1
1

View file

@ -1,18 +0,0 @@
> 9
55
8
34
7
21
6
13
5
8
4
5
3
3
2
2
1
1

View file

@ -1,16 +0,0 @@
> 97
98
99
100
101
102
103
104
99
100
101
102
103
104
105
106

View file

@ -1,16 +0,0 @@
> 97
98
99
100
101
102
103
104
97
97
97
97
97
97
97
97

View file

@ -1,4 +0,0 @@
> 1
2
3
4

View file

@ -1,2 +0,0 @@
> 600
1800

View file

@ -1,10 +0,0 @@
> 0
1
2
3
4
4
4
4
4
4

View file

@ -1,40 +0,0 @@
> 49
34
97
98
99
34
91
93
91
49
44
32
50
44
32
51
93
67
111
110
115
32
40
49
44
32
67
111
110
115
32
40
50
44
32
78
105
108
41
41

View file

@ -1,13 +0,0 @@
> 3
3
3
1
2
3
5
5
1
2
3
4
5

View file

@ -1 +0,0 @@
> 2

View file

@ -1,13 +0,0 @@
> 105
105
105
230
105
105
105
230
105
250
1
2
3

View file

@ -1,3 +0,0 @@
> 0
1
2

View file

@ -1,2 +0,0 @@
> 100
200

View file

@ -1,18 +0,0 @@
> 9
55
8
34
7
21
6
13
5
8
4
5
3
3
2
2
1
1

View file

@ -1,14 +0,0 @@
> 7
5040
6
720
5
120
4
24
3
6
2
2
1
1

View file

@ -1,36 +0,0 @@
> 1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
10
3
5
7
9
11
13
15
17
19
5
13
29
61
125
253
509
1021
2045

View file

@ -1,6 +0,0 @@
> 5
6
7
8
9
10

View file

@ -1,12 +0,0 @@
> 1
2
3
4
1
2
3
4
3
4
1
2

View file

@ -1,6 +0,0 @@
> 1
1
1
1
0
0

View file

@ -1,3 +0,0 @@
> 0
100
300

View file

@ -1,6 +0,0 @@
> 1
2
3
100
200
300

View file

@ -1,17 +0,0 @@
> 1
1
1
1
1
2
3
100
3
2
1
6
5
4
3
2
1

View file

@ -1,3 +0,0 @@
> 7
7
28

View file

@ -1,3 +0,0 @@
> 55
310
310

View file

@ -1,8 +0,0 @@
> 0
15
15
1
2
3
4
5

View file

@ -1,3 +0,0 @@
> 1
2
3

View file

@ -1,2 +0,0 @@
0
3

View file

@ -1 +0,0 @@
> > > 8

View file

@ -1,3 +0,0 @@
> 6
7
8

View file

@ -1,9 +0,0 @@
> 1
2
3
2
3
4
3
4
5

View file

@ -1,5 +0,0 @@
> 1
1
1
1
0

View file

@ -1,2 +0,0 @@
> 11
18

View file

@ -1,4 +0,0 @@
> 5
7
12
-2

View file

@ -1 +0,0 @@
> 5

View file

@ -1,2 +0,0 @@
> 2
1

View file

@ -1 +0,0 @@
> 35

View file

@ -1 +0,0 @@
> 12

View file

@ -1,3 +0,0 @@
> 1
800
800

View file

@ -1 +0,0 @@
> 0

View file

@ -1 +0,0 @@
> 0

View file

@ -1 +0,0 @@
> 5

View file

@ -1 +0,0 @@
> > > 5

View file

@ -1,10 +0,0 @@
> 0
1
2
3
4
5
6
7
8
9

View file

@ -1 +0,0 @@
> 3

View file

@ -1,2 +0,0 @@
> 1
2

View file

@ -1 +0,0 @@
> 0

View file

@ -1,6 +0,0 @@
> 0
0
10
0
10
100

View file

@ -1,6 +0,0 @@
97
98
99
100
97
98

View file

@ -1,11 +0,0 @@
1
2
5
6
7
8
5
6
7
8
3

View file

@ -1,4 +0,0 @@
make check
pushd expressions && make check && popd
pushd deep-expressions && make check && popd
pushd x86only && make check && popd

Binary file not shown.

2
regression/test001.t Normal file
View file

@ -0,0 +1,2 @@
$ LAMA=../runtime ../src/Driver.exe -i test001.lama < test001.input
> > 90

2
regression/test002.t Normal file
View file

@ -0,0 +1,2 @@
$ LAMA=../runtime ../src/Driver.exe -i test002.lama < test002.input
> > 41

4
regression/test003.t Normal file
View file

@ -0,0 +1,4 @@
$ LAMA=../runtime ../src/Driver.exe -i test003.lama < test003.input
> > 7
3
1

2
regression/test004.t Normal file
View file

@ -0,0 +1,2 @@
$ LAMA=../runtime ../src/Driver.exe -i test004.lama < test004.input
> > 10

2
regression/test005.t Normal file
View file

@ -0,0 +1,2 @@
$ LAMA=../runtime ../src/Driver.exe -i test005.lama < test005.input
> > 11

7
regression/test006.t Normal file
View file

@ -0,0 +1,7 @@
$ LAMA=../runtime ../src/Driver.exe -i test006.lama < test006.input
> > 1
1
0
1
0
0

2
regression/test007.t Normal file
View file

@ -0,0 +1,2 @@
$ LAMA=../runtime ../src/Driver.exe -i test007.lama < test007.input
-4

2
regression/test008.t Normal file
View file

@ -0,0 +1,2 @@
$ LAMA=../runtime ../src/Driver.exe -i test008.lama < test008.input
-45

2
regression/test009.t Normal file
View file

@ -0,0 +1,2 @@
$ LAMA=../runtime ../src/Driver.exe -i test009.lama < test009.input
1024

2
regression/test010.t Normal file
View file

@ -0,0 +1,2 @@
$ LAMA=../runtime ../src/Driver.exe -i test010.lama < test010.input
499950

2
regression/test011.t Normal file
View file

@ -0,0 +1,2 @@
$ LAMA=../runtime ../src/Driver.exe -i test011.lama < test011.input
2

9
regression/test012.t Normal file
View file

@ -0,0 +1,9 @@
$ LAMA=../runtime ../src/Driver.exe -i test012.lama < test012.input
> 0
0
0
1
1
0
1
1

9
regression/test013.t Normal file
View file

@ -0,0 +1,9 @@
$ LAMA=../runtime ../src/Driver.exe -i test013.lama < test013.input
> 10
11
10
11
3
2
1
0

32
regression/test014.t Normal file
View file

@ -0,0 +1,32 @@
$ LAMA=../runtime ../src/Driver.exe -i test014.lama < test014.input
> 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

2
regression/test015.t Normal file
View file

@ -0,0 +1,2 @@
$ LAMA=../runtime ../src/Driver.exe -i test015.lama < test015.input
> 7919

Some files were not shown because too many files have changed in this diff Show more