Max, thanks for the cake patches! LGTM On 7/14/23 15:41, Maxim Kokryashkin wrote: > Hi! Thanks for the review. > > Hello, Max! > > Thanks for the patch! See my comments. > > > Sergey > > On 7/10/23 14:24, Maksim Kokryashkin wrote: > > From: Maxim Kokryashkin > > > > > It is really inconvenient to use a standalone shell script > to parse > > memprof dump. That is why this commit introduces a CLI flag > for tools > > to the LuaJIT, so now it is possible to parse memprof dump > > as simple as: > > ``` > > luajit -tm memprof.bin > > ``` > > > > Closes tarantool/tarantool#5688 > > --- > > Changes in v7: > > - Fixed comments as per review by Sergey > > > > Branch: > https://github.com/tarantool/luajit/tree/fckxorg/gh-5688-cli-for-memprof-parse > > PR: https://github.com/tarantool/tarantool/pull/8002 > > > > src/luajit.c | 32 +++++++++- > > .../gh-5688-memprof-cli-flag.test.lua | 58 +++++++++++++++++++ > > 2 files changed, 89 insertions(+), 1 deletion(-) > > create mode 100644 > test/tarantool-tests/gh-5688-memprof-cli-flag.test.lua > > > > diff --git a/src/luajit.c b/src/luajit.c > > index 1ca24301..d335f32b 100644 > > --- a/src/luajit.c > > +++ b/src/luajit.c > > @@ -72,6 +72,7 @@ static void print_usage(void) > > " -O[opt] Control LuaJIT optimizations.\n" > > " -i Enter interactive mode after executing " > LUA_QL("script") ".\n" > > " -v Show version information.\n" > > + " -t[cmd] Execute tool.\n" > > According to usage cmd after -t option is optional. However > without cmd > luajit prints usage > > that hints about incorrect usage: > > > [0] ~/sources/MRG/tarantool/third_party/luajit$ ./src/luajit -t > usage: ./src/luajit [options]... [script [args]...]. > Available options are: >    -e chunk  Execute string 'chunk'. >    -l name   Require library 'name'. >    -b ...    Save or list bytecode. >    -j cmd    Perform LuaJIT control command. >    -O[opt]   Control LuaJIT optimizations. >    -i        Enter interactive mode after executing 'script'. >    -v        Show version information. >    -t[cmd]   Execute tool. >    -E        Ignore environment variables. >    --        Stop handling options. >    -         Execute stdin and stop handling options. > > Fixed! Branch is force-pushed, here is the diff: > ========================================================= > diff --git a/src/luajit.c b/src/luajit.c > index d335f32b..c16138f0 100644 > --- a/src/luajit.c > +++ b/src/luajit.c > @@ -72,7 +72,7 @@ static void print_usage(void) >    "  -O[opt]   Control LuaJIT optimizations.\n" >    "  -i        Enter interactive mode after executing " > LUA_QL("script") ".\n" >    "  -v        Show version information.\n" > -  "  -t[cmd]   Execute tool.\n" > +  "  -t(cmd)   Execute tool.\n" >    "  -E        Ignore environment variables.\n" >    "  --        Stop handling options.\n" >    "  -         Execute stdin and stop handling options.\n", stderr); > ========================================================= > > > > > +end > > + > > +generate_output(TMP_BINFILE, default_payload) > > + > > +local errcode = os.execute(EXECUTABLE .. ' -tinvalid ' .. > TMP_BINFILE) > > +test:ok(errcode ~= 0, 'invalid tool flag') > > + > > +errcode = os.execute(EXECUTABLE .. ' -tm ' .. BAD_PATH) > > +test:ok(errcode ~= 0, 'binfile does not exist') > > + > > +errcode = os.execute(EXECUTABLE .. ' -tm ' .. TMP_BINFILE) > > +test:ok(errcode == 0, 'memprof binfile parsing') > Nit: probably it is worth adding  checks for output. > > + > > +os.remove(TMP_BINFILE) > > +os.exit(test:check() and 0 or 1) > > -- > > 2.39.2 (Apple Git-143) > > > > -- > Best regards, > Maxim Kokryashkin >