resource-c: added test app for trying context creations.
authorIsmo Puustinen <ismo.puustinen@intel.com>
Thu, 30 Oct 2014 08:30:26 +0000 (10:30 +0200)
committerIsmo Puustinen <ismo.puustinen@intel.com>
Thu, 30 Oct 2014 08:38:48 +0000 (10:38 +0200)
src/Makefile.am
src/plugins/resource-native/libmurphy-resource/context-create.c [new file with mode: 0644]

index f392418..8a0326f 100644 (file)
@@ -1072,6 +1072,13 @@ resource_api_fuzz_SOURCES = plugins/resource-native/libmurphy-resource/resource-
 resource_api_fuzz_CFLAGS  = $(AM_CFLAGS)
 resource_api_fuzz_LDADD   = libmurphy-common.la libmurphy-resource.la
 
+# context-create
+bin_PROGRAMS += resource-context-create
+
+resource_context_create_SOURCES = plugins/resource-native/libmurphy-resource/context-create.c
+resource_context_create_CFLAGS  = $(AM_CFLAGS)
+resource_context_create_LDADD   = libmurphy-common.la libmurphy-resource.la
+
 ###################################
 # murphy plugins
 #
diff --git a/src/plugins/resource-native/libmurphy-resource/context-create.c b/src/plugins/resource-native/libmurphy-resource/context-create.c
new file mode 100644 (file)
index 0000000..eb94836
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2014, Intel Corporation
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *  * Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  * Neither the name of Intel Corporation nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <murphy/plugins/resource-native/libmurphy-resource/resource-api.h>
+
+mrp_mainloop_t *ml;
+
+void state_cb(mrp_res_context_t *cx, mrp_res_error_t err, void *userdata)
+{
+    MRP_UNUSED(cx);
+    MRP_UNUSED(err);
+    MRP_UNUSED(userdata);
+}
+
+void deferred_cb(mrp_deferred_t *d, void *user_data)
+{
+    uint *iterations = user_data;
+
+    (*iterations)--;
+
+    if (*iterations == 0) {
+        mrp_del_deferred(d);
+        mrp_mainloop_quit(ml, 0);
+        return;
+    }
+
+    mrp_res_context_t *ctx = mrp_res_create(ml, state_cb, NULL);
+    mrp_res_destroy(ctx);
+}
+
+void usage()
+{
+    printf("context-create <iterations>\n");
+}
+
+int main(int argc, char **argv)
+{
+    uint iterations = 0;
+
+    if (argc != 2) {
+        usage();
+        exit(1);
+    }
+
+    if ((ml = mrp_mainloop_create()) == NULL)
+        exit(1);
+
+    iterations = strtoul(argv[1], NULL, 10);
+
+    mrp_add_deferred(ml, deferred_cb, &iterations);
+
+    /* start looping */
+    mrp_mainloop_run(ml);
+
+    return 0;
+}