]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
tests: Check uchar[] and uint8[] compatibility
authorRico Tzschichholz <ricotz@ubuntu.com>
Sun, 9 Sep 2018 11:46:19 +0000 (13:46 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Tue, 6 Aug 2019 11:51:04 +0000 (13:51 +0200)
tests/Makefile.am
tests/basic-types/array-uint8-uchar-compat.vala [new file with mode: 0644]

index 98185b294e414f4558945aadf2d6a0bd61c21570..1c5789bad88b1ac45b0d9b511d6adc1b1b4e10ef 100644 (file)
@@ -20,6 +20,7 @@ TESTS = \
        basic-types/floats.vala \
        basic-types/strings.vala \
        basic-types/arrays.vala \
+       basic-types/array-uint8-uchar-compat.vala \
        basic-types/pointers.vala \
        basic-types/sizeof.vala \
        basic-types/garray.vala \
diff --git a/tests/basic-types/array-uint8-uchar-compat.vala b/tests/basic-types/array-uint8-uchar-compat.vala
new file mode 100644 (file)
index 0000000..91ac375
--- /dev/null
@@ -0,0 +1,50 @@
+[CCode (array_length = false)]
+uchar[] data;
+[CCode (array_length = false)]
+uint8[] data2;
+
+[CCode (array_length = false)]
+unowned uchar[] get_buffer () {
+       return data;
+}
+
+void change_buffer ([CCode (array_length = false)] uint8[] data) {
+       data[0] = 98;
+       data[1] = 97;
+       data[2] = 114;
+}
+
+[CCode (array_length = false)]
+unowned uint8[] get_buffer2 () {
+       return data2;
+}
+
+void change_buffer2 ([CCode (array_length = false)] uchar[] data) {
+       data[0] = 'b';
+       data[1] = 'a';
+       data[2] = 'z';
+}
+
+void main () {
+       {
+               data = { 'f', 'o', 'o', '\n' };
+               data2 = { 102, 111, 111, 10 };
+               assert ("foo\n" == (string) data);
+               change_buffer (get_buffer ());
+               assert ("bar\n" == (string) data);
+               change_buffer (get_buffer2 ());
+               assert ("bar\n" == (string) data2);
+               assert ((string) data == (string) data2);
+       }
+
+       {
+               data = { 'f', 'o', 'o', '\n' };
+               data2 = { 102, 111, 111, 10 };
+               assert ("foo\n" == (string) data2);
+               change_buffer2 (get_buffer2 ());
+               assert ("baz\n" == (string) data2);
+               change_buffer2 (get_buffer ());
+               assert ("baz\n" == (string) data);
+               assert ((string) data == (string) data2);
+       }
+}