diff --git a/regression/test.sh b/regression/test.sh index 61dca4a12..5cdc61484 100755 --- a/regression/test.sh +++ b/regression/test.sh @@ -1,3 +1,4 @@ make check pushd expressions && make check && popd pushd deep-expressions && make check && popd +pushd x86only && make check && popd diff --git a/regression/x86only/Makefile b/regression/x86only/Makefile new file mode 100644 index 000000000..d78ca38c1 --- /dev/null +++ b/regression/x86only/Makefile @@ -0,0 +1,13 @@ +TESTS=$(basename $(wildcard test*.expr)) + +RC=../../src/rc.opt + +.PHONY: check $(TESTS) + +check: $(TESTS) + +$(TESTS): %: %.expr + @RC_RUNTIME=../../runtime $(RC) $< && cat $@.input | ./$@ > $@.log && diff $@.log orig/$@.log + +clean: + rm -f test*.log *.s *~ $(TESTS) diff --git a/regression/x86only/orig/test001.log b/regression/x86only/orig/test001.log new file mode 100644 index 000000000..b89fb7132 --- /dev/null +++ b/regression/x86only/orig/test001.log @@ -0,0 +1,12 @@ +`Empty +`Node (0, `Empty, `Empty) +`Node (0, `Empty, `Node (1, `Empty, `Empty)) +`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Empty))) +`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Empty)))) +`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Node (4, `Empty, `Empty))))) +`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Node (4, `Empty, `Node (5, `Empty, `Empty)))))) +`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Node (4, `Empty, `Node (5, `Empty, `Node (6, `Empty, `Empty))))))) +`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Node (4, `Empty, `Node (5, `Empty, `Node (6, `Empty, `Node (7, `Empty, `Empty)))))))) +`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Node (4, `Empty, `Node (5, `Empty, `Node (6, `Empty, `Node (7, `Empty, `Node (8, `Empty, `Empty))))))))) +`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Node (4, `Empty, `Node (5, `Empty, `Node (6, `Empty, `Node (7, `Empty, `Node (8, `Empty, `Node (9, `Empty, `Empty)))))))))) +`Node (0, `Empty, `Node (1, `Empty, `Node (2, `Empty, `Node (3, `Empty, `Node (4, `Empty, `Node (5, `Empty, `Node (6, `Empty, `Node (7, `Empty, `Node (8, `Empty, `Node (9, `Empty, `Node (10, `Empty, `Empty))))))))))) diff --git a/regression/x86only/test001.expr b/regression/x86only/test001.expr new file mode 100644 index 000000000..486bef831 --- /dev/null +++ b/regression/x86only/test001.expr @@ -0,0 +1,19 @@ +fun insert (tree, value) { + case tree of + `Empty -> return `Node (value, `Empty, `Empty) + | `Node (x, left, right) -> + if x > value + then return `Node (x, insert (left, value), right) + else return `Node (x, left, insert (right, value)) + fi + esac +} + +tree := `Empty; + +for i := 0, i <= 10, i := i+1 do + printf ("%s\n", tree.string); + tree := insert (tree, i) +od; + +printf ("%s\n", tree.string) diff --git a/regression/x86only/test001.input b/regression/x86only/test001.input new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/regression/x86only/test001.input @@ -0,0 +1 @@ +