Skip to content

Commit 9d040bc

Browse files
committed
Add cdb2api unread data test
Signed-off-by: Salil Chandra <[email protected]>
1 parent d9a2e37 commit 9d040bc

File tree

3 files changed

+71
-0
lines changed

3 files changed

+71
-0
lines changed

tests/cdb2api_tests.test/runit

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,17 @@
11
#!/usr/bin/env bash
22
bash -n "$0" | exit 1
33

4+
cfg=$DBDIR/comdb2db.cfg
5+
echo 'comdb2_feature:discard_unread_socket_data=on' >> ${cfg}
6+
echo 'comdb2_config:max_local_connection_cache_entries=4' >> ${cfg}
7+
echo 'comdb2_config:max_local_connection_cache_age=10' >> ${cfg}
8+
echo 'comdb2_config:local_connection_cache_use_sbuf=1' >> ${cfg}
9+
${TESTSBUILDDIR}/cdb2api_unread_data ${DBNAME}
10+
[[ $? -ne 0 ]] && echo "cdb2api_unread_data - fail" && exit 1
11+
sed -i '/comdb2_feature:discard_unread_socket_data=on/d' "${cfg}"
12+
sed -i '/comdb2_config:max_local_connection_cache_entries=4/d' "${cfg}"
13+
sed -i '/comdb2_config:max_local_connection_cache_age=10/d' "${cfg}"
14+
sed -i '/comdb2_config:local_connection_cache_use_sbuf=1/d' "${cfg}"
15+
echo 'cdb2api_unread_data - pass'
16+
417
exit 0

tests/tools/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ add_exe(cdb2api_chunk cdb2api_chunk.cpp)
3737
add_exe(cdb2api_drain cdb2api_drain.cpp)
3838
add_exe(cdb2api_effects_on_chunk_error cdb2api_effects_on_chunk_error.c)
3939
add_exe(cdb2api_read_intrans_results cdb2api_read_intrans_results.c)
40+
add_exe(cdb2api_unread_data cdb2api_unread_data.cpp)
4041
add_exe(cdb2bind cdb2bind.c)
4142
add_exe(cldeadlock cldeadlock.c)
4243
add_exe(close_old_connections close_old_connections.c)
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#include <signal.h>
2+
#include <stdio.h>
3+
#include <cdb2api.h>
4+
#include <cdb2api_test.h>
5+
6+
int test_unread_record(char *dbname, char *type)
7+
{
8+
int rc = 0;
9+
10+
cdb2_hndl_tp *cdb2h = NULL;
11+
int num_connects = get_num_tcp_connects();
12+
num_connects++; // Expect atleast 1 connect
13+
14+
for (int i =0; i < 1000; i++) {
15+
rc = cdb2_open(&cdb2h, dbname, type, 0);
16+
if (rc != CDB2_OK) {
17+
fprintf(stderr, "%s Failed to open db %s rc=%d errstr=%s\n", __func__, dbname, rc, cdb2_errstr(cdb2h));
18+
return -1;
19+
}
20+
rc = cdb2_run_statement(cdb2h, "select 1");
21+
if (rc != CDB2_OK) {
22+
fprintf(stderr, "%s Failed to run statement rc=%d errstr=%s\n", __func__, rc, cdb2_errstr(cdb2h));
23+
return -1;
24+
}
25+
rc = cdb2_next_record (cdb2h);
26+
if (rc != CDB2_OK) {
27+
fprintf(stderr, "%s Failed to get record rc=%d errstr=%s\n", __func__, rc, cdb2_errstr(cdb2h));
28+
return -1;
29+
}
30+
rc = cdb2_close(cdb2h);
31+
if (rc != CDB2_OK) {
32+
fprintf(stderr, "%s Failed to close db rc=%d errstr=%s\n", __func__, rc, cdb2_errstr(cdb2h));
33+
return -1;
34+
}
35+
}
36+
37+
if (get_num_tcp_connects() > num_connects + 2) {
38+
fprintf(stderr, "%s Failed: expected connects: %d got: %d\n", __func__, num_connects, get_num_tcp_connects());
39+
return -1;
40+
}
41+
42+
return 0;
43+
}
44+
45+
46+
int main(int argc, char **argv)
47+
{
48+
signal(SIGPIPE, SIG_IGN);
49+
char *db = argv[1];
50+
char *conf = getenv("CDB2_CONFIG");
51+
if (conf)
52+
cdb2_set_comdb2db_config(conf);
53+
54+
int rc = test_unread_record(db, "default");
55+
56+
return rc;
57+
}

0 commit comments

Comments
 (0)