From e81e53025e4c1eb50fd3467298fae0ed61d6a01c Mon Sep 17 00:00:00 2001 From: Giovanna Lazzari Miotto <giovanna.lazzari.miotto@cern.ch> Date: Fri, 30 Aug 2024 11:01:07 +0200 Subject: [PATCH] improve creat --- test/testing_scripts/creat_test.cpp | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/test/testing_scripts/creat_test.cpp b/test/testing_scripts/creat_test.cpp index da79fd2c..447b3a77 100644 --- a/test/testing_scripts/creat_test.cpp +++ b/test/testing_scripts/creat_test.cpp @@ -39,7 +39,12 @@ int main(int argc, char *argv[]) { } generate_random_data(data, length - 1); - std::cout << "=== Data generated ===" << std::endl; + std::string baseline_path("/home/glazzari/random_baseline"); + int base_fd = open(baseline_path.c_str(), O_CREAT | O_RDWR); + write(base_fd, (void*) data, length); + close(base_fd); + + std::cout << "=== Data generated and written to " << baseline_path << " ===" << std::endl; // open() std::string open_filepath = filepath + "_write"; @@ -49,10 +54,15 @@ int main(int argc, char *argv[]) { std::cout << "Failed open() with fd=" << std::to_string(fd) << " and errno=" << std::to_string(errno) << std::endl; } else { - int write_rc = write(fd, (void *)data, sizeof(data)); - if (write_rc != sizeof(data)) { + int write_rc = write(fd, (void *)data, length); + if (write_rc != length) { std::cout << "write() call returned wrong value rc=" << std::to_string(write_rc) << std::endl; } else { + auto fsync_rc = fsync(fd); + if (fsync_rc != 0) { + std::cout << "write's fsync() failed errno=" << std::to_string(errno) << std::endl; + } + close(fd); std::cout << "sys open / write ran without failure" << std::endl; } } @@ -65,11 +75,15 @@ int main(int argc, char *argv[]) { if (stream_file == NULL) { std::cout << "Failed fopen() with errno=" << std::to_string(errno) << std::endl; } else { - int fwrite_rc = fwrite((void *)data, 1, sizeof(data), stream_file); - if (fwrite_rc != sizeof(data)) { + int fwrite_rc = fwrite((void *)data, 1, length, stream_file); + if (fwrite_rc != length) { std::cout << "fwrite() call returned wrong value rc=" << std::to_string(fwrite_rc) << std::endl; } else { + if (fflush(stream_file) != 0) { + std::cout << "fwrite's fflush() failed with errno=" << std::to_string(errno) << std::endl; + } + fclose(stream_file); std::cout << "fopen / fwrite ran without failure" << std::endl; } } -- GitLab