int syscommon_resman_set_resource_attr_uint64_4(int resource_id, u_int64_t attr_id,
u_int64_t data1, u_int64_t data2, u_int64_t data3, u_int64_t data4);
int syscommon_resman_set_resource_attr_double(int resource_id, u_int64_t attr_id, double data);
-int syscommon_resman_set_resource_attr_string(int resource_id, u_int64_t attr_id, char data);
+int syscommon_resman_set_resource_attr_string(int resource_id, u_int64_t attr_id, const char *data);
int syscommon_resman_set_resource_attr_array(int resource_id, u_int64_t attr_id, void *data, int count);
int syscommon_resman_set_resource_attr_ptr(int resource_id, u_int64_t attr_id, void *data);
#define DISPLAY_ATTR_UINT (1ULL << 2)
#define DISPLAY_ATTR_UINT64 (1ULL << 3)
#define DISPLAY_ATTR_DOUBLE (1ULL << 4)
-#define DISPLAY_ATTR_2_UINT64 (1ULL << 5)
-#define DISPLAY_ATTR_3_UINT64 (1ULL << 6)
-#define DISPLAY_ATTR_4_UINT64 (1ULL << 7)
-#define DISPLAY_ATTR_INT_IS_SUPPORT_FUNC (1ULL << 8)
-#define DISPLAY_ATTR_INT_NO_IS_SUPPORT_FUNC (1ULL << 9)
-#define DISPLAY_ATTR_INT_NO_GETTER (1ULL << 10)
-#define DISPLAY_ATTR_INT_NO_SETTER (1ULL << 11)
-#define DISPLAY_ATTR_MAX (1ULL << 12)
+#define DISPLAY_ATTR_STRING (1ULL << 5)
+#define DISPLAY_ATTR_2_UINT64 (1ULL << 6)
+#define DISPLAY_ATTR_3_UINT64 (1ULL << 7)
+#define DISPLAY_ATTR_4_UINT64 (1ULL << 8)
+#define DISPLAY_ATTR_INT_IS_SUPPORT_FUNC (1ULL << 9)
+#define DISPLAY_ATTR_INT_NO_IS_SUPPORT_FUNC (1ULL << 10)
+#define DISPLAY_ATTR_INT_NO_GETTER (1ULL << 11)
+#define DISPLAY_ATTR_INT_NO_SETTER (1ULL << 12)
+#define DISPLAY_ATTR_MAX (1ULL << 13)
#endif /* __TEST_DISPLAY_INTERFACE_H__ */
case DISPLAY_ATTR_DOUBLE:
attr_data.d = mock_type(double);
break;
+ case DISPLAY_ATTR_STRING:
+ attr_data.s = mock_ptr_type(char *);
+ break;
}
ret = mock_type(int);
case SYSCOMMON_RESMAN_DATA_TYPE_BOOLEAN:
*(bool *) data = attr_data.b;
break;
+ case SYSCOMMON_RESMAN_DATA_TYPE_STRING:
+ strncpy(data, attr_data.s, SYSCOMMON_RESMAN_BUFF_MAX);
+ break;
default:
return -EINVAL;
}
.set = test_display_set,
.is_supported = syscommon_resman_resource_attr_supported_always,
},
+ }, {
+ .name = "DISPLAY_ATTR_STRING",
+ .id = DISPLAY_ATTR_STRING,
+ .type = SYSCOMMON_RESMAN_DATA_TYPE_STRING,
+ .flag = SYSCOMMON_RESMAN_RESOURCE_ATTR_FLAG_PUBLIC,
+ .ops = {
+ .get = test_display_get,
+ .set = test_display_set,
+ .is_supported = syscommon_resman_resource_attr_supported_always,
+ },
}, {
.name = "DISPLAY_ATTR_2_UINT64",
.id = DISPLAY_ATTR_2_UINT64,
case DISPLAY_ATTR_UINT:
case DISPLAY_ATTR_UINT64:
case DISPLAY_ATTR_DOUBLE:
+ case DISPLAY_ATTR_STRING:
/**
* Check created resource has attr_value that has
* successfully been allocated memory for data
delete_display_resource(resource_id);
}
+static void test_get_resource_attr_string_pass_1(void **state)
+{
+ int resource_id;
+ int ret;
+ const char *expect = "expect";
+ char result[SYSCOMMON_RESMAN_BUFF_MAX] = { 0 , };
+
+ resource_id = create_display_resource();
+
+ will_return(test_display_get, expect);
+ will_return(test_display_get, 0);
+
+ ret = syscommon_resman_get_resource_attr_string(resource_id, DISPLAY_ATTR_STRING, result);
+ assert_int_equal(ret, 0);
+ assert_string_equal(result, expect);
+
+ delete_display_resource(resource_id);
+}
+
+static void test_get_resource_attr_string_pass_2(void **state)
+{
+ int resource_id;
+ int ret;
+ const char *expect = "expect";
+ char *result = NULL;
+
+ resource_id = create_display_resource();
+
+ will_return(test_display_get, expect);
+ will_return(test_display_get, 0);
+
+ result = calloc(SYSCOMMON_RESMAN_BUFF_MAX, sizeof(char));
+ assert_non_null(result);
+
+ ret = syscommon_resman_get_resource_attr_string(resource_id, DISPLAY_ATTR_STRING, result);
+ assert_int_equal(ret, 0);
+ assert_string_equal(result, expect);
+ free(result);
+ result = NULL;
+
+ delete_display_resource(resource_id);
+}
+
static void test_get_resource_attr_int_fail_getter(void **state)
{
int resource_id;
delete_display_resource(resource_id);
}
+static void test_set_resource_attr_string_pass(void **state)
+{
+ int resource_id;
+ int ret;
+ const char *s = "address to a readonly segment";
+
+ resource_id = create_display_resource();
+
+ expect_memory(test_display_set, data, &s, sizeof(char *));
+ will_return(test_display_set, 0);
+
+ ret = syscommon_resman_set_resource_attr_string(resource_id, DISPLAY_ATTR_STRING, s);
+ assert_int_equal(ret, 0);
+
+ delete_display_resource(resource_id);
+}
+
static void test_set_resource_attr_int_fail_setter(void **state)
{
int resource_id;
cmocka_unit_test(test_create_resource_fail_is_support_2),
cmocka_unit_test(test_get_resource_attr_int_pass),
+ cmocka_unit_test(test_get_resource_attr_string_pass_1),
+ cmocka_unit_test(test_get_resource_attr_string_pass_2),
cmocka_unit_test(test_get_resource_attr_int_fail_getter),
cmocka_unit_test(test_get_resource_attr_int_fail_no_getter),
cmocka_unit_test(test_get_resource_attr_int_fail_unmatched_type),
cmocka_unit_test(test_get_resource_attr_int_fail_invalid_parameter_3),
cmocka_unit_test(test_set_resource_attr_int_pass),
+ cmocka_unit_test(test_set_resource_attr_string_pass),
cmocka_unit_test(test_set_resource_attr_int_fail_setter),
cmocka_unit_test(test_set_resource_attr_int_fail_no_setter),
cmocka_unit_test(test_set_resource_attr_int_fail_unmatched_type),