summaryrefslogtreecommitdiff
path: root/libappstream-glib/as-self-test.c
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2016-11-16 12:33:35 +0000
committerRichard Hughes <richard@hughsie.com>2016-11-21 15:19:55 +0000
commit977f0cc2623dc89e68b4c0d41b0164c59ac9a1ca (patch)
tree0f784c85ae1f2dc25be4a0db1d48fd4b9eacd457 /libappstream-glib/as-self-test.c
parent9f52dca956a60d7921c01bff37730e5a8790f987 (diff)
downloadappstream-glib-977f0cc2623dc89e68b4c0d41b0164c59ac9a1ca.tar.gz
Add a refcounted overloaded C string object
Diffstat (limited to 'libappstream-glib/as-self-test.c')
-rw-r--r--libappstream-glib/as-self-test.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/libappstream-glib/as-self-test.c b/libappstream-glib/as-self-test.c
index b8bbf16..457a4c5 100644
--- a/libappstream-glib/as-self-test.c
+++ b/libappstream-glib/as-self-test.c
@@ -41,6 +41,7 @@
#include "as-node-private.h"
#include "as-problem.h"
#include "as-provide-private.h"
+#include "as-ref-string.h"
#include "as-release-private.h"
#include "as-suggest-private.h"
#include "as-screenshot-private.h"
@@ -5045,6 +5046,32 @@ as_test_utils_unique_id_hash_safe_func (void)
g_assert (found == NULL);
}
+static void
+as_test_ref_string_func (void)
+{
+ const gchar *tmp;
+ AsRefString *rstr;
+ AsRefString *rstr2;
+
+ /* basic refcounting */
+ rstr = as_ref_string_new ("test");
+ g_assert (rstr != NULL);
+ g_assert_cmpstr (rstr, ==, "test");
+ g_assert (as_ref_string_ref (rstr) != NULL);
+ g_assert (as_ref_string_unref (rstr) != NULL);
+ g_assert (as_ref_string_unref (rstr) == NULL);
+
+ /* adopting const string */
+ tmp = "test";
+ rstr = as_ref_string_new (tmp);
+ g_assert_cmpstr (rstr, ==, tmp);
+ rstr2 = as_ref_string_new (rstr);
+ g_assert_cmpstr (rstr2, ==, tmp);
+ g_assert (rstr == rstr2);
+ g_assert (as_ref_string_unref (rstr) != NULL);
+ g_assert (as_ref_string_unref (rstr2) == NULL);
+}
+
int
main (int argc, char **argv)
{
@@ -5054,6 +5081,7 @@ main (int argc, char **argv)
g_log_set_fatal_mask (NULL, G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL);
/* tests go here */
+ g_test_add_func ("/AppStream/ref-string", as_test_ref_string_func);
g_test_add_func ("/AppStream/utils{unique_id-hash}", as_test_utils_unique_id_hash_func);
g_test_add_func ("/AppStream/utils{unique_id-hash2}", as_test_utils_unique_id_hash_safe_func);
g_test_add_func ("/AppStream/utils{unique_id}", as_test_utils_unique_id_func);