From: Matthias Wachs Date: Wed, 18 Sep 2013 13:53:37 +0000 (+0000) Subject: basic log file writing functionality X-Git-Tag: initial-import-from-subversion-38251~7237 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=4119281014d1002eb3f6477669455e242cf6fb88;p=oweals%2Fgnunet.git basic log file writing functionality --- diff --git a/src/ats-tests/perf_ats.c b/src/ats-tests/perf_ats.c index bdd306ec4..bad7076ca 100644 --- a/src/ats-tests/perf_ats.c +++ b/src/ats-tests/perf_ats.c @@ -116,6 +116,11 @@ static int test_core; */ static char *solver; +/** + * Preference string + */ +static char *testname; + /** * Preference string */ @@ -451,7 +456,7 @@ do_benchmark () mps[c_m].ats_task = GNUNET_SCHEDULER_add_now (&ats_pref_task, &mps[c_m]); } if (GNUNET_YES == logging) - perf_logging_start (mps, num_masters); + perf_logging_start (testname, mps, num_masters); } static void @@ -1207,6 +1212,7 @@ main (int argc, char *argv[]) logging = GNUNET_YES; } + GNUNET_asprintf (&testname, "%s_%s_%s",solver, comm_name, pref_str); if (num_slaves < num_masters) { @@ -1240,6 +1246,7 @@ main (int argc, char *argv[]) GNUNET_free(pref_str); GNUNET_free(conf_name); GNUNET_free(test_name); + GNUNET_free(testname); GNUNET_free (comm_name); GNUNET_free(mps); GNUNET_free(sps); diff --git a/src/ats-tests/perf_ats.h b/src/ats-tests/perf_ats.h index b8e0f1eb7..01484b1f8 100644 --- a/src/ats-tests/perf_ats.h +++ b/src/ats-tests/perf_ats.h @@ -218,7 +218,7 @@ void perf_logging_stop (); void -perf_logging_start (struct BenchmarkPeer *masters, int num_masters); +perf_logging_start (char * testname, struct BenchmarkPeer *masters, int num_masters); /* end of file perf_ats.h */ diff --git a/src/ats-tests/perf_ats_logging.c b/src/ats-tests/perf_ats_logging.c index 1864e0180..ac55b167c 100644 --- a/src/ats-tests/perf_ats_logging.c +++ b/src/ats-tests/perf_ats_logging.c @@ -33,11 +33,44 @@ static GNUNET_SCHEDULER_TaskIdentifier log_task; static struct BenchmarkPeer *peers; static int num_peers; +static char *name; + static void write_to_file () { + struct GNUNET_DISK_FileHandle *f; + char * filename; + + + GNUNET_asprintf (&filename, "%llu_%s.data", GNUNET_TIME_absolute_get().abs_value_us,name); + + f = GNUNET_DISK_file_open (filename, + GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE, + GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE); + if (NULL == f) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot open log file `%s'\n", filename); + GNUNET_free (filename); + return; + } + + if (GNUNET_SYSERR == GNUNET_DISK_file_write(f, "TEST", strlen("TEST"))) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot write data to log file `%s'\n", filename); + GNUNET_free (filename); + return; + } + + if (GNUNET_SYSERR == GNUNET_DISK_file_close(f)) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot close log file `%s'\n", filename); + GNUNET_free (filename); + return; + } + GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Data file successfully written to log file `%s'\n", filename); + GNUNET_free (filename); } static void @@ -88,13 +121,14 @@ perf_logging_stop () } void -perf_logging_start (struct BenchmarkPeer *masters, int num_masters) +perf_logging_start (char * testname, struct BenchmarkPeer *masters, int num_masters) { GNUNET_log(GNUNET_ERROR_TYPE_INFO, - _("Start logging\n")); + _("Start logging `%s'\n"), testname); peers = masters; num_peers = num_masters; + name = testname; /* Schedule logging task */ log_task = GNUNET_SCHEDULER_add_now (&collect_log_task, NULL);