diff --git a/.travis.yml b/.travis.yml index a9d1036dae9f924cb0d98d622c3c719d5ed961b9..425ff8b4fe329b5428c2fec73c920e0750922df7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,6 +49,8 @@ matrix: env: OS=ubuntu DIST=artful - name: Ubuntu Bionic (18.04) build + deploy DEB env: OS=ubuntu DIST=bionic + - name: Ubuntu Cosmic (18.10) build + deploy DEB + env: OS=ubuntu DIST=cosmic - name: Debian Wheezy (7) build + deploy DEB env: OS=debian DIST=wheezy - name: Debian Jessie (8) build + deploy DEB diff --git a/src/box/lua/session.c b/src/box/lua/session.c index 4542d59eca08bfa3b1de6d8d25b214da235b6165..d3d27643fde153c9c37f606d2f5cb8280bd749b0 100644 --- a/src/box/lua/session.c +++ b/src/box/lua/session.c @@ -369,15 +369,15 @@ static int lbox_session_push(struct lua_State *L) { struct session *session = current_session(); - int ok; uint64_t sync; switch(lua_gettop(L)) { case 1: sync = session_sync(session); break; case 2: - sync = lua_tointegerx(L, 2, &ok); - if (ok != 0) { + sync = luaL_touint64(L, 2); + if (sync != 0 || (lua_isnumber(L, 2) && + lua_tonumber(L, 2) == 0)) { lua_pop(L, 1); break; } diff --git a/test/app-tap/console.test.lua b/test/app-tap/console.test.lua index 1c76072aa6513c7fcfdf7ce618973cfc2f82064c..4f915afd73a5d77bcf2ed01e34bd82054e9740b1 100755 --- a/test/app-tap/console.test.lua +++ b/test/app-tap/console.test.lua @@ -21,7 +21,7 @@ local EOL = "\n...\n" test = tap.test("console") -test:plan(57) +test:plan(59) -- Start console and connect to it local server = console.listen(CONSOLE_SOCKET) @@ -39,6 +39,14 @@ test:is(client:read(EOL), '%TAG !push! tag:tarantool.io/push,2018\n--- 200\n...\ "pushed message") test:is(client:read(EOL), '---\n- true\n...\n', "pushed message") +-- +-- gh-3790: box.session.push support uint64_t sync. +-- +client:write('box.session.push(1, 9223372036854775808ULL)\n') +test:is(client:read(EOL), '%TAG !push! tag:tarantool.io/push,2018\n--- 1\n...\n', + "pushed message") +test:is(client:read(EOL), '---\n- true\n...\n', "pushed message") + -- Execute some command client:write("1\n") test:is(yaml.decode(client:read(EOL))[1], 1, "eval")