From: Frederic Suter Date: Tue, 10 Mar 2020 11:27:41 +0000 (+0100) Subject: convert platform-properties X-Git-Tag: v3.26~757 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/501244d422766cedb4c44f6a5ea5196586e3eb21 convert platform-properties --- diff --git a/MANIFEST.in b/MANIFEST.in index 31e2667ca4..ae4bdc32bf 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -93,6 +93,9 @@ include examples/c/io-file-remote/io-file-remote.tesh include examples/c/io-file-remote/io-file-remote_d.xml include examples/c/platform-failures/platform-failures.c include examples/c/platform-failures/platform-failures.tesh +include examples/c/platform-properties/platform-properties.c +include examples/c/platform-properties/platform-properties.tesh +include examples/c/platform-properties/platform-properties_d.xml include examples/c/plugin-hostload/plugin-hostload.c include examples/c/plugin-hostload/plugin-hostload.tesh include examples/deprecated/java/app/bittorrent/Common.java @@ -673,9 +676,6 @@ include teshsuite/msg/get_sender/get_sender.c include teshsuite/msg/get_sender/get_sender.tesh include teshsuite/msg/io-file/io-file.c include teshsuite/msg/io-file/io-file.tesh -include teshsuite/msg/platform-properties/platform-properties.c -include teshsuite/msg/platform-properties/platform-properties.tesh -include teshsuite/msg/platform-properties/platform-properties_d.xml include teshsuite/msg/task_destroy_cancel/task_destroy_cancel.c include teshsuite/msg/task_destroy_cancel/task_destroy_cancel.tesh include teshsuite/msg/task_listen_from/task_listen_from.c diff --git a/examples/README.rst b/examples/README.rst index 8ae647f5d8..57925db8fd 100644 --- a/examples/README.rst +++ b/examples/README.rst @@ -547,6 +547,13 @@ Interacting with the Platform - :cpp:func:`simgrid::s4u::Link::get_property()` and :cpp:func:`simgrid::s4u::Link::set_property()` - :cpp:func:`simgrid::s4u::NetZone::get_property()` and :cpp:func:`simgrid::s4u::NetZone::set_property()` + .. example-tab:: examples/c/platform-properties/platform-properties.c + + - :cpp:func:`sg_actor_get_property()` and :cpp:func:`sg_actor_set_property()` + - :cpp:func:`sg_host_get_property()` and :cpp:func:sg_host_set_property()` + - :cpp:func:`sg_link_get_property()` and :cpp:func:`sg_link_set_property()` + - :cpp:func:`sg_link_get_property()` and :cpp:func:`sg_link_set_property()` + .. group-tab:: XML **Deployment file:** diff --git a/examples/c/CMakeLists.txt b/examples/c/CMakeLists.txt index 37de897136..78f5ee051b 100644 --- a/examples/c/CMakeLists.txt +++ b/examples/c/CMakeLists.txt @@ -10,7 +10,7 @@ foreach(x exec-async exec-basic exec-dvfs exec-remote exec-waitany energy-exec energy-exec-ptask energy-vm io-disk-raw io-file-remote - platform-failures + platform-failures platform-properties plugin-hostload) add_executable (${x}-c EXCLUDE_FROM_ALL ${x}/${x}.c) target_link_libraries(${x}-c simgrid) @@ -55,6 +55,7 @@ set(xml_files ${xml_files} ${CMAKE_CURRENT_SOURCE_DIR}/actor-create/actor-cr ${CMAKE_CURRENT_SOURCE_DIR}/async-waitall/async-waitall_d.xml ${CMAKE_CURRENT_SOURCE_DIR}/async-waitany/async-waitany_d.xml ${CMAKE_CURRENT_SOURCE_DIR}/io-file-remote/io-file-remote_d.xml + ${CMAKE_CURRENT_SOURCE_DIR}/platform-properties/platform-properties_d.xml PARENT_SCOPE) foreach(x @@ -66,7 +67,7 @@ foreach(x exec-async exec-basic exec-dvfs exec-remote exec-waitany energy-exec energy-exec-ptask energy-vm io-disk-raw io-file-remote - platform-failures + platform-failures platform-properties plugin-hostload) ADD_TESH(c-${x} --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --setenv bindir=${CMAKE_BINARY_DIR}/examples/c/${x} diff --git a/teshsuite/msg/platform-properties/platform-properties.c b/examples/c/platform-properties/platform-properties.c similarity index 50% rename from teshsuite/msg/platform-properties/platform-properties.c rename to examples/c/platform-properties/platform-properties.c index 245d7c45c4..c13eb59257 100644 --- a/teshsuite/msg/platform-properties/platform-properties.c +++ b/examples/c/platform-properties/platform-properties.c @@ -3,14 +3,21 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ -#include "simgrid/msg.h" +#include "simgrid/actor.h" +#include "simgrid/engine.h" +#include "simgrid/host.h" +#include "simgrid/zone.h" + +#include "xbt/asserts.h" +#include "xbt/dict.h" +#include "xbt/log.h" XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Property test"); static void test_host(const char* hostname) { - msg_host_t thehost = MSG_host_by_name(hostname); - xbt_dict_t props = MSG_host_get_properties(thehost); + sg_host_t thehost = sg_host_by_name(hostname); + xbt_dict_t props = sg_host_get_properties(thehost); xbt_dict_cursor_t cursor = NULL; char* key; char* data; @@ -23,61 +30,58 @@ static void test_host(const char* hostname) XBT_INFO(" Host property: '%s' -> '%s'", key, data); XBT_INFO("== Try to get a host property that does not exist"); - value = MSG_host_get_property_value(thehost, noexist); + value = sg_host_get_property_value(thehost, noexist); xbt_assert(!value, "The key exists (it's not supposed to)"); XBT_INFO("== Try to get a host property that does exist"); - value = MSG_host_get_property_value(thehost, exist); + value = sg_host_get_property_value(thehost, exist); xbt_assert(value, "\tProperty %s is undefined (where it should)", exist); xbt_assert(!strcmp(value, "180"), "\tValue of property %s is defined to %s (where it should be 180)", exist, value); XBT_INFO(" Property: %s old value: %s", exist, value); XBT_INFO("== Trying to modify a host property"); - MSG_host_set_property_value(thehost, exist, (char*)"250"); + sg_host_set_property_value(thehost, exist, (char*)"250"); /* Test if we have changed the value */ - value = MSG_host_get_property_value(thehost, exist); + value = sg_host_get_property_value(thehost, exist); xbt_assert(value, "Property %s is undefined (where it should)", exist); xbt_assert(!strcmp(value, "250"), "Value of property %s is defined to %s (where it should be 250)", exist, value); XBT_INFO(" Property: %s old value: %s", exist, value); /* Restore the value for the next test */ - MSG_host_set_property_value(thehost, exist, (char*)"180"); + sg_host_set_property_value(thehost, exist, (char*)"180"); xbt_dict_free(&props); } -static int alice(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[]) +static void alice(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[]) { /* Dump what we have on the current host */ test_host("host1"); - return 0; } -static int carole(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[]) -{ /* Dump what we have on a remote host */ - MSG_process_sleep(1); // Wait for alice to be done with its experiment +static void carole(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[]) +{ /* Dump what we have on a remote host */ + sg_actor_sleep_for(1); // Wait for alice to be done with its experiment test_host("host1"); - return 0; } -static int david(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[]) -{ /* Dump what we have on a remote host */ - MSG_process_sleep(2); // Wait for alice and carole to be done with its experiment +static void david(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[]) +{ /* Dump what we have on a remote host */ + sg_actor_sleep_for(2); // Wait for alice and carole to be done with its experiment test_host("node-0.simgrid.org"); - return 0; } -static int bob(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[]) +static void bob(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[]) { /* this host also tests the properties of the AS*/ - const_sg_netzone_t root = MSG_zone_get_root(); + const_sg_netzone_t root = sg_zone_get_root(); XBT_INFO("== Print the properties of the AS"); - XBT_INFO(" Process property: filename -> %s", MSG_zone_get_property_value(root, "filename")); - XBT_INFO(" Process property: date -> %s", MSG_zone_get_property_value(root, "date")); - XBT_INFO(" Process property: author -> %s", MSG_zone_get_property_value(root, "author")); + XBT_INFO(" Process property: filename -> %s", sg_zone_get_property_value(root, "filename")); + XBT_INFO(" Process property: date -> %s", sg_zone_get_property_value(root, "date")); + XBT_INFO(" Process property: author -> %s", sg_zone_get_property_value(root, "author")); /* Get the property list of current bob process */ - xbt_dict_t props = MSG_process_get_properties(MSG_process_self()); + xbt_dict_t props = sg_actor_get_properties(sg_actor_self()); xbt_dict_cursor_t cursor = NULL; char* key; char* data; @@ -90,41 +94,37 @@ static int bob(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[]) XBT_INFO("== Try to get a process property that does not exist"); - value = MSG_process_get_property_value(MSG_process_self(), noexist); + value = sg_actor_get_property_value(sg_actor_self(), noexist); xbt_assert(!value, "The property is defined (it shouldn't)"); xbt_dict_free(&props); - - return 0; } int main(int argc, char* argv[]) { - unsigned int i; - msg_host_t host; - - MSG_init(&argc, argv); - xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n" - "\tExample: %s msg_platform.xml msg_deployment.xml\n", + simgrid_init(&argc, argv); + xbt_assert(argc > 2, + "Usage: %s platform_file deployment_file\n" + "\tExample: %s msg_platform.xml msg_deployment.xml\n", argv[0], argv[0]); - MSG_function_register("alice", alice); - MSG_function_register("bob", bob); - MSG_function_register("carole", carole); - MSG_function_register("david", david); + simgrid_register_function("alice", alice); + simgrid_register_function("bob", bob); + simgrid_register_function("carole", carole); + simgrid_register_function("david", david); - MSG_create_environment(argv[1]); + simgrid_load_platform(argv[1]); + size_t host_count = sg_host_count(); + XBT_INFO("There are %zu hosts in the environment", host_count); - XBT_INFO("There are %zu hosts in the environment", MSG_get_host_number()); + sg_host_t* hosts = sg_host_list(); + for (size_t i = 0; i < host_count; i++) + XBT_INFO("Host '%s' runs at %.0f flops/s", sg_host_get_name(hosts[i]), sg_host_speed(hosts[i])); - xbt_dynar_t hosts = MSG_hosts_as_dynar(); - xbt_dynar_foreach (hosts, i, host) { - XBT_INFO("Host '%s' runs at %.0f flops/s", MSG_host_get_name(host), MSG_host_get_speed(host)); - } - xbt_dynar_free(&hosts); + free(hosts); - MSG_launch_application(argv[2]); + simgrid_load_deployment(argv[2]); - msg_error_t res = MSG_main(); + simgrid_run(); - return res != MSG_OK; + return 0; } diff --git a/teshsuite/msg/platform-properties/platform-properties.tesh b/examples/c/platform-properties/platform-properties.tesh similarity index 92% rename from teshsuite/msg/platform-properties/platform-properties.tesh rename to examples/c/platform-properties/platform-properties.tesh index c5668a48f2..7c4c31c4a2 100644 --- a/teshsuite/msg/platform-properties/platform-properties.tesh +++ b/examples/c/platform-properties/platform-properties.tesh @@ -1,9 +1,9 @@ #!/usr/bin/env tesh -p Testing a MSG application with properties in the XML for Hosts, Links and Processes +p Testing an application with properties in the XML for Hosts, Links and Processes ! output sort 19 -$ ${bindir:=.}/platform-properties ${platfdir}/prop.xml ${srcdir:=.}/platform-properties_d.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" +$ ${bindir:=.}/platform-properties-c ${platfdir}/prop.xml platform-properties_d.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" > [ 0.000000] (0:maestro@) There are 7 hosts in the environment > [ 0.000000] (0:maestro@) Host 'host1' runs at 1000000000 flops/s > [ 0.000000] (0:maestro@) Host 'host2' runs at 1000000000 flops/s diff --git a/teshsuite/msg/platform-properties/platform-properties_d.xml b/examples/c/platform-properties/platform-properties_d.xml similarity index 100% rename from teshsuite/msg/platform-properties/platform-properties_d.xml rename to examples/c/platform-properties/platform-properties_d.xml diff --git a/teshsuite/msg/CMakeLists.txt b/teshsuite/msg/CMakeLists.txt index 6efae26dfc..eeaa9c08e7 100644 --- a/teshsuite/msg/CMakeLists.txt +++ b/teshsuite/msg/CMakeLists.txt @@ -1,5 +1,5 @@ # C examples -foreach(x cloud-two-tasks get_sender platform-properties io-file task_listen_from task_destroy_cancel) +foreach(x cloud-two-tasks get_sender io-file task_listen_from task_destroy_cancel) if(enable_msg) add_executable (${x} EXCLUDE_FROM_ALL ${x}/${x}.c) target_link_libraries(${x} simgrid) @@ -25,12 +25,11 @@ set(teshsuite_src ${teshsuite_src} PARENT_SCOPE) set(tesh_files ${tesh_files} ${CMAKE_CURRENT_SOURCE_DIR}/app-bittorrent/app-bittorrent.tesh PARENT_SCOPE) set(bin_files ${bin_files} ${CMAKE_CURRENT_SOURCE_DIR}/app-bittorrent/generate.py PARENT_SCOPE) set(xml_files ${xml_files} ${CMAKE_CURRENT_SOURCE_DIR}/app-bittorrent/app-bittorrent_d.xml - ${CMAKE_CURRENT_SOURCE_DIR}/platform-properties/platform-properties_d.xml PARENT_SCOPE) if(enable_msg) foreach(x app-bittorrent cloud-two-tasks get_sender task_destroy_cancel task_listen_from - io-file platform-properties) + io-file) ADD_TESH_FACTORIES(tesh-msg-${x} "raw" --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/msg/${x}