Parcourir la source

Improve unit tests

bel il y a 8 ans
Parent
commit
560278b7d8
3 fichiers modifiés avec 35 ajouts et 3 suppressions
  1. 1 1
      src/civetweb.c
  2. 13 1
      test/public_func.c
  3. 21 1
      test/public_server.c

+ 1 - 1
src/civetweb.c

@@ -10775,7 +10775,7 @@ get_request_handler(struct mg_connection *conn,
  * This can be used if uploading files is possible not only for the server
  * admin, and the upload mechanism does not check the file extension.
  */
-int
+static int
 is_in_script_path(const struct mg_connection *conn, const char *path)
 {
 	/* TODO: Add config value for allowed script path.

+ 13 - 1
test/public_func.c

@@ -45,7 +45,8 @@ START_TEST(test_mg_version)
 	unsigned expect_files = 0, expect_https = 0, expect_cgi = 0,
 	         expect_ipv6 = 0, expect_websocket = 0, expect_lua = 0,
 	         expect_duktape = 0, expect_caching = 0;
-	int ret;
+	int ret, len;
+	char *buf;
 
 	ck_assert(ver != NULL);
 	ck_assert_str_eq(ver, CIVETWEB_VERSION);
@@ -101,6 +102,17 @@ START_TEST(test_mg_version)
 	ck_assert_uint_eq(expect_lua, !!feature_lua);
 	ck_assert_uint_eq(expect_duktape, !!feature_duktape);
 	ck_assert_uint_eq(expect_caching, !!feature_caching);
+
+	/* get system information */
+	len = mg_get_system_info(NULL, 0);
+	ck_assert_int_gt(len, 0);
+	buf = (char *)malloc((unsigned)len + 1);
+	ck_assert_ptr_ne(buf, NULL);
+	ret = mg_get_system_info(buf, len + 1);
+	ck_assert_int_eq(len, ret);
+	ret = strlen(buf);
+	ck_assert_int_eq(len, ret);
+	free(buf);
 }
 END_TEST
 

+ 21 - 1
test/public_server.c

@@ -818,6 +818,10 @@ websock_server_ready(struct mg_connection *conn, void *udata)
 }
 
 
+#define long_ws_buf_len (500)
+static char long_ws_buf[long_ws_buf_len];
+
+
 static int
 websock_server_data(struct mg_connection *conn,
                     int bits,
@@ -850,6 +854,14 @@ websock_server_data(struct mg_connection *conn,
 		mg_lock_connection(conn);
 		mg_websocket_write(conn, WEBSOCKET_OPCODE_TEXT, "ok - 3", 6);
 		mg_unlock_connection(conn);
+	} else if (data_len == long_ws_buf_len
+	           && !memcmp(data, long_ws_buf, long_ws_buf_len)) {
+		mg_lock_connection(conn);
+		mg_websocket_write(conn,
+		                   WEBSOCKET_OPCODE_BINARY,
+		                   long_ws_buf,
+		                   long_ws_buf_len);
+		mg_unlock_connection(conn);
 	} else {
 
 #if defined(__MINGW32__) || defined(__GNUC__)
@@ -1295,7 +1307,7 @@ START_TEST(test_request_handlers)
 	    ebuf,
 	    sizeof(ebuf),
 	    "%s",
-	    "POST /cgi_test.cgi HTTP/1.0\r\nContent-Length: 3\r\n\r\nABC");
+	    "POST /cgi_test.cgi/x/y.z HTTP/1.0\r\nContent-Length: 3\r\n\r\nABC");
 	ck_assert(client_conn != NULL);
 	ri = mg_get_request_info(client_conn);
 
@@ -1738,6 +1750,12 @@ START_TEST(test_request_handlers)
 	ws_client3_data.data = NULL;
 	ws_client3_data.len = 0;
 
+	/* Write long data */
+	mg_websocket_client_write(ws_client3_conn,
+	                          WEBSOCKET_OPCODE_BINARY,
+	                          long_ws_buf,
+	                          long_ws_buf_len);
+
 	/* Disconnect client 3 */
 	ck_assert(ws_client3_data.closed == 0);
 	mg_close_connection(ws_client3_conn);
@@ -3635,6 +3653,8 @@ START_TEST(test_large_file)
 	OPTIONS[opt_cnt++] = "8443s";
 	OPTIONS[opt_cnt++] = "ssl_certificate";
 	OPTIONS[opt_cnt++] = ssl_cert;
+	OPTIONS[opt_cnt++] = "ssl_protocol_version";
+	OPTIONS[opt_cnt++] = "4";
 	ck_assert(ssl_cert != NULL);
 #endif
 	OPTIONS[opt_cnt] = NULL;