Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

first tests for (mm0 parser, mmu parser, mm0+mmu proof checker) #79

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
5 changes: 5 additions & 0 deletions tests/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
**Test files for mm0 and mmu**

This folder holds various tests for MM0, MM1, MMU, and MMB.

* `mm0_mmu/{pass, fail}`: Integration tests for MM0 + MMU that should pass or fail.
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-id1.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- empty id
sort ;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-id1.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- empty id
(sort )
3 changes: 3 additions & 0 deletions tests/mm0_mmu/fail/bad-id2.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- blank id
sort
;
3 changes: 3 additions & 0 deletions tests/mm0_mmu/fail/bad-id2.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- blank id
(sort
)
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-id3.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- id starting with a digit
sort 0;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-id3.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- id starting with a digit
(sort 0)
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-id4.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- id with forbidden char -
sort sot-;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-id4.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- id with forbidden char -
(sort sot-)
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-id5.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- id that is a single underscore _
sort _;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-id5.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- id that is a single underscore _
(sort _)
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-int2.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- V-- not an int
prefix p : $+$ prec 1.0;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-int3.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- V-- forbidden sign
prefix p : $+$ prec +1;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-int4.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- V-- forbidden sign
prefix plus: $ + $ prec -1;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-int5.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- V-- forbidden 0 prefix -
prefix p : $+$ prec 01;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-math-string1.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- --V one $ too many
delimiter $ $ $;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-math-string2.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- --V one $ too many
delimiter $ $ $ $ $ ;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-math-string3.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- --V two $ too many
delimiter $ $ $ $ $ $ ;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-sort21.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- strict should be after pure
strict pure sort s21;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-sort21.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- strict should be after pure
(sort s21 strict pure)
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-sort31.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- provable should be after pure
provable pure sort s31;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-sort31.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- provable should be after pure
(sort s31 provable pure)
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-sort32.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- provable should be after strict
provable strict sort s32;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-sort32.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- provable should be after strict
(sort s32 provable strict)
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-sort41.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- free should be after pure
free pure sort s41;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-sort41.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- free should be after pure
(sort s41 free pure)
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-sort42.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- free should be after strict
free strict sort s42;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-sort42.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- free should be after strict
(sort s42 free strict)
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-sort43.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- free should be after provable
free provable sort s43;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-sort43.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- free should be after provable
(sort s43 free provable)
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-whitespace1.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- v-- this is a TAB
sort s ;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-whitespace1.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- v-- this is a TAB
(sort s )
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-whitespace2.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- v-- this is a LINE TABULATION
sort s ;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-whitespace2.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- v-- this is a LINE TABULATION
(sort s )
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-whitespace3.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- v-- this is a FORM FEED
sort s ;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-whitespace3.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- v-- this is a FORM FEED
(sort s )
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-whitespace4.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- v-- this is a CARRIAGE RETURN
sort s;
Expand Down
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/bad-whitespace4.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- v-- this is a CARRIAGE RETURN
(sort s)
Expand Down
1 change: 1 addition & 0 deletions tests/mm0_mmu/fail/non-ascii1.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
sort ß;
1 change: 1 addition & 0 deletions tests/mm0_mmu/fail/non-ascii1.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
(sort ß)
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/non-ascii2.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- v- non-break space
sort s ;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/fail/non-ascii2.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- v- non-break space
(sort s )
4 changes: 4 additions & 0 deletions tests/mm0_mmu/pass/comment.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- <-- comment doesn't start the line
sort
-- comment inside a statement
s;
4 changes: 4 additions & 0 deletions tests/mm0_mmu/pass/comment.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- <-- comment doesn't start the line
(sort
-- comment inside a directive
s)
4 changes: 4 additions & 0 deletions tests/mm0_mmu/pass/id.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- identifier ::= [a-zA-Z_][a-zA-Z0-9_]*
sort id_1;
sort Id2_;
sort _id3;
4 changes: 4 additions & 0 deletions tests/mm0_mmu/pass/id.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
-- identifier ::= [a-zA-Z_][a-zA-Z0-9_]*
(sort id_1)
(sort Id2_)
(sort _id3)
6 changes: 6 additions & 0 deletions tests/mm0_mmu/pass/int.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
-- int number ::= 0 | [1-9][0-9]*
-- Verifiers should support precedences up to at least 2^11 - 2 = 2046
prefix a: $ + $ prec 0;
prefix b: $ * $ prec 2046;
prefix c: $ - $ prec 1875;
prefix d: $ / $ prec 39;
16 changes: 16 additions & 0 deletions tests/mm0_mmu/pass/sort.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
sort s0;
free sort s1;
provable sort s2;
provable free sort s3;
strict sort s4;
strict free sort s5;
strict provable sort s6;
strict provable free sort s7;
pure sort s8;
pure free sort s9;
pure provable sort s10;
pure provable free sort s11;
pure strict sort s12;
pure strict free sort s13;
pure strict provable sort s14;
pure strict provable free sort s15;
16 changes: 16 additions & 0 deletions tests/mm0_mmu/pass/sort.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
(sort s0 )
(sort s1 free )
(sort s2 provable )
(sort s3 provable free )
(sort s4 strict )
(sort s5 strict free )
(sort s6 strict provable )
(sort s7 strict provable free )
(sort s8 pure )
(sort s9 pure free )
(sort s10 pure provable )
(sort s11 pure provable free )
(sort s12 pure strict )
(sort s13 pure strict free )
(sort s14 pure strict provable )
(sort s15 pure strict provable free )
2 changes: 2 additions & 0 deletions tests/mm0_mmu/pass/whitespace1.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- v-- this is a SPACE
sort s ;
2 changes: 2 additions & 0 deletions tests/mm0_mmu/pass/whitespace1.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- v-- this is a SPACE
(sort s )
3 changes: 3 additions & 0 deletions tests/mm0_mmu/pass/whitespace2.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- v-- this is a NEWLINE '\n'
sort s
digama0 marked this conversation as resolved.
Show resolved Hide resolved
;
3 changes: 3 additions & 0 deletions tests/mm0_mmu/pass/whitespace2.mmu
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
-- v-- this is a NEWLINE '\n'
(sort s
)
5 changes: 5 additions & 0 deletions tests/mm0_mmu/run-mm0-hs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh

# Usage: ./run-mm0-hs.sh pass/TEST
# or fail/TEST
mm0-hs verify $1.mm0 $1.mmu
2 changes: 2 additions & 0 deletions tests/mm0_mmu/run/bad-int1.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- V-- overflowing hazard
prefix p : $+$ prec 4294967296;
10 changes: 10 additions & 0 deletions tests/mm0_mmu/run/math-string.mm0
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
-- math-string ::= '$' [^\$]* '$'
delimiter $ $;
delimiter $ NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
! " # % & ' ( ) * + , - . /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~ DEL $;