|  | @@ -228,7 +228,7 @@ START_TEST(test_the_test_environment)
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static void *threading_data;
 | 
	
		
			
				|  |  | +static void *threading_data = 0;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static void *
 | 
	
		
			
				|  |  |  test_thread_func_t(void *param)
 | 
	
	
		
			
				|  | @@ -245,6 +245,7 @@ START_TEST(test_threading)
 | 
	
		
			
				|  |  |  	int ok;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	threading_data = NULL;
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	ok = mg_start_thread(test_thread_func_t, &threading_data);
 | 
	
		
			
				|  |  |  	ck_assert_int_eq(ok, 0);
 | 
	
	
		
			
				|  | @@ -268,6 +269,8 @@ log_msg_func(const struct mg_connection *conn, const char *message)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	strncpy(ud, message, 255);
 | 
	
		
			
				|  |  |  	ud[255] = 0;
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	return 1;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -330,6 +333,8 @@ test_mg_start_stop_http_server_impl(int ipv6)
 | 
	
		
			
				|  |  |  	int client_res, ret;
 | 
	
		
			
				|  |  |  	struct mg_server_ports portinfo[8];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  #if !defined(NO_FILES)
 | 
	
		
			
				|  |  |  	OPTIONS[optcnt++] = "document_root";
 | 
	
		
			
				|  |  |  	OPTIONS[optcnt++] = ".";
 | 
	
	
		
			
				|  | @@ -497,23 +502,26 @@ test_mg_start_stop_http_server_impl(int ipv6)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/* End test */
 | 
	
		
			
				|  |  |  	test_mg_stop(ctx);
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  START_TEST(test_mg_start_stop_http_server)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  	test_mg_start_stop_http_server_impl(0);
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  START_TEST(test_mg_start_stop_http_server_ipv6)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  #if defined(USE_IPV6)
 | 
	
		
			
				|  |  |  	test_mg_start_stop_http_server_impl(1);
 | 
	
		
			
				|  |  | -#else
 | 
	
		
			
				|  |  | -	mark_point();
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -639,6 +647,7 @@ START_TEST(test_mg_start_stop_https_server)
 | 
	
		
			
				|  |  |  	test_sleep(1);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	test_mg_stop(ctx);
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
	
		
			
				|  | @@ -767,6 +776,7 @@ START_TEST(test_mg_server_and_client_tls)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	test_mg_stop(ctx);
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -809,6 +819,7 @@ request_test_handler(struct mg_connection *conn, void *cbdata)
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	mg_printf(conn, "0\r\n\r\n");
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	return 1;
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -846,6 +857,7 @@ websock_server_connect(const struct mg_connection *conn, void *udata)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	ck_assert_ptr_eq((void *)udata, (void *)7531);
 | 
	
		
			
				|  |  |  	WS_TEST_TRACE("Server: Websocket connected\n");
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	return 0; /* return 0 to accept every connection */
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -867,6 +879,7 @@ websock_server_ready(struct mg_connection *conn, void *udata)
 | 
	
		
			
				|  |  |  	mg_unlock_connection(conn);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	WS_TEST_TRACE("Server: Websocket ready X\n");
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -946,6 +959,7 @@ websock_server_data(struct mg_connection *conn,
 | 
	
		
			
				|  |  |  #pragma GCC diagnostic pop
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	return 1; /* return 1 to keep the connetion open */
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -961,6 +975,8 @@ websock_server_close(const struct mg_connection *conn, void *udata)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/* Can not send a websocket goodbye message here -
 | 
	
		
			
				|  |  |  	 * the connection is already closed */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1012,6 +1028,8 @@ websocket_client_data_handler(struct mg_connection *conn,
 | 
	
		
			
				|  |  |  	memcpy(pclient_data->data, data, data_len);
 | 
	
		
			
				|  |  |  	pclient_data->len = data_len;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	return 1;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1030,6 +1048,8 @@ websocket_client_close_handler(const struct mg_connection *conn,
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	WS_TEST_TRACE("Client %i: Close handler\n", pclient_data->clientId);
 | 
	
		
			
				|  |  |  	pclient_data->closed++;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1096,6 +1116,8 @@ START_TEST(test_request_handlers)
 | 
	
		
			
				|  |  |  	char cmd_buf[256];
 | 
	
		
			
				|  |  |  	char *cgi_env_opt;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	memset((void *)OPTIONS, 0, sizeof(OPTIONS));
 | 
	
		
			
				|  |  |  	OPTIONS[opt_idx++] = "listening_ports";
 | 
	
		
			
				|  |  |  	OPTIONS[opt_idx++] = HTTP_PORT;
 | 
	
	
		
			
				|  | @@ -1971,6 +1993,7 @@ START_TEST(test_request_handlers)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	ck_assert_int_eq(ws_client4_data.closed, 1);
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2009,6 +2032,8 @@ field_found(const char *key,
 | 
	
		
			
				|  |  |  		strcat(path, ".txt");
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	return g_field_found_return;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2149,6 +2174,7 @@ field_get(const char *key,
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	free(value);
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	return 0;
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -2207,6 +2233,7 @@ field_store(const char *path, long long file_size, void *user_data)
 | 
	
		
			
				|  |  |  		ck_abort_msg("field_get called with g_field_step == %i",
 | 
	
		
			
				|  |  |  		             (int)g_field_step);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	return 0;
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -2236,6 +2263,8 @@ FormGet(struct mg_connection *conn, void *cbdata)
 | 
	
		
			
				|  |  |  	mg_printf(conn, "%i\r\n", ret);
 | 
	
		
			
				|  |  |  	g_field_step = 1000;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	return 1;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2269,6 +2298,8 @@ FormStore(struct mg_connection *conn,
 | 
	
		
			
				|  |  |  	mg_printf(conn, "%i\r\n", ret);
 | 
	
		
			
				|  |  |  	g_field_step = 1000;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	return 1;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2276,6 +2307,7 @@ FormStore(struct mg_connection *conn,
 | 
	
		
			
				|  |  |  static int
 | 
	
		
			
				|  |  |  FormStore1(struct mg_connection *conn, void *cbdata)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  	return FormStore(conn, cbdata, 3, 101);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2283,6 +2315,7 @@ FormStore1(struct mg_connection *conn, void *cbdata)
 | 
	
		
			
				|  |  |  static int
 | 
	
		
			
				|  |  |  FormStore2(struct mg_connection *conn, void *cbdata)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  	return FormStore(conn, cbdata, 4, 102);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2296,6 +2329,8 @@ send_chunk_stringl(struct mg_connection *conn,
 | 
	
		
			
				|  |  |  	size_t lenbuf_len;
 | 
	
		
			
				|  |  |  	int ret;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	/* First store the length information in a text buffer. */
 | 
	
		
			
				|  |  |  	sprintf(lenbuf, "%x\r\n", chunk_len);
 | 
	
		
			
				|  |  |  	lenbuf_len = strlen(lenbuf);
 | 
	
	
		
			
				|  | @@ -2315,7 +2350,9 @@ send_chunk_stringl(struct mg_connection *conn,
 | 
	
		
			
				|  |  |  static void
 | 
	
		
			
				|  |  |  send_chunk_string(struct mg_connection *conn, const char *chunk)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  	send_chunk_stringl(conn, chunk, (unsigned int)strlen(chunk));
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2333,6 +2370,8 @@ START_TEST(test_handle_form)
 | 
	
		
			
				|  |  |  	size_t body_len, body_sent, chunk_len;
 | 
	
		
			
				|  |  |  	int sleep_cnt;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	memset((void *)OPTIONS, 0, sizeof(OPTIONS));
 | 
	
		
			
				|  |  |  	OPTIONS[opt_idx++] = "listening_ports";
 | 
	
		
			
				|  |  |  	OPTIONS[opt_idx++] = "8884";
 | 
	
	
		
			
				|  | @@ -2885,6 +2924,7 @@ START_TEST(test_http_auth)
 | 
	
		
			
				|  |  |  		"put_delete_auth_file.csv",
 | 
	
		
			
				|  |  |  		NULL,
 | 
	
		
			
				|  |  |  	};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	struct mg_context *ctx;
 | 
	
		
			
				|  |  |  	struct mg_connection *client_conn;
 | 
	
		
			
				|  |  |  	char client_err[256], nonce[256];
 | 
	
	
		
			
				|  | @@ -2906,6 +2946,7 @@ START_TEST(test_http_auth)
 | 
	
		
			
				|  |  |  	const char *nc = "00000001";
 | 
	
		
			
				|  |  |  	const char *cnonce = "6789ABCD";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/* Start with default options */
 | 
	
		
			
				|  |  |  	ctx = test_mg_start(NULL, NULL, OPTIONS);
 | 
	
	
		
			
				|  | @@ -3191,6 +3232,7 @@ START_TEST(test_http_auth)
 | 
	
		
			
				|  |  |  	(void)remove("put_delete_auth_file.csv");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -3219,6 +3261,8 @@ START_TEST(test_keep_alive)
 | 
	
		
			
				|  |  |  	int client_res, i;
 | 
	
		
			
				|  |  |  	const char *connection_header;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	ctx = test_mg_start(NULL, NULL, OPTIONS);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	ck_assert(ctx != NULL);
 | 
	
	
		
			
				|  | @@ -3265,6 +3309,8 @@ START_TEST(test_keep_alive)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/* Stop the server and clean up */
 | 
	
		
			
				|  |  |  	test_mg_stop(ctx);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -3287,6 +3333,8 @@ START_TEST(test_error_handling)
 | 
	
		
			
				|  |  |  	const char *OPTIONS[32];
 | 
	
		
			
				|  |  |  	int opt_cnt = 0;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  #if !defined(NO_FILES)
 | 
	
		
			
				|  |  |  	OPTIONS[opt_cnt++] = "document_root";
 | 
	
		
			
				|  |  |  	OPTIONS[opt_cnt++] = ".";
 | 
	
	
		
			
				|  | @@ -3528,6 +3576,8 @@ START_TEST(test_error_handling)
 | 
	
		
			
				|  |  |  	ck_assert_str_ne(client_err, "");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	test_sleep(1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -3550,6 +3600,8 @@ START_TEST(test_error_log_file)
 | 
	
		
			
				|  |  |  	char buf[1024];
 | 
	
		
			
				|  |  |  	int len, ok;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	/* Set options and start server */
 | 
	
		
			
				|  |  |  	OPTIONS[opt_cnt++] = "listening_ports";
 | 
	
		
			
				|  |  |  	OPTIONS[opt_cnt++] = "8080";
 | 
	
	
		
			
				|  | @@ -3663,6 +3715,8 @@ START_TEST(test_error_log_file)
 | 
	
		
			
				|  |  |  	/* Remove log files */
 | 
	
		
			
				|  |  |  	(void)remove("error.log");
 | 
	
		
			
				|  |  |  	(void)remove("access.log");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -3698,6 +3752,8 @@ test_throttle_begin_request(struct mg_connection *conn)
 | 
	
		
			
				|  |  |  		mg_write(conn, block, blocklen);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	return 987; /* Not a valid HTTP response code,
 | 
	
		
			
				|  |  |  	             * but it should be written to the log and passed to
 | 
	
		
			
				|  |  |  	             * end_request. */
 | 
	
	
		
			
				|  | @@ -3744,6 +3800,8 @@ START_TEST(test_throttle)
 | 
	
		
			
				|  |  |  	time_t t0, t1;
 | 
	
		
			
				|  |  |  	double dt;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* Set options and start server */
 | 
	
		
			
				|  |  |  #if !defined(NO_FILES)
 | 
	
	
		
			
				|  | @@ -3817,14 +3875,20 @@ START_TEST(test_throttle)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/* Stop the server */
 | 
	
		
			
				|  |  |  	test_mg_stop(ctx);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  START_TEST(test_init_library)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	unsigned f_avail = mg_check_feature(0xFF);
 | 
	
		
			
				|  |  | -	unsigned f_ret = mg_init_library(f_avail);
 | 
	
		
			
				|  |  | +	unsigned f_avail, f_ret;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	f_avail = mg_check_feature(0xFF);
 | 
	
		
			
				|  |  | +	f_ret = mg_init_library(f_avail);
 | 
	
		
			
				|  |  |  	ck_assert_uint_eq(f_ret, f_avail);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
	
		
			
				|  | @@ -3863,6 +3927,8 @@ test_large_file_begin_request(struct mg_connection *conn)
 | 
	
		
			
				|  |  |  		mg_write(conn, block, blocklen);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	return 200;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -3888,6 +3954,7 @@ START_TEST(test_large_file)
 | 
	
		
			
				|  |  |  	int r;
 | 
	
		
			
				|  |  |  	int retry, retry_ok_cnt, retry_fail_cnt;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* Set options and start server */
 | 
	
		
			
				|  |  |  #if !defined(NO_FILES)
 | 
	
	
		
			
				|  | @@ -3992,6 +4059,8 @@ START_TEST(test_large_file)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/* Stop the server */
 | 
	
		
			
				|  |  |  	test_mg_stop(ctx);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4008,6 +4077,8 @@ test_mg_store_body_put_delete_handler(struct mg_connection *conn, void *ignored)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	(void)ignored;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	sprintf(path, "./%s", info->local_uri);
 | 
	
		
			
				|  |  |  	rc = mg_store_body(conn, path);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4041,6 +4112,8 @@ test_mg_store_body_put_delete_handler(struct mg_connection *conn, void *ignored)
 | 
	
		
			
				|  |  |  	/* Debug output for tests */
 | 
	
		
			
				|  |  |  	printf("mg_store_body(%s) OK (%ld bytes)\n", path, (long)rc);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	return 200;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4050,6 +4123,8 @@ test_mg_store_body_begin_request_callback(struct mg_connection *conn)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	const struct mg_request_info *info = mg_get_request_info(conn);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	/* Debug output for tests */
 | 
	
		
			
				|  |  |  	printf("test_mg_store_body_begin_request_callback called (%s)\n",
 | 
	
		
			
				|  |  |  	       info->request_method);
 | 
	
	
		
			
				|  | @@ -4058,6 +4133,9 @@ test_mg_store_body_begin_request_callback(struct mg_connection *conn)
 | 
	
		
			
				|  |  |  	    || (strcmp(info->request_method, "DELETE") == 0)) {
 | 
	
		
			
				|  |  |  		return test_mg_store_body_put_delete_handler(conn, NULL);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	return 0;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4093,6 +4171,8 @@ START_TEST(test_mg_store_body)
 | 
	
		
			
				|  |  |  		NULL
 | 
	
		
			
				|  |  |  	};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	memset(&callbacks, 0, sizeof(callbacks));
 | 
	
		
			
				|  |  |  	callbacks.begin_request = test_mg_store_body_begin_request_callback;
 | 
	
		
			
				|  |  |  	callbacks.log_message = log_msg_func;
 | 
	
	
		
			
				|  | @@ -4157,6 +4237,8 @@ START_TEST(test_mg_store_body)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/* Un-initialize the library */
 | 
	
		
			
				|  |  |  	mg_exit_library();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4309,6 +4391,8 @@ minimal_http_client_impl(const char *server, uint16_t port, const char *uri)
 | 
	
		
			
				|  |  |  	int64_t data_read;
 | 
	
		
			
				|  |  |  	int r;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	client = mg_connect_client(
 | 
	
		
			
				|  |  |  	    server, port, 0, client_err_buf, sizeof(client_err_buf));
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4341,22 +4425,34 @@ minimal_http_client_impl(const char *server, uint16_t port, const char *uri)
 | 
	
		
			
				|  |  |  	r = mg_read(client, client_data_buf, sizeof(client_data_buf));
 | 
	
		
			
				|  |  |  	ck_assert_int_eq(r, 0);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	mg_close_connection(client);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  START_TEST(test_minimal_client)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	/* Initialize the library */
 | 
	
		
			
				|  |  |  	mg_init_library(0);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	/* Call a test client */
 | 
	
		
			
				|  |  |  	minimal_http_client_impl("192.30.253.113" /* www.github.com */,
 | 
	
		
			
				|  |  |  	                         80,
 | 
	
		
			
				|  |  |  	                         "civetweb/civetweb/");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	/* Un-initialize the library */
 | 
	
		
			
				|  |  |  	mg_exit_library();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4367,6 +4463,8 @@ minimal_test_request_handler(struct mg_connection *conn, void *cbdata)
 | 
	
		
			
				|  |  |  	const char *msg = (const char *)cbdata;
 | 
	
		
			
				|  |  |  	unsigned long len = (unsigned long)strlen(msg);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	mg_printf(conn,
 | 
	
		
			
				|  |  |  	          "HTTP/1.1 200 OK\r\n"
 | 
	
		
			
				|  |  |  	          "Content-Length: %lu\r\n"
 | 
	
	
		
			
				|  | @@ -4376,6 +4474,8 @@ minimal_test_request_handler(struct mg_connection *conn, void *cbdata)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	mg_write(conn, msg, len);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	return 200;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4388,6 +4488,8 @@ START_TEST(test_minimal_server_callback)
 | 
	
		
			
				|  |  |  	/* Server context handle */
 | 
	
		
			
				|  |  |  	struct mg_context *ctx;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	/* Initialize the library */
 | 
	
		
			
				|  |  |  	mg_init_library(0);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4420,6 +4522,8 @@ START_TEST(test_minimal_server_callback)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/* Un-initialize the library */
 | 
	
		
			
				|  |  |  	mg_exit_library();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	mark_point();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  END_TEST
 | 
	
		
			
				|  |  |  
 |