Add fail/test metadata tests from Alexandre Montplaisir
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Sun, 17 Nov 2013 22:13:09 +0000 (17:13 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Sun, 17 Nov 2013 22:13:09 +0000 (17:13 -0500)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
14 files changed:
tests/1.8/regression/metadata/fail/array-redefinition/metadata [new file with mode: 0644]
tests/1.8/regression/metadata/fail/struct-inner-struct-undefined/metadata [new file with mode: 0644]
tests/1.8/regression/metadata/fail/struct-recursive/metadata [new file with mode: 0644]
tests/1.8/regression/metadata/fail/struct-reserved-keywords/metadata [new file with mode: 0644]
tests/1.8/regression/metadata/fail/typedef-redefinition/metadata [new file with mode: 0644]
tests/1.8/regression/metadata/fail/typedef-reserved-keyword/metadata [new file with mode: 0644]
tests/1.8/regression/metadata/pass/struct-align-larger/metadata [new file with mode: 0644]
tests/1.8/regression/metadata/pass/struct-align-smaller/metadata [new file with mode: 0644]
tests/1.8/regression/metadata/pass/struct-inner-struct/metadata [new file with mode: 0644]
tests/1.8/regression/metadata/pass/struct-unamed-struct-as-field/metadata [new file with mode: 0644]
tests/1.8/regression/metadata/pass/struct-underscores-in-fields/metadata [new file with mode: 0644]
tests/1.8/regression/metadata/pass/typealias-reserved-keyword/metadata [new file with mode: 0644]
tests/1.8/regression/metadata/pass/typealias-simple/metadata [new file with mode: 0644]
tests/1.8/regression/metadata/pass/typedef-simple/metadata [new file with mode: 0644]

diff --git a/tests/1.8/regression/metadata/fail/array-redefinition/metadata b/tests/1.8/regression/metadata/fail/array-redefinition/metadata
new file mode 100644 (file)
index 0000000..2d9a6e4
--- /dev/null
@@ -0,0 +1,19 @@
+/* CTF 1.8 */
+
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+typealias integer { size = 64; align = 8; signed = false; } := uint64_t;
+
+typedef uint32_t array_type[10];
+
+/* FAIL: type 'array_type' is already defined */
+typedef uint64_t array_type[10];
+
+
+trace {
+       major = 2;
+       minor = 1;
+       byte_order = le;
+       packet.header := struct {
+               uint32_t magic;
+       };
+};
diff --git a/tests/1.8/regression/metadata/fail/struct-inner-struct-undefined/metadata b/tests/1.8/regression/metadata/fail/struct-inner-struct-undefined/metadata
new file mode 100644 (file)
index 0000000..cfd24b2
--- /dev/null
@@ -0,0 +1,23 @@
+/* CTF 1.8 */
+
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+
+/* FAIL: structure 'dummy2' is not yet defined */
+struct dummy1 {
+       uint32_t field1;
+       struct dummy2 field2;
+};
+
+struct dummy2 {
+       uint32_t field3;
+};
+
+
+trace {
+       major = 2;
+       minor = 1;
+       byte_order = le;
+       packet.header := struct {
+               uint32_t magic;
+       };
+};
diff --git a/tests/1.8/regression/metadata/fail/struct-recursive/metadata b/tests/1.8/regression/metadata/fail/struct-recursive/metadata
new file mode 100644 (file)
index 0000000..067d70e
--- /dev/null
@@ -0,0 +1,19 @@
+/* CTF 1.8 */
+
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+
+/* FAIL: structure containing itself */
+struct dummy {
+  uint32_t field1;
+  struct dummy field2;
+};
+
+
+trace {
+       major = 2;
+       minor = 1;
+       byte_order = le;
+       packet.header := struct {
+               uint32_t magic;
+       };
+};
diff --git a/tests/1.8/regression/metadata/fail/struct-reserved-keywords/metadata b/tests/1.8/regression/metadata/fail/struct-reserved-keywords/metadata
new file mode 100644 (file)
index 0000000..4147c75
--- /dev/null
@@ -0,0 +1,21 @@
+/* CTF 1.8 */
+
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+
+/* FAIL: reserved keywords used as fields */
+struct dummy {
+  uint32_t valid;
+  uint32_t callsite;
+  uint32_t env;
+  uint32_t stream;
+};
+
+
+trace {
+       major = 2;
+       minor = 1;
+       byte_order = le;
+       packet.header := struct {
+               uint32_t magic;
+       };
+};
diff --git a/tests/1.8/regression/metadata/fail/typedef-redefinition/metadata b/tests/1.8/regression/metadata/fail/typedef-redefinition/metadata
new file mode 100644 (file)
index 0000000..c8c6ffb
--- /dev/null
@@ -0,0 +1,17 @@
+/* CTF 1.8 */
+
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+typealias integer { size = 64; align = 8; signed = false; } := uint64_t;
+
+/* Fail: duplicate typedef */
+typedef uint32_t myint;
+typedef uint64_t myint;
+
+trace {
+       major = 2;
+       minor = 1;
+       byte_order = le;
+       packet.header := struct {
+               uint32_t magic;
+       };
+};
diff --git a/tests/1.8/regression/metadata/fail/typedef-reserved-keyword/metadata b/tests/1.8/regression/metadata/fail/typedef-reserved-keyword/metadata
new file mode 100644 (file)
index 0000000..b504ca5
--- /dev/null
@@ -0,0 +1,15 @@
+/* CTF 1.8 */
+
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+
+/* Fail: cannot typedef a reserved keyword */
+typedef uint32_t int;
+
+trace {
+       major = 2;
+       minor = 1;
+       byte_order = le;
+       packet.header := struct {
+               uint32_t magic;
+       };
+};
diff --git a/tests/1.8/regression/metadata/pass/struct-align-larger/metadata b/tests/1.8/regression/metadata/pass/struct-align-larger/metadata
new file mode 100644 (file)
index 0000000..ccd510c
--- /dev/null
@@ -0,0 +1,20 @@
+/* CTF 1.8 */
+
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+
+/* PASS: struct should be aligned to 16 bits (follows the specified value). */
+struct dummy {
+  uint32_t field1;
+  uint32_t field2;
+  uint32_t field3;
+} align(16);
+
+
+trace {
+       major = 2;
+       minor = 1;
+       byte_order = le;
+       packet.header := struct {
+               uint32_t magic;
+       };
+};
diff --git a/tests/1.8/regression/metadata/pass/struct-align-smaller/metadata b/tests/1.8/regression/metadata/pass/struct-align-smaller/metadata
new file mode 100644 (file)
index 0000000..6c5e280
--- /dev/null
@@ -0,0 +1,23 @@
+/* CTF 1.8 */
+
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+
+/*
+ * PASS: struct should be aligned to 8 bits (fields' value is larger than the
+ * one specified by the struct).
+ */
+struct dummy {
+  uint32_t field1;
+  uint32_t field2;
+  uint32_t field3;
+} align(4);
+
+
+trace {
+       major = 2;
+       minor = 1;
+       byte_order = le;
+       packet.header := struct {
+               uint32_t magic;
+       };
+};
diff --git a/tests/1.8/regression/metadata/pass/struct-inner-struct/metadata b/tests/1.8/regression/metadata/pass/struct-inner-struct/metadata
new file mode 100644 (file)
index 0000000..8c5ce95
--- /dev/null
@@ -0,0 +1,23 @@
+/* CTF 1.8 */
+
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+
+struct dummy1 {
+       uint32_t field1;
+}
+
+/* PASS: Inner structure is defined earlier */
+struct dummy2 {
+       uint32_t field2;
+       struct dummy1 field3;
+};
+
+
+trace {
+       major = 2;
+       minor = 1;
+       byte_order = le;
+       packet.header := struct {
+               uint32_t magic;
+       };
+};
diff --git a/tests/1.8/regression/metadata/pass/struct-unamed-struct-as-field/metadata b/tests/1.8/regression/metadata/pass/struct-unamed-struct-as-field/metadata
new file mode 100644 (file)
index 0000000..042e802
--- /dev/null
@@ -0,0 +1,22 @@
+/* CTF 1.8 */
+
+typealias integer { size = 32; align = 8; signed = false; } := int;
+
+/* PASS: unnamed struct type used as field */
+struct dummy {
+       int normal_field;
+       struct {
+               int sub_field1;
+               int sub_field2;
+       } x;
+};
+
+
+trace {
+       major = 2;
+       minor = 1;
+       byte_order = le;
+       packet.header := struct {
+               int magic;
+       };
+};
diff --git a/tests/1.8/regression/metadata/pass/struct-underscores-in-fields/metadata b/tests/1.8/regression/metadata/pass/struct-underscores-in-fields/metadata
new file mode 100644 (file)
index 0000000..12e8c0d
--- /dev/null
@@ -0,0 +1,20 @@
+/* CTF 1.8 */
+
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+
+/* PASS: 'field' and '_field' should be different fields */
+struct dummy {
+  uint32_t field;
+  uint32_t _field;
+  uint32_t __field;
+};
+
+
+trace {
+       major = 2;
+       minor = 1;
+       byte_order = le;
+       packet.header := struct {
+               uint32_t magic;
+       };
+};
diff --git a/tests/1.8/regression/metadata/pass/typealias-reserved-keyword/metadata b/tests/1.8/regression/metadata/pass/typealias-reserved-keyword/metadata
new file mode 100644 (file)
index 0000000..925685d
--- /dev/null
@@ -0,0 +1,20 @@
+/* CTF 1.8 */
+
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+
+/* PASS: It's possible to typedef reserved keywords */
+typealias uint32_t := int;
+
+struct mystruct {
+       uint32_t field1;
+       int field2;
+};
+
+trace {
+       major = 2;
+       minor = 1;
+       byte_order = le;
+       packet.header := struct {
+               uint32_t magic;
+       };
+};
diff --git a/tests/1.8/regression/metadata/pass/typealias-simple/metadata b/tests/1.8/regression/metadata/pass/typealias-simple/metadata
new file mode 100644 (file)
index 0000000..847cd31
--- /dev/null
@@ -0,0 +1,20 @@
+/* CTF 1.8 */
+
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+
+/* PASS: straight typealias */
+typealias uint32_t := myint;
+
+struct mystruct {
+       uint32_t field1;
+       myint field2;
+};
+
+trace {
+       major = 2;
+       minor = 1;
+       byte_order = le;
+       packet.header := struct {
+               uint32_t magic;
+       };
+};
diff --git a/tests/1.8/regression/metadata/pass/typedef-simple/metadata b/tests/1.8/regression/metadata/pass/typedef-simple/metadata
new file mode 100644 (file)
index 0000000..45587ea
--- /dev/null
@@ -0,0 +1,15 @@
+/* CTF 1.8 */
+
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+
+/* PASS: straight typedef */
+typedef uint32_t myint;
+
+trace {
+       major = 2;
+       minor = 1;
+       byte_order = le;
+       packet.header := struct {
+               uint32_t magic;
+       };
+};
This page took 0.029632 seconds and 4 git commands to generate.