Add dynamic array tracing tests C-0001
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Thu, 10 Sep 2020 21:32:50 +0000 (17:32 -0400)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Thu, 10 Sep 2020 21:32:50 +0000 (17:32 -0400)
The new tests are modified copies of static array tracing tests as a
dynamic array field can contain the same fields as a static array field.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
40 files changed:
tests/tracing/configs/succeed/dynamic-array/nested-5-uint8.yaml [new file with mode: 0644]
tests/tracing/configs/succeed/dynamic-array/of-double.yaml [new file with mode: 0644]
tests/tracing/configs/succeed/dynamic-array/of-static-array-of-double.yaml [new file with mode: 0644]
tests/tracing/configs/succeed/dynamic-array/of-static-array-of-str.yaml [new file with mode: 0644]
tests/tracing/configs/succeed/dynamic-array/of-static-array-of-uint8.yaml [new file with mode: 0644]
tests/tracing/configs/succeed/dynamic-array/of-str.yaml [new file with mode: 0644]
tests/tracing/configs/succeed/dynamic-array/of-uint3-middle.yaml [new file with mode: 0644]
tests/tracing/configs/succeed/dynamic-array/of-uint3.yaml [new file with mode: 0644]
tests/tracing/configs/succeed/dynamic-array/of-uint8.yaml [new file with mode: 0644]
tests/tracing/configs/succeed/dynamic-array/zero-len.yaml [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/nested-5-uint8.data.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/nested-5-uint8.metadata.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-double.data.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-double.metadata.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-static-array-of-double.data.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-static-array-of-double.metadata.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-static-array-of-str.data.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-static-array-of-str.metadata.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-static-array-of-uint8.data.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-static-array-of-uint8.metadata.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-str.data.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-str.metadata.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-uint3-middle.data.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-uint3-middle.metadata.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-uint3.data.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-uint3.metadata.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-uint8.data.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/of-uint8.metadata.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/zero-len.data.expect [new file with mode: 0644]
tests/tracing/expect/succeed/dynamic-array/zero-len.metadata.expect [new file with mode: 0644]
tests/tracing/src/succeed/dynamic-array/nested-5-uint8.c [new file with mode: 0644]
tests/tracing/src/succeed/dynamic-array/of-double.c [new file with mode: 0644]
tests/tracing/src/succeed/dynamic-array/of-static-array-of-double.c [new file with mode: 0644]
tests/tracing/src/succeed/dynamic-array/of-static-array-of-str.c [new file with mode: 0644]
tests/tracing/src/succeed/dynamic-array/of-static-array-of-uint8.c [new file with mode: 0644]
tests/tracing/src/succeed/dynamic-array/of-str.c [new file with mode: 0644]
tests/tracing/src/succeed/dynamic-array/of-uint3-middle.c [new file with mode: 0644]
tests/tracing/src/succeed/dynamic-array/of-uint3.c [new file with mode: 0644]
tests/tracing/src/succeed/dynamic-array/of-uint8.c [new file with mode: 0644]
tests/tracing/src/succeed/dynamic-array/zero-len.c [new file with mode: 0644]

diff --git a/tests/tracing/configs/succeed/dynamic-array/nested-5-uint8.yaml b/tests/tracing/configs/succeed/dynamic-array/nested-5-uint8.yaml
new file mode 100644 (file)
index 0000000..a9ef6e3
--- /dev/null
@@ -0,0 +1,53 @@
+# The MIT License (MIT)
+#
+# Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+--- !<tag:barectf.org,2020/3/config>
+target-byte-order: le
+trace:
+  type:
+    $include:
+      - stdint.yaml
+    stream-types:
+      default:
+        $is-default: yes
+        event-types:
+          ev:
+            payload-field-type:
+              class: struct
+              members:
+                - array:
+                    field-type:
+                      class: dynamic-array
+                      element-field-type:
+                        class: static-array
+                        length: 2
+                        element-field-type:
+                          class: static-array
+                          length: 2
+                          element-field-type:
+                            class: static-array
+                            length: 2
+                            element-field-type:
+                              class: static-array
+                              length: 2
+                              element-field-type: uint8
+...
diff --git a/tests/tracing/configs/succeed/dynamic-array/of-double.yaml b/tests/tracing/configs/succeed/dynamic-array/of-double.yaml
new file mode 100644 (file)
index 0000000..2f22929
--- /dev/null
@@ -0,0 +1,41 @@
+# The MIT License (MIT)
+#
+# Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+--- !<tag:barectf.org,2020/3/config>
+target-byte-order: le
+trace:
+  type:
+    $include:
+      - stdreal.yaml
+    stream-types:
+      default:
+        $is-default: yes
+        event-types:
+          ev:
+            payload-field-type:
+              class: struct
+              members:
+                - array:
+                    field-type:
+                      class: dynamic-array
+                      element-field-type: double
+...
diff --git a/tests/tracing/configs/succeed/dynamic-array/of-static-array-of-double.yaml b/tests/tracing/configs/succeed/dynamic-array/of-static-array-of-double.yaml
new file mode 100644 (file)
index 0000000..b482d30
--- /dev/null
@@ -0,0 +1,44 @@
+# The MIT License (MIT)
+#
+# Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+--- !<tag:barectf.org,2020/3/config>
+target-byte-order: le
+trace:
+  type:
+    $include:
+      - stdreal.yaml
+    stream-types:
+      default:
+        $is-default: yes
+        event-types:
+          ev:
+            payload-field-type:
+              class: struct
+              members:
+                - array:
+                    field-type:
+                      class: dynamic-array
+                      element-field-type:
+                        class: static-array
+                        length: 3
+                        element-field-type: double
+...
diff --git a/tests/tracing/configs/succeed/dynamic-array/of-static-array-of-str.yaml b/tests/tracing/configs/succeed/dynamic-array/of-static-array-of-str.yaml
new file mode 100644 (file)
index 0000000..1b3b408
--- /dev/null
@@ -0,0 +1,44 @@
+# The MIT License (MIT)
+#
+# Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+--- !<tag:barectf.org,2020/3/config>
+target-byte-order: le
+trace:
+  type:
+    $include:
+      - stdmisc.yaml
+    stream-types:
+      default:
+        $is-default: yes
+        event-types:
+          ev:
+            payload-field-type:
+              class: struct
+              members:
+                - array:
+                    field-type:
+                      class: dynamic-array
+                      element-field-type:
+                        class: static-array
+                        length: 3
+                        element-field-type: str
+...
diff --git a/tests/tracing/configs/succeed/dynamic-array/of-static-array-of-uint8.yaml b/tests/tracing/configs/succeed/dynamic-array/of-static-array-of-uint8.yaml
new file mode 100644 (file)
index 0000000..f8e5d74
--- /dev/null
@@ -0,0 +1,44 @@
+# The MIT License (MIT)
+#
+# Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+--- !<tag:barectf.org,2020/3/config>
+target-byte-order: le
+trace:
+  type:
+    $include:
+      - stdint.yaml
+    stream-types:
+      default:
+        $is-default: yes
+        event-types:
+          ev:
+            payload-field-type:
+              class: struct
+              members:
+                - array:
+                    field-type:
+                      class: dynamic-array
+                      element-field-type:
+                        class: static-array
+                        length: 3
+                        element-field-type: uint8
+...
diff --git a/tests/tracing/configs/succeed/dynamic-array/of-str.yaml b/tests/tracing/configs/succeed/dynamic-array/of-str.yaml
new file mode 100644 (file)
index 0000000..b784457
--- /dev/null
@@ -0,0 +1,41 @@
+# The MIT License (MIT)
+#
+# Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+--- !<tag:barectf.org,2020/3/config>
+target-byte-order: le
+trace:
+  type:
+    $include:
+      - stdmisc.yaml
+    stream-types:
+      default:
+        $is-default: yes
+        event-types:
+          ev:
+            payload-field-type:
+              class: struct
+              members:
+                - array:
+                    field-type:
+                      class: dynamic-array
+                      element-field-type: str
+...
diff --git a/tests/tracing/configs/succeed/dynamic-array/of-uint3-middle.yaml b/tests/tracing/configs/succeed/dynamic-array/of-uint3-middle.yaml
new file mode 100644 (file)
index 0000000..f920d82
--- /dev/null
@@ -0,0 +1,46 @@
+# The MIT License (MIT)
+#
+# Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+--- !<tag:barectf.org,2020/3/config>
+target-byte-order: le
+trace:
+  type:
+    $include:
+      - stdint.yaml
+      - stdmisc.yaml
+    stream-types:
+      default:
+        $is-default: yes
+        event-types:
+          ev:
+            payload-field-type:
+              class: struct
+              members:
+                - before: uint32
+                - array:
+                    field-type:
+                      class: dynamic-array
+                      element-field-type:
+                        class: uint
+                        size: 3
+                - after: str
+...
diff --git a/tests/tracing/configs/succeed/dynamic-array/of-uint3.yaml b/tests/tracing/configs/succeed/dynamic-array/of-uint3.yaml
new file mode 100644 (file)
index 0000000..fc3c399
--- /dev/null
@@ -0,0 +1,43 @@
+# The MIT License (MIT)
+#
+# Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+--- !<tag:barectf.org,2020/3/config>
+target-byte-order: le
+trace:
+  type:
+    $include:
+      - stdint.yaml
+    stream-types:
+      default:
+        $is-default: yes
+        event-types:
+          ev:
+            payload-field-type:
+              class: struct
+              members:
+                - array:
+                    field-type:
+                      class: dynamic-array
+                      element-field-type:
+                        class: uint
+                        size: 3
+...
diff --git a/tests/tracing/configs/succeed/dynamic-array/of-uint8.yaml b/tests/tracing/configs/succeed/dynamic-array/of-uint8.yaml
new file mode 100644 (file)
index 0000000..4f6d76a
--- /dev/null
@@ -0,0 +1,41 @@
+# The MIT License (MIT)
+#
+# Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+--- !<tag:barectf.org,2020/3/config>
+target-byte-order: le
+trace:
+  type:
+    $include:
+      - stdint.yaml
+    stream-types:
+      default:
+        $is-default: yes
+        event-types:
+          ev:
+            payload-field-type:
+              class: struct
+              members:
+                - array:
+                    field-type:
+                      class: dynamic-array
+                      element-field-type: uint8
+...
diff --git a/tests/tracing/configs/succeed/dynamic-array/zero-len.yaml b/tests/tracing/configs/succeed/dynamic-array/zero-len.yaml
new file mode 100644 (file)
index 0000000..c7874d8
--- /dev/null
@@ -0,0 +1,46 @@
+# The MIT License (MIT)
+#
+# Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+--- !<tag:barectf.org,2020/3/config>
+target-byte-order: le
+trace:
+  type:
+    $include:
+      - stdint.yaml
+    stream-types:
+      default:
+        $is-default: yes
+        event-types:
+          ev:
+            payload-field-type:
+              class: struct
+              members:
+                - before: uint8
+                - array:
+                    field-type:
+                      class: dynamic-array
+                      element-field-type:
+                        class: uint
+                        size: 8
+                        alignment: 64
+                - after: uint8
+...
diff --git a/tests/tracing/expect/succeed/dynamic-array/nested-5-uint8.data.expect b/tests/tracing/expect/succeed/dynamic-array/nested-5-uint8.data.expect
new file mode 100644 (file)
index 0000000..24c17df
Binary files /dev/null and b/tests/tracing/expect/succeed/dynamic-array/nested-5-uint8.data.expect differ
diff --git a/tests/tracing/expect/succeed/dynamic-array/nested-5-uint8.metadata.expect b/tests/tracing/expect/succeed/dynamic-array/nested-5-uint8.metadata.expect
new file mode 100644 (file)
index 0000000..7ac05b2
--- /dev/null
@@ -0,0 +1,110 @@
+/* CTF 1.8 */
+
+/*
+ * The MIT License (MIT)
+ *
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ *
+ *
+ * For more details, see <https://barectf.org/>.
+ */
+
+trace {
+       major = 1;
+       minor = 8;
+       byte_order = le;
+       packet.header := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } magic;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } stream_id;
+       } align(8);
+};
+
+env {
+       domain = "bare";
+       tracer_name = "barectf";
+};
+
+/* Stream type `default` */
+stream {
+       id = 0;
+       packet.context := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } packet_size;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } content_size;
+       } align(8);
+       event.header := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } id;
+       } align(8);
+};
+
+event {
+       stream_id = 0;
+       id = 0;
+       name = "ev";
+       fields := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } __array_len;
+               integer {
+                       signed = false;
+                       size = 8;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } array[__array_len][2][2][2][2];
+       } align(1);
+};
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-double.data.expect b/tests/tracing/expect/succeed/dynamic-array/of-double.data.expect
new file mode 100644 (file)
index 0000000..f3a676a
Binary files /dev/null and b/tests/tracing/expect/succeed/dynamic-array/of-double.data.expect differ
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-double.metadata.expect b/tests/tracing/expect/succeed/dynamic-array/of-double.metadata.expect
new file mode 100644 (file)
index 0000000..bcaecdc
--- /dev/null
@@ -0,0 +1,109 @@
+/* CTF 1.8 */
+
+/*
+ * The MIT License (MIT)
+ *
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ *
+ *
+ * For more details, see <https://barectf.org/>.
+ */
+
+trace {
+       major = 1;
+       minor = 8;
+       byte_order = le;
+       packet.header := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } magic;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } stream_id;
+       } align(8);
+};
+
+env {
+       domain = "bare";
+       tracer_name = "barectf";
+};
+
+/* Stream type `default` */
+stream {
+       id = 0;
+       packet.context := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } packet_size;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } content_size;
+       } align(8);
+       event.header := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } id;
+       } align(8);
+};
+
+event {
+       stream_id = 0;
+       id = 0;
+       name = "ev";
+       fields := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } __array_len;
+               floating_point {
+                       mant_dig = 53;
+                       exp_dig = 11;
+                       align = 64;
+                       byte_order = native;
+               } array[__array_len];
+       } align(1);
+};
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-double.data.expect b/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-double.data.expect
new file mode 100644 (file)
index 0000000..eb1afbb
Binary files /dev/null and b/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-double.data.expect differ
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-double.metadata.expect b/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-double.metadata.expect
new file mode 100644 (file)
index 0000000..b3a4760
--- /dev/null
@@ -0,0 +1,109 @@
+/* CTF 1.8 */
+
+/*
+ * The MIT License (MIT)
+ *
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ *
+ *
+ * For more details, see <https://barectf.org/>.
+ */
+
+trace {
+       major = 1;
+       minor = 8;
+       byte_order = le;
+       packet.header := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } magic;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } stream_id;
+       } align(8);
+};
+
+env {
+       domain = "bare";
+       tracer_name = "barectf";
+};
+
+/* Stream type `default` */
+stream {
+       id = 0;
+       packet.context := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } packet_size;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } content_size;
+       } align(8);
+       event.header := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } id;
+       } align(8);
+};
+
+event {
+       stream_id = 0;
+       id = 0;
+       name = "ev";
+       fields := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } __array_len;
+               floating_point {
+                       mant_dig = 53;
+                       exp_dig = 11;
+                       align = 64;
+                       byte_order = native;
+               } array[__array_len][3];
+       } align(1);
+};
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-str.data.expect b/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-str.data.expect
new file mode 100644 (file)
index 0000000..18fcf61
Binary files /dev/null and b/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-str.data.expect differ
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-str.metadata.expect b/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-str.metadata.expect
new file mode 100644 (file)
index 0000000..6af1bd1
--- /dev/null
@@ -0,0 +1,106 @@
+/* CTF 1.8 */
+
+/*
+ * The MIT License (MIT)
+ *
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ *
+ *
+ * For more details, see <https://barectf.org/>.
+ */
+
+trace {
+       major = 1;
+       minor = 8;
+       byte_order = le;
+       packet.header := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } magic;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } stream_id;
+       } align(8);
+};
+
+env {
+       domain = "bare";
+       tracer_name = "barectf";
+};
+
+/* Stream type `default` */
+stream {
+       id = 0;
+       packet.context := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } packet_size;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } content_size;
+       } align(8);
+       event.header := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } id;
+       } align(8);
+};
+
+event {
+       stream_id = 0;
+       id = 0;
+       name = "ev";
+       fields := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } __array_len;
+               string {
+                       encoding = UTF8;
+               } array[__array_len][3];
+       } align(1);
+};
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-uint8.data.expect b/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-uint8.data.expect
new file mode 100644 (file)
index 0000000..666db48
Binary files /dev/null and b/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-uint8.data.expect differ
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-uint8.metadata.expect b/tests/tracing/expect/succeed/dynamic-array/of-static-array-of-uint8.metadata.expect
new file mode 100644 (file)
index 0000000..b1b0685
--- /dev/null
@@ -0,0 +1,110 @@
+/* CTF 1.8 */
+
+/*
+ * The MIT License (MIT)
+ *
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ *
+ *
+ * For more details, see <https://barectf.org/>.
+ */
+
+trace {
+       major = 1;
+       minor = 8;
+       byte_order = le;
+       packet.header := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } magic;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } stream_id;
+       } align(8);
+};
+
+env {
+       domain = "bare";
+       tracer_name = "barectf";
+};
+
+/* Stream type `default` */
+stream {
+       id = 0;
+       packet.context := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } packet_size;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } content_size;
+       } align(8);
+       event.header := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } id;
+       } align(8);
+};
+
+event {
+       stream_id = 0;
+       id = 0;
+       name = "ev";
+       fields := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } __array_len;
+               integer {
+                       signed = false;
+                       size = 8;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } array[__array_len][3];
+       } align(1);
+};
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-str.data.expect b/tests/tracing/expect/succeed/dynamic-array/of-str.data.expect
new file mode 100644 (file)
index 0000000..04d3dfe
Binary files /dev/null and b/tests/tracing/expect/succeed/dynamic-array/of-str.data.expect differ
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-str.metadata.expect b/tests/tracing/expect/succeed/dynamic-array/of-str.metadata.expect
new file mode 100644 (file)
index 0000000..345d7ce
--- /dev/null
@@ -0,0 +1,106 @@
+/* CTF 1.8 */
+
+/*
+ * The MIT License (MIT)
+ *
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ *
+ *
+ * For more details, see <https://barectf.org/>.
+ */
+
+trace {
+       major = 1;
+       minor = 8;
+       byte_order = le;
+       packet.header := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } magic;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } stream_id;
+       } align(8);
+};
+
+env {
+       domain = "bare";
+       tracer_name = "barectf";
+};
+
+/* Stream type `default` */
+stream {
+       id = 0;
+       packet.context := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } packet_size;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } content_size;
+       } align(8);
+       event.header := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } id;
+       } align(8);
+};
+
+event {
+       stream_id = 0;
+       id = 0;
+       name = "ev";
+       fields := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } __array_len;
+               string {
+                       encoding = UTF8;
+               } array[__array_len];
+       } align(1);
+};
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-uint3-middle.data.expect b/tests/tracing/expect/succeed/dynamic-array/of-uint3-middle.data.expect
new file mode 100644 (file)
index 0000000..4748166
Binary files /dev/null and b/tests/tracing/expect/succeed/dynamic-array/of-uint3-middle.data.expect differ
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-uint3-middle.metadata.expect b/tests/tracing/expect/succeed/dynamic-array/of-uint3-middle.metadata.expect
new file mode 100644 (file)
index 0000000..8b1f178
--- /dev/null
@@ -0,0 +1,120 @@
+/* CTF 1.8 */
+
+/*
+ * The MIT License (MIT)
+ *
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ *
+ *
+ * For more details, see <https://barectf.org/>.
+ */
+
+trace {
+       major = 1;
+       minor = 8;
+       byte_order = le;
+       packet.header := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } magic;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } stream_id;
+       } align(8);
+};
+
+env {
+       domain = "bare";
+       tracer_name = "barectf";
+};
+
+/* Stream type `default` */
+stream {
+       id = 0;
+       packet.context := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } packet_size;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } content_size;
+       } align(8);
+       event.header := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } id;
+       } align(8);
+};
+
+event {
+       stream_id = 0;
+       id = 0;
+       name = "ev";
+       fields := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 32;
+                       byte_order = native;
+                       base = 10;
+               } before;
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } __array_len;
+               integer {
+                       signed = false;
+                       size = 3;
+                       align = 1;
+                       byte_order = native;
+                       base = 10;
+               } array[__array_len];
+               string {
+                       encoding = UTF8;
+               } after;
+       } align(1);
+};
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-uint3.data.expect b/tests/tracing/expect/succeed/dynamic-array/of-uint3.data.expect
new file mode 100644 (file)
index 0000000..3a1a314
Binary files /dev/null and b/tests/tracing/expect/succeed/dynamic-array/of-uint3.data.expect differ
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-uint3.metadata.expect b/tests/tracing/expect/succeed/dynamic-array/of-uint3.metadata.expect
new file mode 100644 (file)
index 0000000..c804e6d
--- /dev/null
@@ -0,0 +1,110 @@
+/* CTF 1.8 */
+
+/*
+ * The MIT License (MIT)
+ *
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ *
+ *
+ * For more details, see <https://barectf.org/>.
+ */
+
+trace {
+       major = 1;
+       minor = 8;
+       byte_order = le;
+       packet.header := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } magic;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } stream_id;
+       } align(8);
+};
+
+env {
+       domain = "bare";
+       tracer_name = "barectf";
+};
+
+/* Stream type `default` */
+stream {
+       id = 0;
+       packet.context := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } packet_size;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } content_size;
+       } align(8);
+       event.header := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } id;
+       } align(8);
+};
+
+event {
+       stream_id = 0;
+       id = 0;
+       name = "ev";
+       fields := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } __array_len;
+               integer {
+                       signed = false;
+                       size = 3;
+                       align = 1;
+                       byte_order = native;
+                       base = 10;
+               } array[__array_len];
+       } align(1);
+};
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-uint8.data.expect b/tests/tracing/expect/succeed/dynamic-array/of-uint8.data.expect
new file mode 100644 (file)
index 0000000..2b856bf
Binary files /dev/null and b/tests/tracing/expect/succeed/dynamic-array/of-uint8.data.expect differ
diff --git a/tests/tracing/expect/succeed/dynamic-array/of-uint8.metadata.expect b/tests/tracing/expect/succeed/dynamic-array/of-uint8.metadata.expect
new file mode 100644 (file)
index 0000000..ad2a593
--- /dev/null
@@ -0,0 +1,110 @@
+/* CTF 1.8 */
+
+/*
+ * The MIT License (MIT)
+ *
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ *
+ *
+ * For more details, see <https://barectf.org/>.
+ */
+
+trace {
+       major = 1;
+       minor = 8;
+       byte_order = le;
+       packet.header := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } magic;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } stream_id;
+       } align(8);
+};
+
+env {
+       domain = "bare";
+       tracer_name = "barectf";
+};
+
+/* Stream type `default` */
+stream {
+       id = 0;
+       packet.context := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } packet_size;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } content_size;
+       } align(8);
+       event.header := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } id;
+       } align(8);
+};
+
+event {
+       stream_id = 0;
+       id = 0;
+       name = "ev";
+       fields := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } __array_len;
+               integer {
+                       signed = false;
+                       size = 8;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } array[__array_len];
+       } align(1);
+};
diff --git a/tests/tracing/expect/succeed/dynamic-array/zero-len.data.expect b/tests/tracing/expect/succeed/dynamic-array/zero-len.data.expect
new file mode 100644 (file)
index 0000000..338d48c
Binary files /dev/null and b/tests/tracing/expect/succeed/dynamic-array/zero-len.data.expect differ
diff --git a/tests/tracing/expect/succeed/dynamic-array/zero-len.metadata.expect b/tests/tracing/expect/succeed/dynamic-array/zero-len.metadata.expect
new file mode 100644 (file)
index 0000000..2386313
--- /dev/null
@@ -0,0 +1,124 @@
+/* CTF 1.8 */
+
+/*
+ * The MIT License (MIT)
+ *
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ *
+ *
+ * For more details, see <https://barectf.org/>.
+ */
+
+trace {
+       major = 1;
+       minor = 8;
+       byte_order = le;
+       packet.header := struct {
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } magic;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } stream_id;
+       } align(8);
+};
+
+env {
+       domain = "bare";
+       tracer_name = "barectf";
+};
+
+/* Stream type `default` */
+stream {
+       id = 0;
+       packet.context := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } packet_size;
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } content_size;
+       } align(8);
+       event.header := struct {
+               integer {
+                       signed = false;
+                       size = 64;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } id;
+       } align(8);
+};
+
+event {
+       stream_id = 0;
+       id = 0;
+       name = "ev";
+       fields := struct {
+               integer {
+                       signed = false;
+                       size = 8;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } before;
+               integer {
+                       signed = false;
+                       size = 32;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } __array_len;
+               integer {
+                       signed = false;
+                       size = 8;
+                       align = 64;
+                       byte_order = native;
+                       base = 10;
+               } array[__array_len];
+               integer {
+                       signed = false;
+                       size = 8;
+                       align = 8;
+                       byte_order = native;
+                       base = 10;
+               } after;
+       } align(1);
+};
diff --git a/tests/tracing/src/succeed/dynamic-array/nested-5-uint8.c b/tests/tracing/src/succeed/dynamic-array/nested-5-uint8.c
new file mode 100644 (file)
index 0000000..a8023f2
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <assert.h>
+#include <stdint.h>
+
+#include "test-platform.h"
+#include "barectf.h"
+
+int main()
+{
+       struct test_platform_ctx *platform_ctx;
+       const uint8_t subsubsubsubarray1[] = {1, 2};
+       const uint8_t subsubsubsubarray2[] = {3, 4};
+       const uint8_t subsubsubsubarray3[] = {5, 6};
+       const uint8_t subsubsubsubarray4[] = {7, 8};
+       const uint8_t subsubsubsubarray5[] = {9, 10};
+       const uint8_t subsubsubsubarray6[] = {11, 12};
+       const uint8_t subsubsubsubarray7[] = {13, 14};
+       const uint8_t subsubsubsubarray8[] = {15, 16};
+       const uint8_t subsubsubsubarray9[] = {17, 18};
+       const uint8_t subsubsubsubarray10[] = {19, 20};
+       const uint8_t subsubsubsubarray11[] = {21, 22};
+       const uint8_t subsubsubsubarray12[] = {23, 24};
+       const uint8_t subsubsubsubarray13[] = {25, 26};
+       const uint8_t subsubsubsubarray14[] = {27, 28};
+       const uint8_t subsubsubsubarray15[] = {29, 30};
+       const uint8_t subsubsubsubarray16[] = {31, 32};
+       const uint8_t * const subsubsubarray1[] = {subsubsubsubarray1, subsubsubsubarray2};
+       const uint8_t * const subsubsubarray2[] = {subsubsubsubarray3, subsubsubsubarray4};
+       const uint8_t * const subsubsubarray3[] = {subsubsubsubarray5, subsubsubsubarray6};
+       const uint8_t * const subsubsubarray4[] = {subsubsubsubarray7, subsubsubsubarray8};
+       const uint8_t * const subsubsubarray5[] = {subsubsubsubarray9, subsubsubsubarray10};
+       const uint8_t * const subsubsubarray6[] = {subsubsubsubarray11, subsubsubsubarray12};
+       const uint8_t * const subsubsubarray7[] = {subsubsubsubarray13, subsubsubsubarray14};
+       const uint8_t * const subsubsubarray8[] = {subsubsubsubarray15, subsubsubsubarray16};
+       const uint8_t * const * const subsubarray1[] = {subsubsubarray1, subsubsubarray2};
+       const uint8_t * const * const subsubarray2[] = {subsubsubarray3, subsubsubarray4};
+       const uint8_t * const * const subsubarray3[] = {subsubsubarray5, subsubsubarray6};
+       const uint8_t * const * const subsubarray4[] = {subsubsubarray7, subsubsubarray8};
+       const uint8_t * const * const * const subarray1[] = {subsubarray1, subsubarray2};
+       const uint8_t * const * const * const subarray2[] = {subsubarray3, subsubarray4};
+       const uint8_t * const * const * const subarray3[] = {subsubarray1, subsubarray4};
+       const uint8_t * const * const * const * const array[] = {subarray1, subarray2, subarray3};
+
+       platform_ctx = test_platform_init(512);
+       assert(platform_ctx);
+       barectf_trace_ev(test_platform_barectf_ctx(platform_ctx), 3, array);
+       test_platform_fini(platform_ctx);
+       return 0;
+}
diff --git a/tests/tracing/src/succeed/dynamic-array/of-double.c b/tests/tracing/src/succeed/dynamic-array/of-double.c
new file mode 100644 (file)
index 0000000..0a0ff18
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <assert.h>
+
+#include "test-platform.h"
+#include "barectf.h"
+
+int main()
+{
+       struct test_platform_ctx *platform_ctx;
+       const double array[] = {3.14, 6.62, 299792458., 0.2229};
+
+       platform_ctx = test_platform_init(512);
+       assert(platform_ctx);
+       barectf_trace_ev(test_platform_barectf_ctx(platform_ctx), 4, array);
+       test_platform_fini(platform_ctx);
+       return 0;
+}
diff --git a/tests/tracing/src/succeed/dynamic-array/of-static-array-of-double.c b/tests/tracing/src/succeed/dynamic-array/of-static-array-of-double.c
new file mode 100644 (file)
index 0000000..19364f2
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <assert.h>
+
+#include "test-platform.h"
+#include "barectf.h"
+
+int main()
+{
+       struct test_platform_ctx *platform_ctx;
+       const double subarray1[] = {-17.5, 15.48, 1001.};
+       const double subarray2[] = {.1534, 555.555, 1e9};
+       const double * const array[] = {subarray1, subarray2, subarray1};
+
+       platform_ctx = test_platform_init(512);
+       assert(platform_ctx);
+       barectf_trace_ev(test_platform_barectf_ctx(platform_ctx), 3, array);
+       test_platform_fini(platform_ctx);
+       return 0;
+}
diff --git a/tests/tracing/src/succeed/dynamic-array/of-static-array-of-str.c b/tests/tracing/src/succeed/dynamic-array/of-static-array-of-str.c
new file mode 100644 (file)
index 0000000..51c16df
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <assert.h>
+
+#include "test-platform.h"
+#include "barectf.h"
+
+int main()
+{
+       struct test_platform_ctx *platform_ctx;
+       const char * const str1[] = {"Officia", "sit", "labore"};
+       const char * const str2[] = {"Excepteur", "labore", "non"};
+       const char * const * const array[] = {str1, str2};
+
+       platform_ctx = test_platform_init(512);
+       assert(platform_ctx);
+       barectf_trace_ev(test_platform_barectf_ctx(platform_ctx), 2, array);
+       test_platform_fini(platform_ctx);
+       return 0;
+}
diff --git a/tests/tracing/src/succeed/dynamic-array/of-static-array-of-uint8.c b/tests/tracing/src/succeed/dynamic-array/of-static-array-of-uint8.c
new file mode 100644 (file)
index 0000000..6d0aadc
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <assert.h>
+#include <stdint.h>
+
+#include "test-platform.h"
+#include "barectf.h"
+
+int main()
+{
+       struct test_platform_ctx *platform_ctx;
+       const uint8_t subarray1[] = {1, 2, 3};
+       const uint8_t subarray2[] = {4, 5, 6};
+       const uint8_t * const array[] = {subarray1, subarray2, subarray1};
+
+       platform_ctx = test_platform_init(512);
+       assert(platform_ctx);
+       barectf_trace_ev(test_platform_barectf_ctx(platform_ctx), 3, array);
+       test_platform_fini(platform_ctx);
+       return 0;
+}
diff --git a/tests/tracing/src/succeed/dynamic-array/of-str.c b/tests/tracing/src/succeed/dynamic-array/of-str.c
new file mode 100644 (file)
index 0000000..97e94a7
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <assert.h>
+
+#include "test-platform.h"
+#include "barectf.h"
+
+int main()
+{
+       struct test_platform_ctx *platform_ctx;
+       const char * const array[] = {"Lorem", "ipsum", "quis"};
+
+       platform_ctx = test_platform_init(512);
+       assert(platform_ctx);
+       barectf_trace_ev(test_platform_barectf_ctx(platform_ctx), 3, array);
+       test_platform_fini(platform_ctx);
+       return 0;
+}
diff --git a/tests/tracing/src/succeed/dynamic-array/of-uint3-middle.c b/tests/tracing/src/succeed/dynamic-array/of-uint3-middle.c
new file mode 100644 (file)
index 0000000..166f5d9
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <assert.h>
+#include <stdint.h>
+
+#include "test-platform.h"
+#include "barectf.h"
+
+int main()
+{
+       struct test_platform_ctx *platform_ctx;
+       const uint8_t array[] = {7, 5, 3, 2, 1};
+
+       platform_ctx = test_platform_init(512);
+       assert(platform_ctx);
+       barectf_trace_ev(test_platform_barectf_ctx(platform_ctx), 123456,
+               5, array, "hello!");
+       test_platform_fini(platform_ctx);
+       return 0;
+}
diff --git a/tests/tracing/src/succeed/dynamic-array/of-uint3.c b/tests/tracing/src/succeed/dynamic-array/of-uint3.c
new file mode 100644 (file)
index 0000000..f9713eb
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <assert.h>
+#include <stdint.h>
+
+#include "test-platform.h"
+#include "barectf.h"
+
+int main()
+{
+       struct test_platform_ctx *platform_ctx;
+       const uint8_t array[] = {7, 5, 3, 2, 1, 0, 4};
+
+       platform_ctx = test_platform_init(512);
+       assert(platform_ctx);
+       barectf_trace_ev(test_platform_barectf_ctx(platform_ctx), 7, array);
+       test_platform_fini(platform_ctx);
+       return 0;
+}
diff --git a/tests/tracing/src/succeed/dynamic-array/of-uint8.c b/tests/tracing/src/succeed/dynamic-array/of-uint8.c
new file mode 100644 (file)
index 0000000..5ffa3b3
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <assert.h>
+#include <stdint.h>
+
+#include "test-platform.h"
+#include "barectf.h"
+
+int main()
+{
+       struct test_platform_ctx *platform_ctx;
+       const uint8_t array[] = {1, 1, 2, 3, 5, 8, 13};
+
+       platform_ctx = test_platform_init(512);
+       assert(platform_ctx);
+       barectf_trace_ev(test_platform_barectf_ctx(platform_ctx), 7, array);
+       test_platform_fini(platform_ctx);
+       return 0;
+}
diff --git a/tests/tracing/src/succeed/dynamic-array/zero-len.c b/tests/tracing/src/succeed/dynamic-array/zero-len.c
new file mode 100644 (file)
index 0000000..058ea88
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 Philippe Proulx <pproulx@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <assert.h>
+#include <stdlib.h>
+
+#include "test-platform.h"
+#include "barectf.h"
+
+int main()
+{
+       struct test_platform_ctx *platform_ctx;
+
+       platform_ctx = test_platform_init(512);
+       assert(platform_ctx);
+       barectf_trace_ev(test_platform_barectf_ctx(platform_ctx), 23,
+               0, NULL, 177);
+       test_platform_fini(platform_ctx);
+       return 0;
+}
This page took 0.075005 seconds and 4 git commands to generate.