[vala/0.50] tests: Don't leak array if length is -1



commit 20e47159d0ea031539e1476a3ee03e79a54b63f4
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Thu Feb 4 10:55:31 2021 +0100

    tests: Don't leak array if length is -1
    
    Found by -fsanitize=address

 tests/basic-types/strings.vala |  3 +++
 tests/methods/bug723195.vala   |  3 +++
 tests/objects/bug751338.vala   | 10 ++++++++++
 tests/objects/methods.vala     |  5 +++++
 4 files changed, 21 insertions(+)
---
diff --git a/tests/basic-types/strings.vala b/tests/basic-types/strings.vala
index 219dde7c8..5185a9ec3 100644
--- a/tests/basic-types/strings.vala
+++ b/tests/basic-types/strings.vala
@@ -60,6 +60,9 @@ void test_string_joinv () {
 
        s = string.joinv ("-", null);
        assert (s == "");
+
+       // LeakSanitizer -fsanitize=address
+       sa.length = 3;
 }
 
 void test_string_replace () {
diff --git a/tests/methods/bug723195.vala b/tests/methods/bug723195.vala
index e0676cb29..c7dcf13ac 100644
--- a/tests/methods/bug723195.vala
+++ b/tests/methods/bug723195.vala
@@ -20,4 +20,7 @@ void main () {
        assert (string.joinv (":", a) == "foo:bar");
 
        assert (string.joinv (":", null) == "");
+
+       // LeakSanitizer -fsanitize=address
+       a.length = 4;
 }
diff --git a/tests/objects/bug751338.vala b/tests/objects/bug751338.vala
index 353071e9d..a766cca95 100644
--- a/tests/objects/bug751338.vala
+++ b/tests/objects/bug751338.vala
@@ -16,6 +16,11 @@ void main() {
        assert (strings[0] == "foo");
        assert (strings[1] == "bar");
 
+       // LeakSanitizer -fsanitize=address
+       if (strings.length == -1) {
+               strings.length = (int) strv_length (strings);
+       }
+
        f.set("strings", null);
        f.get("strings", out strings);
        assert(strings == null);
@@ -24,4 +29,9 @@ void main() {
        f.get("strings", out strings);
        assert (strings[0] == "foo");
        assert (strings[1] == "bar");
+
+       // LeakSanitizer -fsanitize=address
+       if (strings.length == -1) {
+               strings.length = (int) strv_length (strings);
+       }
 }
diff --git a/tests/objects/methods.vala b/tests/objects/methods.vala
index cfacc9c73..30043e26a 100644
--- a/tests/objects/methods.vala
+++ b/tests/objects/methods.vala
@@ -84,6 +84,11 @@ class Maman.SubBar : Bar {
                assert (array[1] == "world");
                assert (array.length < 0);
 
+               // LeakSanitizer -fsanitize=address
+               if (array.length == -1) {
+                       array.length = (int) strv_length (array);
+               }
+
                ClassTest.run_test ();
 
                return 0;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]