Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
eae26153
Commit
eae26153
authored
Apr 17, 2020
by
antirez
Browse files
Merge branch 'unstable' of github.com:/antirez/redis into unstable
parents
37b135a4
a71a6b5a
Changes
4
Hide whitespace changes
Inline
Side-by-side
.github/workflows/ci.yml
View file @
eae26153
...
...
@@ -12,9 +12,9 @@ jobs:
-
name
:
test
run
:
|
sudo apt-get install tcl8.5
./runtest
--clients 2
--verbose
./runtest --verbose
-
name
:
module api test
run
:
./runtest-moduleapi
--clients 2
--verbose
run
:
./runtest-moduleapi --verbose
build-ubuntu-old
:
runs-on
:
ubuntu-16.04
...
...
redis.conf
View file @
eae26153
...
...
@@ -737,6 +737,14 @@ replica-priority 100
# For more information about ACL configuration please refer to
# the Redis web site at https://redis.io/topics/acl
# ACL LOG
#
# The ACL Log tracks failed commands and authentication events associated
# with ACLs. The ACL Log is useful to troubleshoot failed commands blocked
# by ACLs. The ACL Log is stored in memory. You can reclaim memory with
# ACL LOG RESET. Define the maximum entry length of the ACL Log below.
acllog
-
max
-
len
128
# Using an external ACL file
#
# Instead of configuring users here in this file, it is possible to use
...
...
tests/test_helper.tcl
View file @
eae26153
...
...
@@ -82,6 +82,7 @@ set ::skiptests {}
set ::allowtags
{}
set ::only_tests
{}
set ::single_tests
{}
set ::run_solo_tests
{}
set ::skip_till
""
set ::external 0
;
# If
"1"
this means, we are running against external instance
set ::file
""
;
# If set, runs only the tests in this comma separated list
...
...
@@ -112,6 +113,11 @@ proc execute_tests name {
send_data_packet $::test_server_fd done
"
$name
"
}
proc execute_code
{
name code
}
{
eval $code
send_data_packet $::test_server_fd done
"
$name
"
}
# Setup a list to hold a stack of server configs. When calls to start_server
# are nested, use
"srv 0 pid"
to get the pid of the inner server. To access
# outer servers, use
"srv -1 pid"
etcetera.
...
...
@@ -188,6 +194,18 @@ proc s {args} {
status
[
srv $level
"client"
]
[
lindex $args 0
]
}
# Test wrapped into run_solo are sent back from the client to the
# test server, so that the test server will send them again to
# clients once the clients are idle.
proc run_solo
{
name code
}
{
if
{
$::numclients
== 1 || $::loop || $::external
}
{
# run_solo is not supported in these scenarios, just run the code.
eval $code
return
}
send_data_packet $::test_server_fd run_solo
[
list $name $code
]
}
proc cleanup
{}
{
if
{
$::dont
_clean
}
{
return
...
...
@@ -337,6 +355,8 @@ proc read_from_test_client fd {
}
elseif
{
$status
eq
{
server-killed
}}
{
set ::active_servers
[
lsearch -all -inline -not -exact $::active_servers $data
]
set ::active_clients_task
(
$fd
)
"(KILLED SERVER) pid:
$data
"
}
elseif
{
$status
eq
{
run_solo
}}
{
lappend ::run_solo_tests $data
}
else
{
if
{
!$::quiet
}
{
puts
"
\[
$status
\]
:
$data
"
...
...
@@ -369,6 +389,13 @@ proc force_kill_all_servers {} {
}
}
proc lpop
{
listVar
{
count 1
}}
{
upvar 1 $listVar l
set ele
[
lindex $l 0
]
set l
[
lrange $l 1 end
]
set ele
}
# A new client is idle. Remove it from the list of active clients and
# if there are still test units to run, launch them.
proc signal_idle_client fd
{
...
...
@@ -389,6 +416,14 @@ proc signal_idle_client fd {
if
{
$::loop
&& $::next_test ==
[
llength $::all_tests
]}
{
set ::next_test 0
}
}
elseif
{[
llength $::run_solo_tests
]
!= 0 &&
[
llength $::active_clients
]
== 0
}
{
if
{
!$::quiet
}
{
puts
[
colorstr bold-white
"Testing solo test"
]
set ::active_clients_task
(
$fd
)
"ASSIGNED:
$fd
solo test"
}
set ::clients_start_time
(
$fd
)
[
clock seconds
]
send_data_packet $fd run_code
[
lpop ::run_solo_tests
]
lappend ::active_clients $fd
}
else
{
lappend ::idle_clients $fd
set ::active_clients_task
(
$fd
)
"SLEEPING, no more units to assign"
...
...
@@ -433,6 +468,9 @@ proc test_client_main server_port {
foreach
{
cmd data
}
$payload break
if
{
$cmd
eq
{
run
}}
{
execute_tests $data
}
elseif
{
$cmd
eq
{
run_code
}}
{
foreach
{
name code
}
$data break
execute_code $name $code
}
else
{
error
"Unknown test client command:
$cmd
"
}
...
...
tests/unit/memefficiency.tcl
View file @
eae26153
...
...
@@ -36,6 +36,7 @@ start_server {tags {"memefficiency"}} {
}
}
run_solo
{
defrag
}
{
start_server
{
tags
{
"defrag"
}}
{
if
{[
string match
{
*jemalloc*
}
[
s mem_allocator
]]}
{
test
"Active defrag"
{
...
...
@@ -328,3 +329,4 @@ start_server {tags {"defrag"}} {
}
{
1
}
}
}
}
;
# run_solo
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment