From e45fa36717f2c170a6697915e51b8f65c362e80f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 10 Sep 2022 19:43:04 -0400 Subject: [PATCH] improve error messages --- src/write_restart.cpp | 21 ++++++++++----------- unittest/formats/test_file_operations.cpp | 2 +- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/write_restart.cpp b/src/write_restart.cpp index 828d9e6057..2fe2f8d373 100644 --- a/src/write_restart.cpp +++ b/src/write_restart.cpp @@ -61,7 +61,7 @@ void WriteRestart::command(int narg, char **arg) { if (domain->box_exist == 0) error->all(FLERR,"Write_restart command before simulation box is defined"); - if (narg < 1) error->all(FLERR,"Illegal write_restart command"); + if (narg < 1) utils::missing_cmd_args(FLERR, "write_restart", error); // if filename contains a "*", replace with current timestep @@ -154,11 +154,11 @@ void WriteRestart::multiproc_options(int multiproc_caller, int mpiioflag_caller, int iarg = 0; while (iarg < narg) { if (strcmp(arg[iarg],"fileper") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal write_restart command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "write_restart", error); if (!multiproc) error->all(FLERR,"Cannot use write_restart fileper without % in restart file name"); int nper = utils::inumeric(FLERR,arg[iarg+1],false,lmp); - if (nper <= 0) error->all(FLERR,"Illegal write_restart command"); + if (nper <= 0) error->all(FLERR,"Invalue write_restart fileper value {}:", nper); multiproc = nprocs/nper; if (nprocs % nper) multiproc++; @@ -171,11 +171,11 @@ void WriteRestart::multiproc_options(int multiproc_caller, int mpiioflag_caller, iarg += 2; } else if (strcmp(arg[iarg],"nfile") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal write_restart command"); + if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "write_restart nfile", error); if (!multiproc) error->all(FLERR,"Cannot use write_restart nfile without % in restart file name"); int nfile = utils::inumeric(FLERR,arg[iarg+1],false,lmp); - if (nfile <= 0) error->all(FLERR,"Illegal write_restart command"); + if (nfile <= 0) error->all(FLERR,"Invalid write_restart nfile value {}", nfile); nfile = MIN(nfile,nprocs); multiproc = nfile; @@ -195,7 +195,7 @@ void WriteRestart::multiproc_options(int multiproc_caller, int mpiioflag_caller, } else if (strcmp(arg[iarg],"noinit") == 0) { noinit = 1; iarg++; - } else error->all(FLERR,"Illegal write_restart command"); + } else error->all(FLERR,"Unknown write_restart keyword: {}", arg[iarg]); } } @@ -221,7 +221,8 @@ void WriteRestart::write(const std::string &file) bigint nblocal = atom->nlocal; MPI_Allreduce(&nblocal,&natoms,1,MPI_LMP_BIGINT,MPI_SUM,world); if (natoms != atom->natoms && output->thermo->lostflag == Thermo::ERROR) - error->all(FLERR,"Atom count is inconsistent, cannot write restart file"); + error->all(FLERR,"Atom count is inconsistent: {} vs {}, cannot write restart file", + natoms, atom->natoms); // open single restart file or base file for multiproc case @@ -231,8 +232,7 @@ void WriteRestart::write(const std::string &file) fp = fopen(base.c_str(),"wb"); if (fp == nullptr) - error->one(FLERR, "Cannot open restart file {}: {}", - base, utils::getsyserror()); + error->one(FLERR, "Cannot open restart file {}: {}", base, utils::getsyserror()); } // proc 0 writes magic string, endian flag, numeric version @@ -294,8 +294,7 @@ void WriteRestart::write(const std::string &file) if (filewriter) { fp = fopen(multiname.c_str(),"wb"); if (fp == nullptr) - error->one(FLERR, "Cannot open restart file {}: {}", - multiname, utils::getsyserror()); + error->one(FLERR, "Cannot open restart file {}: {}", multiname, utils::getsyserror()); write_int(PROCSPERFILE,nclusterprocs); } } diff --git a/unittest/formats/test_file_operations.cpp b/unittest/formats/test_file_operations.cpp index 6a3fef48b3..d0a6ef873c 100644 --- a/unittest/formats/test_file_operations.cpp +++ b/unittest/formats/test_file_operations.cpp @@ -348,7 +348,7 @@ TEST_F(FileOperationsTest, write_restart) } TEST_FAILURE(".*ERROR: Illegal write_restart command.*", command("write_restart");); - TEST_FAILURE(".*ERROR: Illegal write_restart command.*", + TEST_FAILURE(".*ERROR: Unknown write_restart keyword: xxxx.*", command("write_restart test.restart xxxx");); TEST_FAILURE(".*ERROR on proc 0: Cannot open restart file some_crazy_dir/test.restart:" " No such file or directory.*",