diff --git a/tests/spec/arb_arrays_of_arrays/compiler/uniform-array-array-var.vert b/tests/spec/arb_arrays_of_arrays/compiler/uniform-array-array-var.vert
new file mode 100644
index 0000000..8a038cc
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/compiler/uniform-array-array-var.vert
@@ -0,0 +1,15 @@
+/* [config]
+ * expect_result: pass
+ * glsl_version: 1.20
+ * require_extensions: GL_ARB_arrays_of_arrays
+ * [end config]
+ */
+#version 120
+#extension GL_ARB_arrays_of_arrays: enable
+
+uniform vec4[3][1] an_array;
+
+void main()
+{
+  gl_Position = an_array[0][0];
+}
diff --git a/tests/spec/arb_arrays_of_arrays/compiler/uniform-array-var-array.vert b/tests/spec/arb_arrays_of_arrays/compiler/uniform-array-var-array.vert
new file mode 100644
index 0000000..588152e
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/compiler/uniform-array-var-array.vert
@@ -0,0 +1,15 @@
+/* [config]
+ * expect_result: pass
+ * glsl_version: 1.20
+ * require_extensions: GL_ARB_arrays_of_arrays
+ * [end config]
+ */
+#version 120
+#extension GL_ARB_arrays_of_arrays: enable
+
+uniform vec4 [1] an_array[1];
+
+void main()
+{
+  gl_Position = an_array[0][0];
+}
diff --git a/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-array-array-var.vert b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-array-array-var.vert
new file mode 100644
index 0000000..a813157
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-array-array-var.vert
@@ -0,0 +1,15 @@
+/* [config]
+ * expect_result: pass
+ * glsl_version: 1.20
+ * require_extensions: GL_ARB_arrays_of_arrays
+ * [end config]
+ */
+#version 120
+#extension GL_ARB_arrays_of_arrays: enable
+
+uniform vec4[][1] an_array;
+
+void main()
+{
+  gl_Position = an_array[0][0];
+}
diff --git a/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-array-var-array.vert b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-array-var-array.vert
new file mode 100644
index 0000000..e801f65
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-array-var-array.vert
@@ -0,0 +1,15 @@
+/* [config]
+ * expect_result: pass
+ * glsl_version: 1.20
+ * require_extensions: GL_ARB_arrays_of_arrays
+ * [end config]
+ */
+#version 120
+#extension GL_ARB_arrays_of_arrays: enable
+
+uniform vec4 [1] an_array[];
+
+void main()
+{
+  gl_Position = an_array[0][0];
+}
diff --git a/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-array-array-var.vert b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-array-array-var.vert
new file mode 100644
index 0000000..7f2ee5b
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-array-array-var.vert
@@ -0,0 +1,21 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.20
+ * require_extensions: GL_ARB_arrays_of_arrays
+ * [end config]
+ *
+ * For ARB_arrays_of_arrays spec:
+ *
+ * "For unsized arrays, only the outermost dimension can be lacking a
+ *  size. A type that includes an unknown array size cannot be formed into
+ *  an array until it gets an explicit size."
+ */
+#version 120
+#extension GL_ARB_arrays_of_arrays: enable
+
+uniform vec4[][] an_array;
+
+void main()
+{
+  gl_Position = an_array[0][0];
+}
diff --git a/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-array-array-var2.vert b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-array-array-var2.vert
new file mode 100644
index 0000000..4444d9e
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-array-array-var2.vert
@@ -0,0 +1,21 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.20
+ * require_extensions: GL_ARB_arrays_of_arrays
+ * [end config]
+ *
+ * For ARB_arrays_of_arrays spec:
+ *
+ * "For unsized arrays, only the outermost dimension can be lacking a
+ *  size. A type that includes an unknown array size cannot be formed into
+ *  an array until it gets an explicit size."
+ */
+#version 120
+#extension GL_ARB_arrays_of_arrays: enable
+
+uniform vec4[1][] an_array;
+
+void main()
+{
+  gl_Position = an_array[0][0];
+}
diff --git a/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-array-var-array.vert b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-array-var-array.vert
new file mode 100644
index 0000000..0b06037
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-array-var-array.vert
@@ -0,0 +1,21 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.20
+ * require_extensions: GL_ARB_arrays_of_arrays
+ * [end config]
+ *
+ * For ARB_arrays_of_arrays spec:
+ *
+ * "For unsized arrays, only the outermost dimension can be lacking a
+ *  size. A type that includes an unknown array size cannot be formed into
+ *  an array until it gets an explicit size."
+ */
+#version 120
+#extension GL_ARB_arrays_of_arrays: enable
+
+uniform vec4 [] an_array[];
+
+void main()
+{
+  gl_Position = an_array[0][0];
+}
diff --git a/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-array-var-array2.vert b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-array-var-array2.vert
new file mode 100644
index 0000000..04524d5
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-array-var-array2.vert
@@ -0,0 +1,21 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.20
+ * require_extensions: GL_ARB_arrays_of_arrays
+ * [end config]
+ *
+ * For ARB_arrays_of_arrays spec:
+ *
+ * "For unsized arrays, only the outermost dimension can be lacking a
+ *  size. A type that includes an unknown array size cannot be formed into
+ *  an array until it gets an explicit size."
+ */
+#version 120
+#extension GL_ARB_arrays_of_arrays: enable
+
+uniform vec4 [] an_array[1];
+
+void main()
+{
+  gl_Position = an_array[0][0];
+}
diff --git a/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-var-array-array.vert b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-var-array-array.vert
new file mode 100644
index 0000000..91ac3cc
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-var-array-array.vert
@@ -0,0 +1,21 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.20
+ * require_extensions: GL_ARB_arrays_of_arrays
+ * [end config]
+ *
+ * For ARB_arrays_of_arrays spec:
+ *
+ * "For unsized arrays, only the outermost dimension can be lacking a
+ *  size. A type that includes an unknown array size cannot be formed into
+ *  an array until it gets an explicit size."
+ */
+#version 120
+#extension GL_ARB_arrays_of_arrays: enable
+
+uniform vec4 an_array[][];
+
+void main()
+{
+  gl_Position = an_array[0][0];
+}
diff --git a/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-var-array-array2.vert b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-var-array-array2.vert
new file mode 100644
index 0000000..dc05547
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-invalid-var-array-array2.vert
@@ -0,0 +1,21 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.20
+ * require_extensions: GL_ARB_arrays_of_arrays
+ * [end config]
+ *
+ * For ARB_arrays_of_arrays spec:
+ *
+ * "For unsized arrays, only the outermost dimension can be lacking a
+ *  size. A type that includes an unknown array size cannot be formed into
+ *  an array until it gets an explicit size."
+ */
+#version 120
+#extension GL_ARB_arrays_of_arrays: enable
+
+uniform vec4 an_array[1][];
+
+void main()
+{
+  gl_Position = an_array[0][0];
+}
diff --git a/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-var-array-array.vert b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-var-array-array.vert
new file mode 100644
index 0000000..99a52a1
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/compiler/uniform-unsized-var-array-array.vert
@@ -0,0 +1,15 @@
+/* [config]
+ * expect_result: pass
+ * glsl_version: 1.20
+ * require_extensions: GL_ARB_arrays_of_arrays
+ * [end config]
+ */
+#version 120
+#extension GL_ARB_arrays_of_arrays: enable
+
+uniform vec4 an_array[][1];
+
+void main()
+{
+  gl_Position = an_array[0][0];
+}
diff --git a/tests/spec/arb_arrays_of_arrays/compiler/uniform-var-array-array.vert b/tests/spec/arb_arrays_of_arrays/compiler/uniform-var-array-array.vert
new file mode 100644
index 0000000..95215bb
--- /dev/null
+++ b/tests/spec/arb_arrays_of_arrays/compiler/uniform-var-array-array.vert
@@ -0,0 +1,15 @@
+/* [config]
+ * expect_result: pass
+ * glsl_version: 1.20
+ * require_extensions: GL_ARB_arrays_of_arrays
+ * [end config]
+ */
+#version 120
+#extension GL_ARB_arrays_of_arrays: enable
+
+uniform vec4 an_array[1][1];
+
+void main()
+{
+  gl_Position = an_array[0][0];
+}
