Skip to content

Commit a5e6f19

Browse files
Fixed TLS --tls-protocols parsing. (#241)
* Fixed tls arg tests * Fixed tls arg tests * Verbose output on CI runs * Verbose output on CI runs * Fixed tls-protocols parsing * using c++ std::strtok instead of c strktok * Skipping rate-limit + test time on cluster setups
1 parent 9ddfcff commit a5e6f19

File tree

4 files changed

+30
-13
lines changed

4 files changed

+30
-13
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,13 @@ jobs:
5454
if: matrix.platform == 'ubuntu-latest'
5555
timeout-minutes: 10
5656
run: |
57-
TLS_PROTOCOLS="tlsv1.2" TLS=1 ./tests/run_tests.sh
57+
TLS_PROTOCOLS='TLSv1.2' VERBOSE=1 TLS=1 ./tests/run_tests.sh
5858
5959
- name: Test OSS TCP TLS v1.3
6060
if: matrix.platform == 'ubuntu-latest'
6161
timeout-minutes: 10
6262
run: |
63-
TLS_PROTOCOLS="tlsv1.3" TLS=1 ./tests/run_tests.sh
63+
TLS_PROTOCOLS='TLSv1.3' VERBOSE=1 TLS=1 ./tests/run_tests.sh
6464
6565
- name: Test OSS-CLUSTER TCP
6666
timeout-minutes: 10

memtier_benchmark.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454

5555
#endif
5656

57+
#include <cstring>
5758
#include <stdexcept>
5859

5960
#include "client.h"
@@ -896,9 +897,9 @@ static int config_parse_args(int argc, char *argv[], struct benchmark_config *cf
896897
break;
897898
case o_tls_protocols:
898899
{
899-
const char tls_delimiter = ',';
900-
char* tls_token = strtok(optarg, &tls_delimiter);
901-
while (tls_token != 0) {
900+
const char* tls_delimiter = ",";
901+
char* tls_token = std::strtok(optarg, tls_delimiter);
902+
while (tls_token != NULL) {
902903
if (!strcasecmp(tls_token, "tlsv1"))
903904
cfg->tls_protocols |= REDIS_TLS_PROTO_TLSv1;
904905
else if (!strcasecmp(tls_token, "tlsv1.1"))
@@ -913,12 +914,12 @@ static int config_parse_args(int argc, char *argv[], struct benchmark_config *cf
913914
return -1;
914915
#endif
915916
} else {
916-
fprintf(stderr, "Invalid tls-protocols specified. "
917-
"Use a combination of 'TLSv1', 'TLSv1.1', 'TLSv1.2' and 'TLSv1.3'.");
917+
fprintf(stderr, "Invalid tls-protocols specified %s. "
918+
"Use a combination of 'TLSv1', 'TLSv1.1', 'TLSv1.2' and 'TLSv1.3'.", tls_token);
918919
return -1;
919920
break;
920921
}
921-
tls_token = strtok(0, &tls_delimiter);
922+
tls_token = std::strtok(NULL, tls_delimiter);
922923
}
923924
break;
924925
}

tests/include.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import glob
22
import os
3+
import logging
34

45
MEMTIER_BINARY = os.environ.get("MEMTIER_BINARY", "memtier_benchmark")
56
TLS_CERT = os.environ.get("TLS_CERT", "")
67
TLS_KEY = os.environ.get("TLS_KEY", "")
78
TLS_CACERT = os.environ.get("TLS_CACERT", "")
89
TLS_PROTOCOLS = os.environ.get("TLS_PROTOCOLS", "")
10+
VERBOSE = bool(int(os.environ.get("VERBOSE","0")))
911

1012

1113
def ensure_tls_protocols(master_nodes_connections):
@@ -35,6 +37,9 @@ def assert_minimum_memtier_outcomes(config, env, memtier_ok, overall_expected_re
3537
debugPrintMemtierOnError(config, env)
3638

3739
def add_required_env_arguments(benchmark_specs, config, env, master_nodes_list):
40+
if VERBOSE:
41+
logging.basicConfig(level=logging.DEBUG)
42+
3843
# if we've specified TLS_PROTOCOLS ensure we configure it on redis
3944
master_nodes_connections = env.getOSSMasterNodesConnectionList()
4045
ensure_tls_protocols(master_nodes_connections)

tests/tests_oss_simple_flow.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,10 @@ def test_default_set_get_3_runs(env):
261261

262262

263263
def test_default_arbitrary_command_pubsub(env):
264-
benchmark_specs = {"name": env.testName, "args": ['--command=publish \"__key__\" \"__data__\"']}
264+
benchmark_specs = {"name": env.testName, "args": []}
265265
addTLSArgs(benchmark_specs, env)
266+
# on arbitrary command args should be the last one
267+
benchmark_specs["args"].append('--command=publish \"__key__\" \"__data__\"')
266268
config = get_default_memtier_config()
267269
master_nodes_list = env.getMasterNodesList()
268270

@@ -281,8 +283,10 @@ def test_default_arbitrary_command_pubsub(env):
281283

282284

283285
def test_default_arbitrary_command_keyless(env):
284-
benchmark_specs = {"name": env.testName, "args": ['--command=PING']}
286+
benchmark_specs = {"name": env.testName, "args": []}
285287
addTLSArgs(benchmark_specs, env)
288+
# on arbitrary command args should be the last one
289+
benchmark_specs["args"].append('--command=PING')
286290
config = get_default_memtier_config()
287291
master_nodes_list = env.getMasterNodesList()
288292

@@ -301,8 +305,10 @@ def test_default_arbitrary_command_keyless(env):
301305

302306

303307
def test_default_arbitrary_command_set(env):
304-
benchmark_specs = {"name": env.testName, "args": ['--command=SET __key__ __data__']}
308+
benchmark_specs = {"name": env.testName, "args": []}
305309
addTLSArgs(benchmark_specs, env)
310+
# on arbitrary command args should be the last one
311+
benchmark_specs["args"].append('--command=SET __key__ __data__')
306312
config = get_default_memtier_config()
307313
master_nodes_list = env.getMasterNodesList()
308314
overall_expected_request_count = get_expected_request_count(config)
@@ -327,8 +333,10 @@ def test_default_arbitrary_command_set(env):
327333

328334

329335
def test_default_arbitrary_command_hset(env):
330-
benchmark_specs = {"name": env.testName, "args": ['--command=HSET __key__ field1 __data__']}
336+
benchmark_specs = {"name": env.testName, "args": []}
331337
addTLSArgs(benchmark_specs, env)
338+
# on arbitrary command args should be the last one
339+
benchmark_specs["args"].append('--command=HSET __key__ field1 __data__')
332340
config = get_default_memtier_config()
333341
master_nodes_list = env.getMasterNodesList()
334342
overall_expected_request_count = get_expected_request_count(config)
@@ -353,8 +361,10 @@ def test_default_arbitrary_command_hset(env):
353361

354362

355363
def test_default_arbitrary_command_hset_multi_data_placeholders(env):
356-
benchmark_specs = {"name": env.testName, "args": ['--command=HSET __key__ field1 __data__ field2 __data__ field3 __data__']}
364+
benchmark_specs = {"name": env.testName, "args": []}
357365
addTLSArgs(benchmark_specs, env)
366+
# on arbitrary command args should be the last one
367+
benchmark_specs["args"].append('--command=HSET __key__ field1 __data__ field2 __data__ field3 __data__')
358368
config = get_default_memtier_config()
359369
master_nodes_list = env.getMasterNodesList()
360370
overall_expected_request_count = get_expected_request_count(config)
@@ -380,6 +390,7 @@ def test_default_arbitrary_command_hset_multi_data_placeholders(env):
380390
overall_request_count)
381391

382392
def test_default_set_get_rate_limited(env):
393+
env.skipOnCluster()
383394
master_nodes_list = env.getMasterNodesList()
384395
for client_count in [1,2,4]:
385396
for thread_count in [1,2]:

0 commit comments

Comments
 (0)