summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof Opasiak <k.opasiak@samsung.com>2016-12-14 13:29:41 +0100
committerKrzysztof Opasiak <k.opasiak@samsung.com>2016-12-14 15:23:48 +0100
commitc02dbe391ff50d72555844ef0d8c94dda76bccff (patch)
treee046d92c429550865f26bf2247d17cc5b0d74773
parent67aaf8ea7ecf6f609e09816750fd1bb3aaa4bab6 (diff)
downloadlibusbg-c02dbe391ff50d72555844ef0d8c94dda76bccff.tar.gz
libusbg-c02dbe391ff50d72555844ef0d8c94dda76bccff.tar.bz2
libusbg-c02dbe391ff50d72555844ef0d8c94dda76bccff.zip
libusbgx: Keep gadget strs in the same order as in device desc
Let's keep gadget strings in the same order as they appear in USB device descriptor to avoid mistakes during structure initialization. Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
-rw-r--r--include/usbg/usbg.h6
-rw-r--r--src/usbg.c15
-rw-r--r--tests/test.c16
-rw-r--r--tests/usbg-test.c4
-rw-r--r--tests/usbg-test.h4
5 files changed, 22 insertions, 23 deletions
diff --git a/include/usbg/usbg.h b/include/usbg/usbg.h
index d2bffba..41a6454 100644
--- a/include/usbg/usbg.h
+++ b/include/usbg/usbg.h
@@ -136,8 +136,8 @@ struct usbg_gadget_attrs
typedef enum {
USBG_GADGET_STR_MIN = 0,
- USBG_STR_PRODUCT = USBG_GADGET_STR_MIN,
- USBG_STR_MANUFACTURER,
+ USBG_STR_MANUFACTURER = USBG_GADGET_STR_MIN,
+ USBG_STR_PRODUCT,
USBG_STR_SERIAL_NUMBER,
USBG_GADGET_STR_MAX,
} usbg_gadget_str;
@@ -147,9 +147,9 @@ typedef enum {
*/
struct usbg_gadget_strs
{
- char serial[USBG_MAX_STR_LENGTH];
char manufacturer[USBG_MAX_STR_LENGTH];
char product[USBG_MAX_STR_LENGTH];
+ char serial[USBG_MAX_STR_LENGTH];
};
/**
diff --git a/src/usbg.c b/src/usbg.c
index eda5712..ee45984 100644
--- a/src/usbg.c
+++ b/src/usbg.c
@@ -89,8 +89,8 @@ ARRAY_SIZE_SENTINEL(gadget_attr_names, USBG_GADGET_ATTR_MAX);
const char *gadget_str_names[] =
{
- "product",
"manufacturer",
+ "product",
"serialnumber",
};
@@ -773,15 +773,15 @@ static int usbg_parse_gadget_strs(const char *path, const char *name, int lang,
}
closedir(dir);
- ret = usbg_read_string(spath, "", "serialnumber", g_strs->serial);
+ ret = usbg_read_string(spath, "", "manufacturer", g_strs->manufacturer);
if (ret != USBG_SUCCESS)
goto out;
- ret = usbg_read_string(spath, "", "manufacturer", g_strs->manufacturer);
+ ret = usbg_read_string(spath, "", "product", g_strs->product);
if (ret != USBG_SUCCESS)
goto out;
- ret = usbg_read_string(spath, "", "product", g_strs->product);
+ ret = usbg_read_string(spath, "", "serialnumber", g_strs->serial);
if (ret != USBG_SUCCESS)
goto out;
@@ -1691,16 +1691,15 @@ int usbg_set_gadget_strs(usbg_gadget *g, int lang,
if (ret != USBG_SUCCESS)
goto out;
- ret = usbg_write_string(path, "", "serialnumber", g_strs->serial);
- if (ret != USBG_SUCCESS)
- goto out;
-
ret = usbg_write_string(path, "", "manufacturer", g_strs->manufacturer);
if (ret != USBG_SUCCESS)
goto out;
ret = usbg_write_string(path, "", "product", g_strs->product);
+ if (ret != USBG_SUCCESS)
+ goto out;
+ ret = usbg_write_string(path, "", "serialnumber", g_strs->serial);
out:
return ret;
}
diff --git a/tests/test.c b/tests/test.c
index 80b6fec..a830544 100644
--- a/tests/test.c
+++ b/tests/test.c
@@ -1439,10 +1439,6 @@ static void test_set_gadget_strs(void **data)
pull_gadget_string(tg, LANG_US_ENG, i,
get_gadget_str(ts->strs, i));
- ret = usbg_set_gadget_serial_number(g, LANG_US_ENG,
- ts->strs->serial);
- assert_int_equal(ret, 0);
-
ret = usbg_set_gadget_manufacturer(g, LANG_US_ENG,
ts->strs->manufacturer);
assert_int_equal(ret, 0);
@@ -1451,15 +1447,15 @@ static void test_set_gadget_strs(void **data)
ts->strs->product);
assert_int_equal(ret, 0);
+ ret = usbg_set_gadget_serial_number(g, LANG_US_ENG,
+ ts->strs->serial);
+ assert_int_equal(ret, 0);
+
for (i = 0; i < GADGET_STR_MAX; i++)
pull_gadget_string(tg, LANG_US_ENG,
i, get_gadget_str(ts->strs, i));
- ret = usbg_set_gadget_str(g, USBG_STR_SERIAL_NUMBER,
- LANG_US_ENG, ts->strs->serial);
- assert_int_equal(ret, 0);
-
ret = usbg_set_gadget_str(g, USBG_STR_MANUFACTURER,
LANG_US_ENG, ts->strs->manufacturer);
assert_int_equal(ret, 0);
@@ -1467,6 +1463,10 @@ static void test_set_gadget_strs(void **data)
ret = usbg_set_gadget_str(g, USBG_STR_PRODUCT,
LANG_US_ENG, ts->strs->product);
assert_int_equal(ret, 0);
+
+ ret = usbg_set_gadget_str(g, USBG_STR_SERIAL_NUMBER,
+ LANG_US_ENG, ts->strs->serial);
+ assert_int_equal(ret, 0);
}
}
diff --git a/tests/usbg-test.c b/tests/usbg-test.c
index 09703cc..ad76481 100644
--- a/tests/usbg-test.c
+++ b/tests/usbg-test.c
@@ -18,9 +18,9 @@ static struct simple_stack{
} *cleanup_top = NULL;
static const char *gadget_str_names[] = {
- "serialnumber",
"manufacturer",
- "product"
+ "product",
+ "serialnumber",
};
static const char *config_attr_names[] = {
diff --git a/tests/usbg-test.h b/tests/usbg-test.h
index d0cc9b7..e2b35aa 100644
--- a/tests/usbg-test.h
+++ b/tests/usbg-test.h
@@ -71,9 +71,9 @@ struct test_state
};
typedef enum {
- STR_SER = 0,
- STR_MNF,
+ STR_MNF = 0,
STR_PRD,
+ STR_SER,
GADGET_STR_MAX
} gadget_str;