From cef72adabc48328bf8e43baf3792cf0a2a18a8a5 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 8 Apr 2020 02:28:29 -0700 Subject: [PATCH] util: Standardize console output in the m5 writefile command. When the command reports an error, it should then exit(2) and not just return as if everything worked. When printing the number of bytes written or the file being opened, it should write this non-error message to cout, and not cerr. Also used proper capitalization and punctuation in a couple messages. Change-Id: I2c0d6592357965ed2eee8f090c8b3d530b354b9f Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/27627 Reviewed-by: Jason Lowe-Power Reviewed-by: Pouya Fotouhi Maintainer: Jason Lowe-Power Tested-by: kokoro --- util/m5/src/command/writefile.cc | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/util/m5/src/command/writefile.cc b/util/m5/src/command/writefile.cc index bef193296..7771dfe03 100644 --- a/util/m5/src/command/writefile.cc +++ b/util/m5/src/command/writefile.cc @@ -26,6 +26,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include + #include #include #include @@ -41,12 +43,13 @@ void write_file(const DispatchTable &dt, const std::string &filename, const std::string &host_filename) { - std::cerr << "opening " << filename << std::endl; + std::cout << "Opening \"" << filename << "\"." << std::endl; std::ifstream src(filename, std::ios_base::in | std::ios_base::binary); if (!src) { - std::cerr << "error opening " << filename << std::endl; - return; + std::cerr << "Error opening \"" << filename << "\": " << + strerror(errno) << std::endl; + exit(2); } char buf[256 * 1024]; @@ -58,8 +61,11 @@ write_file(const DispatchTable &dt, const std::string &filename, src.seekg(offset); src.read(buf, sizeof(buf)); int len = src.gcount(); - if (!src && !src.eof()) - break; + if (!src && !src.eof()) { + std::cerr << "Error reading \"" << filename << "\": " << + strerror(errno) << std::endl; + exit(2); + } char *wbuf = buf; while (len) { int bytes = (*dt.m5_write_file)( @@ -71,7 +77,7 @@ write_file(const DispatchTable &dt, const std::string &filename, if (src.eof()) break; } - std::cerr << "Wrote " << offset << " bytes." << std::endl; + std::cout << "Wrote " << offset << " bytes." << std::endl; } bool -- 2.30.2