Fix coverity issues 24/228424/1 accepted/tizen/5.5/unified/20200324.134505 submit/tizen_5.5/20200323.054417
authorBoram Bae <boram21.bae@samsung.com>
Mon, 23 Mar 2020 04:58:36 +0000 (13:58 +0900)
committerBoram Bae <boram21.bae@samsung.com>
Mon, 23 Mar 2020 04:58:36 +0000 (13:58 +0900)
Change-Id: I234a51bb32ba6f2c105d8227acb519dc05e19182
Signed-off-by: Boram Bae <boram21.bae@samsung.com>
src/sensorctl/test_bench.h
src/sensorctl/testcase/sensor_listener.cpp

index 9f51622..3da2fd0 100644 (file)
@@ -110,6 +110,23 @@ public: \
 } test_case_##group##_##name##_instance; \
 bool test_case_##group##_##name::test(void)
 
+template<typename T>
+class Deleter {
+public:
+       T*& get()
+       {
+               return storage;
+       }
+    ~Deleter() {
+        if(storage) {
+            free(storage);
+        }
+    }
+
+private:
+       T *storage{nullptr};
+};
+
 /*
  * Declaration of test_option
  */
index e646594..724c09c 100644 (file)
@@ -29,6 +29,8 @@
 #include "mainloop.h"
 #include "test_bench.h"
 
+
+typedef Deleter<char> Deleter_char;
 static bool called = false;
 static int count = 0;
 
@@ -369,7 +371,7 @@ TESTCASE(sensor_listener, set_get_attribute_string_1)
        int err = 0;
        bool ret = true;
        int handle = 0;
-       char *value = NULL;
+       Deleter_char value;
        int len = 0;
        sensor_t sensor = NULL;
        int attr = 1;
@@ -381,15 +383,14 @@ TESTCASE(sensor_listener, set_get_attribute_string_1)
        err = sensord_set_attribute_str(handle, attr, TEST_STRING, TEST_STRING_LEN);
        ASSERT_EQ(err, 0);
 
-       err = sensord_get_attribute_str(handle, attr, &value, &len);
+       err = sensord_get_attribute_str(handle, attr, &(value.get()), &len);
        ASSERT_EQ(err, 0);
        ASSERT_EQ(len, TEST_STRING_LEN);
-       ASSERT_EQ(strncmp(value, TEST_STRING, len), 0);
+       ASSERT_EQ(strncmp(value.get(), TEST_STRING, len), 0);
 
        ret = sensord_disconnect(handle);
        ASSERT_TRUE(ret);
 
-       free(value);
        return true;
 }
 
@@ -399,7 +400,7 @@ TESTCASE(sensor_listener, set_get_attribute_string_2)
        int err = 0;
        bool ret = true;
        int handle = 0;
-       char *value = NULL;
+       Deleter_char value;
        int len = 0;
        sensor_t sensor = NULL;
        int attr = 1;
@@ -413,14 +414,13 @@ TESTCASE(sensor_listener, set_get_attribute_string_2)
        err = sensord_set_attribute_str(handle, attr, attr_value, BUF_SIZE);
        ASSERT_EQ(err, 0);
 
-       err = sensord_get_attribute_str(handle, attr, &value, &len);
+       err = sensord_get_attribute_str(handle, attr, &(value.get()), &len);
        ASSERT_EQ(err, 0);
        ASSERT_EQ(len, BUF_SIZE);
 
        ret = sensord_disconnect(handle);
        ASSERT_TRUE(ret);
 
-       free(value);
        return true;
 }
 
@@ -429,7 +429,7 @@ TESTCASE(sensor_listener, set_get_attribute_string_3)
        int err = 0;
        bool ret = true;
        int handle = 0;
-       char *value = NULL;
+       Deleter_char value;
        int len = 0;
        sensor_t sensor = NULL;
        int attr = 1;
@@ -442,16 +442,15 @@ TESTCASE(sensor_listener, set_get_attribute_string_3)
        ASSERT_EQ(err, 0);
 
        for (int i = 0; i < 10; i++) {
-               err = sensord_get_attribute_str(handle, attr, &value, &len);
+               err = sensord_get_attribute_str(handle, attr, &(value.get()), &len);
                ASSERT_EQ(err, 0);
                ASSERT_EQ(len, TEST_STRING_LEN);
-               ASSERT_EQ(strncmp(value, TEST_STRING, len), 0);
+               ASSERT_EQ(strncmp(value.get(), TEST_STRING, len), 0);
        }
 
        ret = sensord_disconnect(handle);
        ASSERT_TRUE(ret);
 
-       free(value);
        return true;
 }
 
@@ -460,7 +459,8 @@ TESTCASE(sensor_listener, set_get_get_attribute_string_1)
        int err;
        bool ret;
        int handle;
-       char *value = NULL;
+       Deleter_char value;
+       Deleter_char value2;
        int len = 0;
        sensor_t sensor;
        int attr = 1;
@@ -472,17 +472,14 @@ TESTCASE(sensor_listener, set_get_get_attribute_string_1)
        err = sensord_set_attribute_str(handle, attr, TEST_STRING, TEST_STRING_LEN);
        ASSERT_EQ(err, 0);
 
-       err = sensord_get_attribute_str(handle, attr, &value, &len);
+       err = sensord_get_attribute_str(handle, attr, &(value.get()), &len);
        ASSERT_EQ(err, 0);
        ASSERT_EQ(len, TEST_STRING_LEN);
-       ASSERT_EQ(strncmp(value, TEST_STRING, len), 0);
+       ASSERT_EQ(strncmp(value.get(), TEST_STRING, len), 0);
 
        ret = sensord_disconnect(handle);
        ASSERT_TRUE(ret);
 
-       free(value);
-
-       value = NULL;
        len = 0;
 
        err = sensord_get_default_sensor(ACCELEROMETER_SENSOR, &sensor);
@@ -490,15 +487,14 @@ TESTCASE(sensor_listener, set_get_get_attribute_string_1)
 
        handle = sensord_connect(sensor);
 
-       err = sensord_get_attribute_str(handle, attr, &value, &len);
+       err = sensord_get_attribute_str(handle, attr, &(value2.get()), &len);
        ASSERT_EQ(err, 0);
        ASSERT_EQ(len, TEST_STRING_LEN);
-       ASSERT_EQ(strncmp(value, TEST_STRING, len), 0);
+       ASSERT_EQ(strncmp(value2.get(), TEST_STRING, len), 0);
 
        ret = sensord_disconnect(handle);
        ASSERT_TRUE(ret);
 
-       free(value);
        return true;
 }
 
@@ -507,7 +503,7 @@ TESTCASE(sensor_listener, get_attribute_string_2)
        int err;
        bool ret;
        int handle;
-       char *value;
+       Deleter_char value;
        int len;
        sensor_t sensor;
        int attr = 100;
@@ -518,7 +514,7 @@ TESTCASE(sensor_listener, get_attribute_string_2)
        handle = sensord_connect(sensor);
 
        // attr 100 value is never set in these tests.
-       err = sensord_get_attribute_str(handle, attr, &value, &len);
+       err = sensord_get_attribute_str(handle, attr, &(value.get()), &len);
        ASSERT_EQ(err, -EIO);
 
        ret = sensord_disconnect(handle);