#define XS_NODE_UNIT_TEST
#include "hw/i386/kvm/xenstore_impl.c"
+#define DOMID_QEMU 0
#define DOMID_GUEST 1
/* This doesn't happen in qemu but we want to make valgrind happy */
g_string_append(str, token);
}
+static XenstoreImplState *setup(void)
+{
+ XenstoreImplState *s = xs_impl_create(DOMID_GUEST);
+ char *abspath;
+ GList *perms;
+ int err;
+
+ abspath = g_strdup_printf("/local/domain/%u", DOMID_GUEST);
+
+ err = write_str(s, DOMID_QEMU, XBT_NULL, abspath, "");
+ g_assert(!err);
+
+ perms = g_list_append(NULL, g_strdup_printf("n%u", DOMID_QEMU));
+ perms = g_list_append(perms, g_strdup_printf("r%u", DOMID_GUEST));
+
+ err = xs_impl_set_perms(s, DOMID_QEMU, XBT_NULL, abspath, perms);
+ g_assert(!err);
+
+ g_list_free_full(perms, g_free);
+ g_free(abspath);
+
+ abspath = g_strdup_printf("/local/domain/%u/some", DOMID_GUEST);
+
+ err = write_str(s, DOMID_QEMU, XBT_NULL, abspath, "");
+ g_assert(!err);
+
+ perms = g_list_append(NULL, g_strdup_printf("n%u", DOMID_GUEST));
+
+ err = xs_impl_set_perms(s, DOMID_QEMU, XBT_NULL, abspath, perms);
+ g_assert(!err);
+
+ g_list_free_full(perms, g_free);
+ g_free(abspath);
+
+ return s;
+}
+
static void test_xs_node_simple(void)
{
- XenstoreImplState *s = xs_impl_create(DOMID_GUEST);
+ XenstoreImplState *s = setup();
GString *guest_watches = g_string_new(NULL);
GString *qemu_watches = g_string_new(NULL);
GList *items = NULL;
static void do_test_xs_node_tx(bool fail, bool commit)
{
- XenstoreImplState *s = xs_impl_create(DOMID_GUEST);
+ XenstoreImplState *s = setup();
GString *watches = g_string_new(NULL);
GByteArray *data = g_byte_array_new();
unsigned int tx_id = XBT_NULL;
static void test_xs_node_tx_rm(void)
{
- XenstoreImplState *s = xs_impl_create(DOMID_GUEST);
+ XenstoreImplState *s = setup();
GString *watches = g_string_new(NULL);
GByteArray *data = g_byte_array_new();
unsigned int tx_id = XBT_NULL;
static void test_xs_node_tx_resurrect(void)
{
- XenstoreImplState *s = xs_impl_create(DOMID_GUEST);
+ XenstoreImplState *s = setup();
GString *watches = g_string_new(NULL);
GByteArray *data = g_byte_array_new();
unsigned int tx_id = XBT_NULL;