Test for all the possible lengths (up to 8), specifying which are
expected to be valid and how they should be interpreted.
Sprinkle some `#` and `0x` around randomly to make sure those work at
any length too.

Signed-off-by: Eric Engestrom <e...@engestrom.ch>
---
 tests/config-parser-test.c | 160 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 160 insertions(+)

diff --git a/tests/config-parser-test.c b/tests/config-parser-test.c
index 1cdffff..a1038e5 100644
--- a/tests/config-parser-test.c
+++ b/tests/config-parser-test.c
@@ -127,6 +127,16 @@ static struct zuc_fixture config_test_t1 = {
        "oct=01234567\n"
        "dec=12345670\n"
        "short=1234567\n"
+       "hash=#12345678\n"
+       "zerox=0x12345678\n"
+       "one=0x1\n"
+       "two=0x12\n"
+       "three=123\n"
+       "four=#1234\n"
+       "five=#12345\n"
+       "six=0x123456\n"
+       "seven=1234567\n"
+       "eight=12345678\n"
        "\n"
        "[stuff]\n"
        "flag=     true \n"
@@ -609,6 +619,156 @@ ZUC_TEST_F(config_test_t1, test028, data)
        ZUC_ASSERT_EQ(ERANGE, errno);
 }
 
+ZUC_TEST_F(config_test_t1, test029, data)
+{
+       int r;
+       uint32_t n;
+       struct weston_config_section *section;
+       struct weston_config *config = data;
+
+       section = weston_config_get_section(config, "colors", NULL, NULL);
+       r = weston_config_section_get_color(section, "hash", &n, 0xff336699);
+
+       ZUC_ASSERT_EQ(0, r);
+       ZUC_ASSERT_EQ(0x12345678, n);
+       ZUC_ASSERT_EQ(0, errno);
+}
+
+ZUC_TEST_F(config_test_t1, test030, data)
+{
+       int r;
+       uint32_t n;
+       struct weston_config_section *section;
+       struct weston_config *config = data;
+
+       section = weston_config_get_section(config, "colors", NULL, NULL);
+       r = weston_config_section_get_color(section, "zerox", &n, 0xff336699);
+
+       ZUC_ASSERT_EQ(0, r);
+       ZUC_ASSERT_EQ(0x12345678, n);
+       ZUC_ASSERT_EQ(0, errno);
+}
+
+ZUC_TEST_F(config_test_t1, test031, data)
+{
+       int r;
+       uint32_t n;
+       struct weston_config_section *section;
+       struct weston_config *config = data;
+
+       section = weston_config_get_section(config, "colors", NULL, NULL);
+       r = weston_config_section_get_color(section, "one", &n, 0xff336699);
+
+       ZUC_ASSERT_EQ(0, r);
+       ZUC_ASSERT_EQ(0xff111111, n);
+       ZUC_ASSERT_EQ(0, errno);
+}
+
+ZUC_TEST_F(config_test_t1, test032, data)
+{
+       int r;
+       uint32_t n;
+       struct weston_config_section *section;
+       struct weston_config *config = data;
+
+       section = weston_config_get_section(config, "colors", NULL, NULL);
+       r = weston_config_section_get_color(section, "two", &n, 0xff336699);
+
+       ZUC_ASSERT_EQ(0, r);
+       ZUC_ASSERT_EQ(0xff121212, n);
+       ZUC_ASSERT_EQ(0, errno);
+}
+
+ZUC_TEST_F(config_test_t1, test033, data)
+{
+       int r;
+       uint32_t n;
+       struct weston_config_section *section;
+       struct weston_config *config = data;
+
+       section = weston_config_get_section(config, "colors", NULL, NULL);
+       r = weston_config_section_get_color(section, "three", &n, 0xff336699);
+
+       ZUC_ASSERT_EQ(0, r);
+       ZUC_ASSERT_EQ(0xff112233, n);
+       ZUC_ASSERT_EQ(0, errno);
+}
+
+ZUC_TEST_F(config_test_t1, test034, data)
+{
+       int r;
+       uint32_t n;
+       struct weston_config_section *section;
+       struct weston_config *config = data;
+
+       section = weston_config_get_section(config, "colors", NULL, NULL);
+       r = weston_config_section_get_color(section, "four", &n, 0xff336699);
+
+       ZUC_ASSERT_EQ(0, r);
+       ZUC_ASSERT_EQ(0x11223344, n);
+       ZUC_ASSERT_EQ(0, errno);
+}
+
+ZUC_TEST_F(config_test_t1, test035, data)
+{
+       int r;
+       uint32_t n;
+       struct weston_config_section *section;
+       struct weston_config *config = data;
+
+       section = weston_config_get_section(config, "colors", NULL, NULL);
+       r = weston_config_section_get_color(section, "five", &n, 0xff336699);
+
+       ZUC_ASSERT_EQ(-1, r);
+       ZUC_ASSERT_EQ(0xff336699, n);
+       ZUC_ASSERT_EQ(EINVAL, errno);
+}
+
+ZUC_TEST_F(config_test_t1, test036, data)
+{
+       int r;
+       uint32_t n;
+       struct weston_config_section *section;
+       struct weston_config *config = data;
+
+       section = weston_config_get_section(config, "colors", NULL, NULL);
+       r = weston_config_section_get_color(section, "six", &n, 0xff336699);
+
+       ZUC_ASSERT_EQ(0, r);
+       ZUC_ASSERT_EQ(0xff123456, n);
+       ZUC_ASSERT_EQ(0, errno);
+}
+
+ZUC_TEST_F(config_test_t1, test037, data)
+{
+       int r;
+       uint32_t n;
+       struct weston_config_section *section;
+       struct weston_config *config = data;
+
+       section = weston_config_get_section(config, "colors", NULL, NULL);
+       r = weston_config_section_get_color(section, "seven", &n, 0xff336699);
+
+       ZUC_ASSERT_EQ(-1, r);
+       ZUC_ASSERT_EQ(0xff336699, n);
+       ZUC_ASSERT_EQ(EINVAL, errno);
+}
+
+ZUC_TEST_F(config_test_t1, test038, data)
+{
+       int r;
+       uint32_t n;
+       struct weston_config_section *section;
+       struct weston_config *config = data;
+
+       section = weston_config_get_section(config, "colors", NULL, NULL);
+       r = weston_config_section_get_color(section, "eight", &n, 0xff336699);
+
+       ZUC_ASSERT_EQ(0, r);
+       ZUC_ASSERT_EQ(0x12345678, n);
+       ZUC_ASSERT_EQ(0, errno);
+}
+
 ZUC_TEST_F(config_test_t2, doesnt_parse, data)
 {
        struct weston_config *config = data;
-- 
Cheers,
  Eric

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to