aboutsummaryrefslogtreecommitdiff
path: root/tests/langerrors
diff options
context:
space:
mode:
Diffstat (limited to 'tests/langerrors')
-rw-r--r--tests/langerrors/embed_array_overflow.zc6
-rw-r--r--tests/langerrors/embed_missing.zc6
-rw-r--r--tests/langerrors/embed_missing_as.zc6
-rw-r--r--tests/langerrors/embed_partial_element.zc6
-rw-r--r--tests/langerrors/embed_struct.zc7
-rw-r--r--tests/langerrors/embed_syntax.zc6
-rw-r--r--tests/langerrors/embed_too_large.zc6
7 files changed, 43 insertions, 0 deletions
diff --git a/tests/langerrors/embed_array_overflow.zc b/tests/langerrors/embed_array_overflow.zc
new file mode 100644
index 0000000..eebfe1a
--- /dev/null
+++ b/tests/langerrors/embed_array_overflow.zc
@@ -0,0 +1,6 @@
+namespace;
+include rt;
+
+// expect: the embedded file is larger than the array it is declared as
+embed "tests/data/embed/bytes.bin" as u8[2] x;
+fn main() { return 0; }
diff --git a/tests/langerrors/embed_missing.zc b/tests/langerrors/embed_missing.zc
new file mode 100644
index 0000000..6144878
--- /dev/null
+++ b/tests/langerrors/embed_missing.zc
@@ -0,0 +1,6 @@
+namespace;
+include rt;
+
+// expect: can't read the file named by embed
+embed "tests/data/embed/missing.bin" as int x;
+fn main() { return 0; }
diff --git a/tests/langerrors/embed_missing_as.zc b/tests/langerrors/embed_missing_as.zc
new file mode 100644
index 0000000..785d941
--- /dev/null
+++ b/tests/langerrors/embed_missing_as.zc
@@ -0,0 +1,6 @@
+namespace;
+include rt;
+
+// expect: expected as: embed "file" as [type] name;
+embed "tests/data/embed/text.txt" x;
+fn main() { return 0; }
diff --git a/tests/langerrors/embed_partial_element.zc b/tests/langerrors/embed_partial_element.zc
new file mode 100644
index 0000000..663ca24
--- /dev/null
+++ b/tests/langerrors/embed_partial_element.zc
@@ -0,0 +1,6 @@
+namespace;
+include rt;
+
+// expect: the embedded file's size is not a whole number of array elements
+embed "tests/data/embed/bytes.bin" as u16[] x;
+fn main() { return 0; }
diff --git a/tests/langerrors/embed_struct.zc b/tests/langerrors/embed_struct.zc
new file mode 100644
index 0000000..1fad589
--- /dev/null
+++ b/tests/langerrors/embed_struct.zc
@@ -0,0 +1,7 @@
+namespace;
+include rt;
+
+// expect: embed declares a bstr, a char*, a number, or an array of numbers
+struct point { int x, y; };
+embed "tests/data/embed/answer.bin" as point p;
+fn main() { return 0; }
diff --git a/tests/langerrors/embed_syntax.zc b/tests/langerrors/embed_syntax.zc
new file mode 100644
index 0000000..0cd8b9e
--- /dev/null
+++ b/tests/langerrors/embed_syntax.zc
@@ -0,0 +1,6 @@
+namespace;
+include rt;
+
+// expect: embed takes a path in quotes: embed "file" as name;
+embed text as x;
+fn main() { return 0; }
diff --git a/tests/langerrors/embed_too_large.zc b/tests/langerrors/embed_too_large.zc
new file mode 100644
index 0000000..c8f3864
--- /dev/null
+++ b/tests/langerrors/embed_too_large.zc
@@ -0,0 +1,6 @@
+namespace;
+include rt;
+
+// expect: the embedded file is larger than the type it is declared as
+embed "tests/data/embed/text.txt" as int x;
+fn main() { return 0; }