diff options
author | Richard Hughes <richard@hughsie.com> | 2017-10-31 14:04:53 +0000 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2017-10-31 16:07:56 +0000 |
commit | 1db3b0df8cbe2db907d44207defa0b7402594c6e (patch) | |
tree | 88a44e65cf23b7f7d419279ab5b9b00eff1c2cca | |
parent | 53ca4909421b5397543a09777d3f7ec858cf21e7 (diff) | |
download | appstream-glib-1db3b0df8cbe2db907d44207defa0b7402594c6e.tar.gz |
Add the 'hardware' requires type
-rw-r--r-- | libappstream-glib/as-require.c | 4 | ||||
-rw-r--r-- | libappstream-glib/as-require.h | 2 | ||||
-rw-r--r-- | libappstream-glib/as-self-test.c | 8 |
3 files changed, 13 insertions, 1 deletions
diff --git a/libappstream-glib/as-require.c b/libappstream-glib/as-require.c index f6a4bd6..66ef88d 100644 --- a/libappstream-glib/as-require.c +++ b/libappstream-glib/as-require.c @@ -95,6 +95,8 @@ as_require_kind_from_string (const gchar *kind) return AS_REQUIRE_KIND_ID; if (g_strcmp0 (kind, "firmware") == 0) return AS_REQUIRE_KIND_FIRMWARE; + if (g_strcmp0 (kind, "hardware") == 0) + return AS_REQUIRE_KIND_HARDWARE; return AS_REQUIRE_KIND_UNKNOWN; } @@ -115,6 +117,8 @@ as_require_kind_to_string (AsRequireKind kind) return "id"; if (kind == AS_REQUIRE_KIND_FIRMWARE) return "firmware"; + if (kind == AS_REQUIRE_KIND_HARDWARE) + return "hardware"; return NULL; } diff --git a/libappstream-glib/as-require.h b/libappstream-glib/as-require.h index e13d77e..d3a6b5f 100644 --- a/libappstream-glib/as-require.h +++ b/libappstream-glib/as-require.h @@ -52,6 +52,7 @@ struct _AsRequireClass * @AS_REQUIRE_KIND_UNKNOWN: Type invalid or not known * @AS_REQUIRE_KIND_ID: Component ID * @AS_REQUIRE_KIND_FIRMWARE: Device firmware version + * @AS_REQUIRE_KIND_HARDWARE: Hardware device, typically a GUID * * The require type. **/ @@ -59,6 +60,7 @@ typedef enum { AS_REQUIRE_KIND_UNKNOWN, AS_REQUIRE_KIND_ID, AS_REQUIRE_KIND_FIRMWARE, + AS_REQUIRE_KIND_HARDWARE, /* Since: 0.7.4 */ /*< private >*/ AS_REQUIRE_KIND_LAST } AsRequireKind; diff --git a/libappstream-glib/as-self-test.c b/libappstream-glib/as-self-test.c index 9d399a6..d05cc52 100644 --- a/libappstream-glib/as-self-test.c +++ b/libappstream-glib/as-self-test.c @@ -1346,6 +1346,7 @@ as_test_require_func (void) "<id>gimp.desktop</id>\n" "<firmware compare=\"ge\" version=\"0.1.2\">bootloader</firmware>\n" "<firmware compare=\"eq\" version=\"1.0.0\">runtime</firmware>\n" + "<hardware>4be0643f-1d98-573b-97cd-ca98a65347dd</hardware>\n" "</requires>\n" "</component>\n"; gboolean ret; @@ -1370,7 +1371,7 @@ as_test_require_func (void) /* verify */ requires = as_app_get_requires (app); - g_assert_cmpint (requires->len, ==, 3); + g_assert_cmpint (requires->len, ==, 4); require = g_ptr_array_index (requires, 0); g_assert_cmpint (as_require_get_kind (require), ==, AS_REQUIRE_KIND_ID); g_assert_cmpint (as_require_get_compare (require), ==, AS_REQUIRE_COMPARE_UNKNOWN); @@ -1381,6 +1382,11 @@ as_test_require_func (void) g_assert_cmpint (as_require_get_compare (require), ==, AS_REQUIRE_COMPARE_GE); g_assert_cmpstr (as_require_get_version (require), ==, "0.1.2"); g_assert_cmpstr (as_require_get_value (require), ==, "bootloader"); + require = g_ptr_array_index (requires, 3); + g_assert_cmpint (as_require_get_kind (require), ==, AS_REQUIRE_KIND_HARDWARE); + g_assert_cmpint (as_require_get_compare (require), ==, AS_REQUIRE_COMPARE_UNKNOWN); + g_assert_cmpstr (as_require_get_version (require), ==, NULL); + g_assert_cmpstr (as_require_get_value (require), ==, "4be0643f-1d98-573b-97cd-ca98a65347dd"); /* back to node */ root = as_node_new (); |