From ba26cf67b98467cef029afcb1ae8384dc073377a Mon Sep 17 00:00:00 2001 From: Mustafa Quraish Date: Thu, 3 Feb 2022 22:04:46 -0500 Subject: Add some simple tests for arrays+strings --- tests/arrays.sh | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100755 tests/arrays.sh diff --git a/tests/arrays.sh b/tests/arrays.sh new file mode 100755 index 0000000..8eb2f07 --- /dev/null +++ b/tests/arrays.sh @@ -0,0 +1,131 @@ +#!/bin/bash + +# Test Builtin functions + +. tests/common.sh + +set -e + +echo -n "- Integer arrays: " +assert_stdout_text \ +"fn main() { + let a: int[5]; + for (let i = 0; i < 5; i = i + 1) { + a[i] = i; + } + for (let i = 0; i < 5; i = i + 1) { + print(a[i]); + } +}" \ +"0 +1 +2 +3 +4" + +assert_stdout_text \ +" +let a: int[5]; +fn main() { + for (let i = 0; i < 5; i = i + 1) { + a[i] = i; + } + for (let i = 0; i < 5; i = i + 1) { + print(a[i]); + } +}" \ +"0 +1 +2 +3 +4" + +assert_stdout_text \ +" +fn test(a: int*) { + for (let i = 0; i < 5; i = i + 1) { + a[i] = i; + } +} +fn main() { + let a: int[5]; + test(a); + for (let i = 0; i < 5; i = i + 1) { + print(a[i]); + } +}" \ +"0 +1 +2 +3 +4" + +assert_stdout_text \ +" +fn test(a: int*) { + for (let i = 0; i < 5; i = i + 1) { + a[i] = i; + } +} +fn main() { + let a: int[5]; + test(a); + for (let i = 0; i < 5; i = i + 1) { + print(a[i]); + } +}" \ +"0 +1 +2 +3 +4" +echo " OK" + +echo -n "- Strings / Char arrays: " +assert_stdout_text \ +"import \"std/common.cup\" +fn main() { + puts(\"Hello\"); +}" \ +"Hello" + +assert_stdout_text \ +"import \"std/common.cup\" +fn main() { + let buf: char[10]; + strcpy(buf, \"Hello\"); + puts(buf); +}" \ +"Hello" + +assert_stdout_text \ +"import \"std/common.cup\" +fn main() { + let buf = \"Hello\"; + puts(buf); +}" \ +"Hello" + +assert_stdout_text \ +"import \"std/common.cup\" +let buf: char[10]; +fn main() { + strcpy(buf, \"Hello\"); + puts(buf); +}" \ +"Hello" + +assert_stdout_text \ +"import \"std/common.cup\" +let buf: char[10]; +fn main() { + buf[0] = 'H'; + buf[1] = 'a' + 4; + buf[2] = 'l'; + buf[3] = buf[2]; + buf[4] = buf[3] + 3; + buf[5] = 0; + puts(buf); +}" \ +"Hello" +echo " OK" -- cgit v1.2.3