1
0
mirror of https://github.com/lammertb/libhttp.git synced 2025-12-22 04:02:04 +03:00

Adapt unit tests for NO_FILES build

This commit is contained in:
bel
2015-08-06 22:34:46 +02:00
parent 132f9ddd18
commit 1ce17d34da

View File

@@ -122,7 +122,13 @@ START_TEST(test_mg_start_stop_http_server)
{ {
struct mg_context *ctx; struct mg_context *ctx;
const char *OPTIONS[] = { const char *OPTIONS[] = {
"document_root", ".", "listening_ports", "8080", NULL, #if !defined(NO_FILES)
"document_root",
".",
#endif
"listening_ports",
"8080",
NULL,
}; };
size_t ports_cnt; size_t ports_cnt;
int ports[16]; int ports[16];
@@ -159,19 +165,21 @@ START_TEST(test_mg_start_stop_https_server)
{ {
struct mg_context *ctx; struct mg_context *ctx;
const char *OPTIONS[] = { const char *OPTIONS[] = {
"document_root", #if !defined(NO_FILES)
".", "document_root",
"listening_ports", ".",
"8080,8443s",
"ssl_certificate",
#ifdef _WIN32
"..\\..\\..\\resources/ssl_cert.pem", // TODO: the different paths used
// in the different test system is
// an unsolved problem
#else
"../../resources/ssl_cert.pem", // TODO: fix path in CI test environment
#endif #endif
NULL, "listening_ports",
"8080r,8443s",
"ssl_certificate",
#ifdef _WIN32
"..\\..\\..\\resources/ssl_cert.pem", // TODO: the different paths used
// in the different test system is
// an unsolved problem
#else
"../../resources/ssl_cert.pem", // TODO: fix path in CI test environment
#endif
NULL,
}; };
size_t ports_cnt; size_t ports_cnt;
int ports[16]; int ports[16];
@@ -285,24 +293,29 @@ START_TEST(test_request_handlers)
const char *OPTIONS[8]; /* initializer list here is rejected by CI test */ const char *OPTIONS[8]; /* initializer list here is rejected by CI test */
const char *opt; const char *opt;
FILE *f; FILE *f;
int opt_idx = 0;
memset((void *)OPTIONS, 0, sizeof(OPTIONS)); memset((void *)OPTIONS, 0, sizeof(OPTIONS));
OPTIONS[0] = "listening_ports"; OPTIONS[opt_idx++] = "listening_ports";
OPTIONS[1] = HTTP_PORT; OPTIONS[opt_idx++] = HTTP_PORT;
OPTIONS[2] = "document_root"; #if !defined(NO_FILES)
OPTIONS[3] = "."; OPTIONS[opt_idx++] = "document_root";
OPTIONS[opt_idx++] = ".";
#endif
#ifndef NO_SSL #ifndef NO_SSL
OPTIONS[4] = "ssl_certificate"; OPTIONS[opt_idx++] = "ssl_certificate";
#ifdef _WIN32 #ifdef _WIN32
OPTIONS[5] = "..\\..\\..\\resources/ssl_cert.pem"; // TODO: the different OPTIONS[opt_idx++] =
// paths used in the "..\\..\\..\\resources/ssl_cert.pem"; // TODO: the different
// different test system // paths used in the
// is an unsolved problem // different test system
// is an unsolved problem
#else #else
OPTIONS[5] = OPTIONS[opt_idx++] =
"../../resources/ssl_cert.pem"; // TODO: fix path in CI test environment "../../resources/ssl_cert.pem"; // TODO: fix path in CI test environment
#endif #endif
#endif #endif
ck_assert_int_le(opt_idx, (int)(sizeof(OPTIONS) / sizeof(OPTIONS[0])));
ck_assert(OPTIONS[sizeof(OPTIONS) / sizeof(OPTIONS[0]) - 1] == NULL); ck_assert(OPTIONS[sizeof(OPTIONS) / sizeof(OPTIONS[0]) - 1] == NULL);
ck_assert(OPTIONS[sizeof(OPTIONS) / sizeof(OPTIONS[0]) - 2] == NULL); ck_assert(OPTIONS[sizeof(OPTIONS) / sizeof(OPTIONS[0]) - 2] == NULL);
@@ -460,7 +473,6 @@ START_TEST(test_request_handlers)
mg_close_connection(conn); mg_close_connection(conn);
#endif #endif
/* It seems to be impossible to find out what the actual working /* It seems to be impossible to find out what the actual working
* directory of the CI test environment is. Before breaking another * directory of the CI test environment is. Before breaking another
* dozen of builds by trying blindly with different paths, just * dozen of builds by trying blindly with different paths, just
@@ -486,6 +498,10 @@ START_TEST(test_request_handlers)
ri = mg_get_request_info(conn); ri = mg_get_request_info(conn);
ck_assert(ri != NULL); ck_assert(ri != NULL);
#if defined(NO_FILES)
ck_assert_str_eq(ri->uri, "404");
#else
ck_assert_str_eq(ri->uri, "200"); ck_assert_str_eq(ri->uri, "200");
i = mg_read(conn, buf, sizeof(buf)); i = mg_read(conn, buf, sizeof(buf));
ck_assert_int_eq(i, 17); ck_assert_int_eq(i, 17);
@@ -493,6 +509,7 @@ START_TEST(test_request_handlers)
buf[i] = 0; buf[i] = 0;
} }
ck_assert_str_eq(buf, "simple text file\n"); ck_assert_str_eq(buf, "simple text file\n");
#endif
mg_close_connection(conn); mg_close_connection(conn);
@@ -508,11 +525,15 @@ START_TEST(test_request_handlers)
ri = mg_get_request_info(conn); ri = mg_get_request_info(conn);
ck_assert(ri != NULL); ck_assert(ri != NULL);
#if defined(NO_FILES)
ck_assert_str_eq(ri->uri, "404");
#else
ck_assert_str_eq(ri->uri, "200"); ck_assert_str_eq(ri->uri, "200");
i = mg_read(conn, buf, sizeof(buf)); i = mg_read(conn, buf, sizeof(buf));
ck_assert(i > 6); ck_assert(i > 6);
buf[6] = 0; buf[6] = 0;
ck_assert_str_eq(buf, "<html>"); ck_assert_str_eq(buf, "<html>");
#endif
mg_close_connection(conn); mg_close_connection(conn);
@@ -551,6 +572,7 @@ START_TEST(test_request_handlers)
ck_assert_str_eq(ri->uri, "401"); /* not authorized */ ck_assert_str_eq(ri->uri, "401"); /* not authorized */
mg_close_connection(conn); mg_close_connection(conn);
/* TODO: Test websockets */ /* TODO: Test websockets */