From: Frederic Suter Date: Sat, 30 Dec 2017 15:53:40 +0000 (+0100) Subject: avoid xbt_strdup in c++ examples and tests X-Git-Tag: v3.19~380 X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/6ccef0a7af1ab9d024bc2e6269be292b10c448cb avoid xbt_strdup in c++ examples and tests --- diff --git a/examples/s4u/io-storage-raw/s4u-io-storage-raw.cpp b/examples/s4u/io-storage-raw/s4u-io-storage-raw.cpp index b4dc505ca5..7ab871bdba 100644 --- a/examples/s4u/io-storage-raw/s4u-io-storage-raw.cpp +++ b/examples/s4u/io-storage-raw/s4u-io-storage-raw.cpp @@ -34,14 +34,14 @@ static void host() /* - Attach some user data to disk1 */ XBT_INFO("*** Get/set data for storage element: Disk4 ***"); - char* data = static_cast(storage->getUserdata()); + std::string* data = static_cast(storage->getUserdata()); - XBT_INFO("Get storage data: '%s'", data); + XBT_INFO("Get storage data: '%s'", data ? data->c_str() : "No user data"); - storage->setUserdata(xbt_strdup("Some user data")); - data = static_cast(storage->getUserdata()); - XBT_INFO("Set and get data: '%s'", data); - xbt_free(data); + storage->setUserdata(new std::string("Some user data")); + data = static_cast(storage->getUserdata()); + XBT_INFO("Set and get data: '%s'", data->c_str()); + delete data; } int main(int argc, char** argv) diff --git a/examples/s4u/io-storage-raw/s4u-io-storage-raw.tesh b/examples/s4u/io-storage-raw/s4u-io-storage-raw.tesh index 0f8642dce5..c72cbb36f1 100644 --- a/examples/s4u/io-storage-raw/s4u-io-storage-raw.tesh +++ b/examples/s4u/io-storage-raw/s4u-io-storage-raw.tesh @@ -7,6 +7,6 @@ $ ${bindir}/s4u-io-storage-raw$EXEEXT ${platfdir}/storage/storage.xml "--log=roo > [ 0.003333] (1:@denise) Wrote 200000 bytes on 'Disk4' > [ 0.004333] (1:@denise) Read 200000 bytes on 'Disk4' > [ 0.004333] (1:@denise) *** Get/set data for storage element: Disk4 *** -> [ 0.004333] (1:@denise) Get storage data: '(null)' +> [ 0.004333] (1:@denise) Get storage data: 'No user data' > [ 0.004333] (1:@denise) Set and get data: 'Some user data' > [ 0.004333] (0:maestro@) Simulated time: 0.00433333 diff --git a/teshsuite/s4u/listen_async/listen_async.cpp b/teshsuite/s4u/listen_async/listen_async.cpp index 19a31c9167..0951f56316 100644 --- a/teshsuite/s4u/listen_async/listen_async.cpp +++ b/teshsuite/s4u/listen_async/listen_async.cpp @@ -17,28 +17,28 @@ static void server() { simgrid::s4u::MailboxPtr mailbox = simgrid::s4u::Mailbox::byName("mailbox"); - simgrid::s4u::CommPtr sendComm = mailbox->put_async(xbt_strdup("Some data"), 0); + simgrid::s4u::CommPtr sendComm = mailbox->put_async(new std::string("Some data"), 0); xbt_assert(mailbox->listen()); // True (1) XBT_INFO("Task listen works on regular mailboxes"); - char* res = static_cast(mailbox->get()); + std::string* res = static_cast(mailbox->get()); - xbt_assert(not strcmp("Some data", res), "Data received: %s", res); + xbt_assert(*res == "Some data", "Data received: %s", res->c_str()); XBT_INFO("Data successfully received from regular mailbox"); - xbt_free(res); + delete res; sendComm->wait(); simgrid::s4u::MailboxPtr mailbox2 = simgrid::s4u::Mailbox::byName("mailbox2"); mailbox2->setReceiver(simgrid::s4u::Actor::self()); - mailbox2->put_init(xbt_strdup("More data"), 0)->detach(); + mailbox2->put_init(new std::string("More data"), 0)->detach(); xbt_assert(mailbox2->listen()); // used to break. XBT_INFO("Task listen works on asynchronous mailboxes"); - res = static_cast(mailbox2->get()); - xbt_assert(not strcmp("More data", res)); - xbt_free(res); + res = static_cast(mailbox2->get()); + xbt_assert(*res == "More data"); + delete res; XBT_INFO("Data successfully received from asynchronous mailbox"); } diff --git a/teshsuite/s4u/storage_client_server/storage_client_server.cpp b/teshsuite/s4u/storage_client_server/storage_client_server.cpp index 1f14a3e873..3426e6bf13 100644 --- a/teshsuite/s4u/storage_client_server/storage_client_server.cpp +++ b/teshsuite/s4u/storage_client_server/storage_client_server.cpp @@ -80,12 +80,12 @@ static void get_set_storage_data(const std::string& storage_name) XBT_INFO("*** GET/SET DATA for storage element: %s ***", storage_name.c_str()); simgrid::s4u::Storage* storage = simgrid::s4u::Storage::byName(storage_name); - char* data = static_cast(storage->getUserdata()); - XBT_INFO("Get data: '%s'", data); - storage->setUserdata(xbt_strdup("Some data")); - data = static_cast(storage->getUserdata()); - XBT_INFO("\tSet and get data: '%s'", data); - xbt_free(data); + std::string* data = static_cast(storage->getUserdata()); + XBT_INFO("Get data: '%s'", data ? data->c_str() : "No User Data"); + storage->setUserdata(new std::string("Some data")); + data = static_cast(storage->getUserdata()); + XBT_INFO("\tSet and get data: '%s'", data->c_str()); + delete data; } static void dump_platform_storages() diff --git a/teshsuite/s4u/storage_client_server/storage_client_server.tesh b/teshsuite/s4u/storage_client_server/storage_client_server.tesh index f978fb4ec8..8cc8816b2b 100644 --- a/teshsuite/s4u/storage_client_server/storage_client_server.tesh +++ b/teshsuite/s4u/storage_client_server/storage_client_server.tesh @@ -57,7 +57,7 @@ $ ./storage_client_server$EXEEXT ${platfdir}/storage/storage.xml "--log=root.fmt > [ 1.207952] (server@alice) Free size: 534479367024 bytes > [ 1.207952] (server@alice) Used size: 2391544976 bytes > [ 1.207952] (client@bob) *** GET/SET DATA for storage element: Disk1 *** -> [ 1.207952] (client@bob) Get data: '(null)' +> [ 1.207952] (client@bob) Get data: 'No User Data' > [ 1.207952] (client@bob) Set and get data: 'Some data' > [ 1.207952] (server@alice) No property attached. > [ 1.207952] (server@alice) *** Dump a storage element ***