1 /* Copyright (c) 2007-2019. The SimGrid Team.
2 * All rights reserved. */
4 /* This program is free software; you can redistribute it and/or modify it
5 * under the terms of the license (GNU LGPL) which comes with this package. */
7 #include "simgrid/simdag.h"
9 XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Property test");
11 int main(int argc, char **argv)
13 xbt_dict_cursor_t cursor = NULL;
16 char noexist[] = "NoProp";
20 /* SD initialization */
22 xbt_assert(argc > 1, "Usage: %s platform_file\n\tExample: %s ../../platforms/prop.xml", argv[0], argv[0]);
24 SD_create_environment(argv[1]);
26 /* init of platform elements */
27 sg_host_t h1 = sg_host_by_name("host1");
28 sg_host_t h2 = sg_host_by_name("host2");
29 const char *name1 = sg_host_get_name(h1);
30 const char *name2 = sg_host_get_name(h2);
32 /* Trying to set a new property */
33 sg_host_set_property_value(h1, "NewProp", "newValue");
35 /* Get the property list of 'host1'. This is only a copy of the internal data structure.*/
36 XBT_INFO("Property list for host %s", name1);
37 xbt_dict_t props = sg_host_get_properties(h1);
40 /* Print the properties of 'host1' */
41 xbt_dict_foreach (props, cursor, key, data)
42 XBT_INFO("\tProperty: %s has value: %s", key, data);
44 /* Try to get a property that does not exist */
45 value = sg_host_get_property_value(h1, noexist);
46 XBT_INFO("\tProperty: %s has value: %s", noexist, value?value:"Undefined (NULL)");
48 xbt_dict_free(&props);
50 /* Get the property list of 'host2' */
51 XBT_INFO("Property list for host %s", name2);
52 props = sg_host_get_properties(h2);
54 /* Print the properties of 'host2' */
55 xbt_dict_foreach (props, cursor, key, data)
56 XBT_INFO("\tProperty: %s on host: %s", key, data);
58 xbt_dict_free(&props);
60 /* Modify an existing property test. First check it exists */
61 XBT_INFO("Modify an existing property");
63 value = sg_host_get_property_value(h2, exist);
65 XBT_INFO("\tProperty: %s is undefined", exist);
67 XBT_INFO("\tProperty: %s old value: %s", exist, value);
68 sg_host_set_property_value(h2, exist, "250");
71 /* Test if we have changed the value */
72 value = sg_host_get_property_value(h2, exist);
73 XBT_INFO("\tProperty: %s new value: %s", exist, value?value:"Undefined (NULL)");
75 /* Test if properties are displayed by sg_host_dump */