@@ -52,19 +52,36 @@ void check_compress(mysqlx_session_t *sess)
52
52
mysqlx_result_t *res;
53
53
mysqlx_row_t *row;
54
54
55
- CRUD_CHECK (res = mysqlx_sql (sess, query.c_str (), strlen (query.c_str ())), sess);
56
-
57
- while ((row = mysqlx_row_fetch_one (res)) != NULL )
55
+ auto test_row = [](const std::string &data, const std::string &row)
58
56
{
59
- char *buf = new char [65536 ];
60
- size_t buf_len = 65536 ;
61
- memset (buf, 0 , buf_len);
62
- EXPECT_EQ (RESULT_OK, mysqlx_get_bytes (row, 0 , 0 , buf, &buf_len));
63
- printf (" Uncompressed data: %s\n " , buf);
64
- delete[] buf;
65
- }
57
+ size_t len = data.length ();
58
+ for (int i = 0 ; i < 5000 ; ++i)
59
+ if (row.substr (i * len, len) != data)
60
+ FAIL () << " Data differs at position" << 5 * len;
61
+ };
62
+
63
+ CRUD_CHECK (res = mysqlx_sql (sess, query.c_str (), query.length ()), sess);
64
+
65
+ char *buf = new char [65536 ];
66
+ size_t buf_len;
67
+
68
+ buf_len = 65536 ;
69
+ memset (buf, 0 , buf_len);
70
+ EXPECT_NE (nullptr , row = mysqlx_row_fetch_one (res));
71
+ EXPECT_EQ (RESULT_OK, mysqlx_get_bytes (row, 0 , 0 , buf, &buf_len));
72
+ test_row (" Test " , buf);
73
+
74
+ buf_len = 65536 ;
75
+ memset (buf, 0 , buf_len);
76
+ EXPECT_NE (nullptr , row = mysqlx_row_fetch_one (res));
77
+ EXPECT_EQ (RESULT_OK, mysqlx_get_bytes (row, 0 , 0 , buf, &buf_len));
78
+ test_row (" 0123 " , buf);
79
+
80
+ delete[] buf;
66
81
67
- const char *query2 = (const char *)" SHOW STATUS LIKE 'Mysqlx%compress%'" ;
82
+ cout << " Data is correct" << endl;
83
+
84
+ const char *query2 = (const char *)" SHOW STATUS LIKE 'Mysqlx_bytes%compress%'" ;
68
85
CRUD_CHECK (res = mysqlx_sql (sess, query2, strlen (query2)), sess);
69
86
int actual_row_count = 0 ;
70
87
while ((row = mysqlx_row_fetch_one (res)) != NULL )
@@ -81,12 +98,15 @@ void check_compress(mysqlx_session_t *sess)
81
98
++actual_row_count;
82
99
83
100
printf (" %s : %s\n " , buf1, buf2);
101
+ EXPECT_TRUE (std::stol ((std::string)buf2, nullptr , 0 ) > 0 );
84
102
}
85
103
printf (" Status rows fetched: %i \n " , actual_row_count);
86
104
EXPECT_TRUE (actual_row_count > 0 );
87
105
};
88
106
89
- int check_compress2 (mysqlx_session_t * m_sess) {
107
+
108
+ int check_compress2 (mysqlx_session_t * m_sess)
109
+ {
90
110
mysqlx_result_t * res = NULL ;
91
111
mysqlx_schema_t * schema;
92
112
mysqlx_collection_t * collection;
@@ -114,12 +134,13 @@ int check_compress2(mysqlx_session_t* m_sess) {
114
134
printf (" \n Insert Success\n " );
115
135
116
136
return retVal;
117
-
118
137
}
119
138
120
139
121
140
TEST_F (xapi, compression_test)
122
141
{
142
+ SKIP_IF_NO_XPLUGIN
143
+
123
144
mysqlx_error_t *error;
124
145
mysqlx_session_t *sess;
125
146
mysqlx_session_options_t *opt;
@@ -179,6 +200,8 @@ TEST_F(xapi, compression_test)
179
200
180
201
TEST_F (xapi, compression_test_doc)
181
202
{
203
+ SKIP_IF_NO_XPLUGIN
204
+
182
205
mysqlx_session_t * sess = NULL ;
183
206
mysqlx_error_t *error = NULL ;
184
207
std::string uri = get_basic_uri () + " ?compression=PREFERRED" ;
@@ -2725,7 +2748,7 @@ TEST_F(xapi, tls_ver_ciphers)
2725
2748
size_t sz = sizeof (buf);
2726
2749
mysqlx_get_bytes (row, 1 , 0 , buf, &sz);
2727
2750
printf (" Mysqlx_ssl_cipher=%s\n " , buf);
2728
- EXPECT_NO_THROW (suites_map.at (buf));
2751
+ EXPECT_NO_THROW (( void ) suites_map.at (buf));
2729
2752
}
2730
2753
2731
2754
mysqlx_free_options (opt);
0 commit comments