Skip to content

Commit e908f0b

Browse files
committed
tests: queue tests fix
Before this patch, queue tests failed due to impossibility to use _queue_taken, which was deprecated in tarantool/queue [1]. Switch to _queue_taken_2 fixed it. Create access and some other actions were denied for test user. Additional grants fixed this problem. The test `TestUtube_Put` was affected by replacing timeout in the call of `TakeTimeout()` with timeout of connection structure. For clarification of this effect see annotation for function `TakeTimeout()` [2]. That was fixed by making connection timeout longer than the timeout in the function call. The step in testing.yml was uncommented for enabling queue tests in CI. 1. https://github.com/tarantool/queue/tree/7d05b6db5b0d596db4281d53b57811e156234a0d#fields-of-the-_queue_consumers-space 2. https://github.com/tarantool/go-tarantool/blob/master/queue/queue.go#L35 Fixes #115
1 parent 9c9a68e commit e908f0b

File tree

4 files changed

+52
-36
lines changed

4 files changed

+52
-36
lines changed

.github/workflows/reusable_testing.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@ jobs:
4545
go clean -testcache && go test -v
4646
kill $TNT_PID
4747
48-
# TODO(ylobankov): Uncomment this when tarantool/go-tarantool#115 is resolved.
49-
# - name: Run queue tests
50-
# working-directory: ./queue
51-
# run: |
52-
# mkdir snap xlog
53-
# tarantoolctl rocks install queue 1.1.0
54-
# TNT_PID=$(tarantool ./config.lua > tarantool.log 2>&1 & echo $!)
55-
# go clean -testcache && go test -v
56-
# kill $TNT_PID
48+
- name: Run queue tests
49+
working-directory: ./queue
50+
run: |
51+
mkdir snap xlog
52+
tarantoolctl rocks install queue 1.1.0
53+
TNT_PID=$(tarantool ./config.lua > tarantool.log 2>&1 & echo $!)
54+
go clean -testcache && go test -v
55+
kill $TNT_PID
56+
if: ${{ !startsWith(env.TNT_VERSION, 'Tarantool 1.10') }}
5757

5858
- name: Run uuid tests
5959
working-directory: ./uuid

.github/workflows/testing.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@ jobs:
4646
go clean -testcache && go test -v
4747
kill $TNT_PID
4848
49-
# TODO(ylobankov): Uncomment this when tarantool/go-tarantool#115 is resolved.
50-
# - name: Run queue tests
51-
# working-directory: ./queue
52-
# run: |
53-
# mkdir snap xlog
54-
# tarantoolctl rocks install queue 1.1.0
55-
# TNT_PID=$(tarantool ./config.lua > tarantool.log 2>&1 & echo $!)
56-
# go clean -testcache && go test -v
57-
# kill $TNT_PID
49+
- name: Run queue tests
50+
working-directory: ./queue
51+
run: |
52+
rm -rf snap
53+
rm -rf xlog
54+
mkdir snap xlog
55+
tarantoolctl rocks install queue 1.1.0
56+
tarantool ./config.lua
57+
if: ${{ matrix.tarantool == 1.10 }}
5858

5959
- name: Run uuid tests
6060
working-directory: ./uuid

queue/config.lua

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
queue = require 'queue'
1+
queue = require('queue')
22

33
box.cfg{
44
listen = 3013,
@@ -18,12 +18,26 @@ box.schema.func.create('queue.tube.test_queue:delete')
1818
box.schema.func.create('queue.tube.test_queue:release')
1919
box.schema.func.create('queue.tube.test_queue:bury')
2020
box.schema.func.create('queue.statistics')
21+
box.schema.user.grant('test','create','space')
22+
box.schema.user.grant('test','write', 'space', '_schema')
23+
box.schema.user.grant('test','write', 'space', '_space')
24+
box.schema.user.grant('test','read,write','space','_space_sequence')
25+
box.schema.user.grant('test','write','space', '_index')
26+
box.schema.create_space('_trigger', {if_not_exists = true})
27+
box.schema.create_space('_fk_constraint', {if_not_exists = true})
28+
box.schema.create_space('_ck_constraint', {if_not_exists = true})
29+
box.schema.create_space('_func_index', {if_not_exists = true})
30+
box.schema.user.grant('test','read','space','_trigger')
31+
box.schema.user.grant('test','read','space','_fk_constraint')
32+
box.schema.user.grant('test','read','space','_ck_constraint')
33+
box.schema.user.grant('test','read','space','_func_index')
34+
box.schema.user.grant('test','read, write','space','_queue_session_ids')
2135
box.schema.user.grant('test', 'execute', 'universe')
2236
box.schema.user.grant('test', 'read,write', 'space', '_queue')
2337
box.schema.user.grant('test', 'read,write', 'space', '_schema')
2438
box.schema.user.grant('test', 'read,write', 'space', '_space')
2539
box.schema.user.grant('test', 'read,write', 'space', '_index')
2640
box.schema.user.grant('test', 'read,write', 'space', '_queue_consumers')
2741
box.schema.user.grant('test', 'read,write', 'space', '_priv')
28-
box.schema.user.grant('test', 'read,write', 'space', '_queue_taken')
42+
box.schema.user.grant('test', 'read,write', 'space', '_queue_taken_2')
2943
end)

queue/queue_test.go

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313

1414
var server = "127.0.0.1:3013"
1515
var opts = Opts{
16-
Timeout: 500 * time.Millisecond,
16+
Timeout: 2500 * time.Millisecond,
1717
User: "test",
1818
Pass: "test",
1919
//Concurrency: 32,
@@ -36,7 +36,7 @@ func TestFifoQueue(t *testing.T) {
3636

3737
name := "test_queue"
3838
q := queue.New(conn, name)
39-
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO}); err != nil {
39+
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO, IfNotExists: true}); err != nil {
4040
t.Errorf("Failed to create queue: %s", err.Error())
4141
return
4242
}
@@ -61,7 +61,7 @@ func TestFifoQueue_GetExist_Statistic(t *testing.T) {
6161

6262
name := "test_queue"
6363
q := queue.New(conn, name)
64-
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO}); err != nil {
64+
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO, IfNotExists: true}); err != nil {
6565
t.Errorf("Failed to create queue: %s", err.Error())
6666
return
6767
}
@@ -112,7 +112,7 @@ func TestFifoQueue_Put(t *testing.T) {
112112

113113
name := "test_queue"
114114
q := queue.New(conn, name)
115-
if err := q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO}); err != nil {
115+
if err := q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO, IfNotExists: true}); err != nil {
116116
t.Errorf("Failed to create queue: %s", err.Error())
117117
return
118118
}
@@ -155,7 +155,7 @@ func TestFifoQueue_Take(t *testing.T) {
155155

156156
name := "test_queue"
157157
q := queue.New(conn, name)
158-
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO}); err != nil {
158+
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO, IfNotExists: true}); err != nil {
159159
t.Errorf("Failed to create queue: %s", err.Error())
160160
return
161161
}
@@ -251,7 +251,7 @@ func TestFifoQueue_TakeTyped(t *testing.T) {
251251

252252
name := "test_queue"
253253
q := queue.New(conn, name)
254-
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO}); err != nil {
254+
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO, IfNotExists: true}); err != nil {
255255
t.Errorf("Failed to create queue: %s", err.Error())
256256
return
257257
}
@@ -328,7 +328,7 @@ func TestFifoQueue_Peek(t *testing.T) {
328328

329329
name := "test_queue"
330330
q := queue.New(conn, name)
331-
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO}); err != nil {
331+
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO, IfNotExists: true}); err != nil {
332332
t.Errorf("Failed to create queue: %s", err.Error())
333333
return
334334
}
@@ -387,7 +387,7 @@ func TestFifoQueue_Bury_Kick(t *testing.T) {
387387

388388
name := "test_queue"
389389
q := queue.New(conn, name)
390-
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO}); err != nil {
390+
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO, IfNotExists: true}); err != nil {
391391
t.Errorf("Failed to create queue: %s", err.Error())
392392
return
393393
}
@@ -474,7 +474,7 @@ func TestFifoQueue_Delete(t *testing.T) {
474474

475475
name := "test_queue"
476476
q := queue.New(conn, name)
477-
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO}); err != nil {
477+
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO, IfNotExists: true}); err != nil {
478478
t.Errorf("Failed to create queue: %s", err.Error())
479479
return
480480
}
@@ -549,7 +549,7 @@ func TestFifoQueue_Release(t *testing.T) {
549549

550550
name := "test_queue"
551551
q := queue.New(conn, name)
552-
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO}); err != nil {
552+
if err = q.Create(queue.Cfg{Temporary: true, Kind: queue.FIFO, IfNotExists: true}); err != nil {
553553
t.Errorf("Failed to create queue: %s", err.Error())
554554
return
555555
}
@@ -634,9 +634,10 @@ func TestTtlQueue(t *testing.T) {
634634

635635
name := "test_queue"
636636
cfg := queue.Cfg{
637-
Temporary: true,
638-
Kind: queue.FIFO_TTL,
639-
Opts: queue.Opts{Ttl: 5 * time.Second},
637+
Temporary: true,
638+
Kind: queue.FIFO_TTL,
639+
Opts: queue.Opts{Ttl: 5 * time.Second},
640+
IfNotExists: true,
640641
}
641642
q := queue.New(conn, name)
642643
if err = q.Create(cfg); err != nil {
@@ -691,9 +692,10 @@ func TestTtlQueue_Put(t *testing.T) {
691692

692693
name := "test_queue"
693694
cfg := queue.Cfg{
694-
Temporary: true,
695-
Kind: queue.FIFO_TTL,
696-
Opts: queue.Opts{Ttl: 5 * time.Second},
695+
Temporary: true,
696+
Kind: queue.FIFO_TTL,
697+
Opts: queue.Opts{Ttl: 5 * time.Second},
698+
IfNotExists: true,
697699
}
698700
q := queue.New(conn, name)
699701
if err = q.Create(cfg); err != nil {

0 commit comments

Comments
 (0)