[Tarantool-patches] [PATCH v6 0/4] popen: Add ability to run external process

Cyrill Gorcunov gorcunov at gmail.com
Tue Dec 17 15:54:16 MSK 2019


In this series we provide a way to execute external binaries
from inside of Lua scripts, control children process and
communicate with their stdin/out/err streams.

In v6 I reworked the API using coio as main nonblocking
i/o engine. (v3,4,5 are kept internal for testing reasons).

Probably the best way to start read this series is
the last patch where real examples of usage are
present.

Note the tests won't pass because they require our
test-run engine to unblock 'popen' module. Still
if do these commands inside tarantool console they
work as expected and give enough information about
API.

Issue https://github.com/tarantool/tarantool/issues/4031
Branch https://github.com/tarantool/tarantool/tree/gorcunov/gh-4031-popen-6

Cyrill Gorcunov (4):
  coio: Export helpers and provide coio_read_fd_timeout
  popen: Introduce a backend engine
  popen/lua: Add popen module
  popen/test: Add base test cases

 src/CMakeLists.txt          |    2 +
 src/box/applier.cc          |    2 +-
 src/lib/core/CMakeLists.txt |    1 +
 src/lib/core/coio.cc        |   41 ++
 src/lib/core/coio.h         |   31 +-
 src/lib/core/popen.c        | 1204 +++++++++++++++++++++++++++++++++++
 src/lib/core/popen.h        |  207 ++++++
 src/lua/init.c              |    4 +
 src/lua/popen.c             |  483 ++++++++++++++
 src/lua/popen.h             |   44 ++
 src/lua/popen.lua           |  516 +++++++++++++++
 src/main.cc                 |    4 +
 test/app/popen.result       |  234 +++++++
 test/app/popen.test.lua     |   91 +++
 14 files changed, 2858 insertions(+), 6 deletions(-)
 create mode 100644 src/lib/core/popen.c
 create mode 100644 src/lib/core/popen.h
 create mode 100644 src/lua/popen.c
 create mode 100644 src/lua/popen.h
 create mode 100644 src/lua/popen.lua
 create mode 100644 test/app/popen.result
 create mode 100644 test/app/popen.test.lua

-- 
2.20.1



More information about the Tarantool-patches mailing list