4 #include <openssl/ssl.h>
10 Link::Server
server(8080);
12 void* client(void* arg
) {
13 while (!ready
|| !server
.IsRunning()) std::this_thread::sleep_for(std::chrono::milliseconds(1000));
14 Link::Request
* req
= new Link::Request(std::string(ssl
?"https":"http") + "://localhost:8080/");
15 Link::Client
client(req
);
16 Link::Response
* res
= client
.Send();
17 if (client
.Status
==0&&res
->GetStatus() == 200) {
18 std::cout
<< "\033[1;32mTest passed " << res
->GetBody() << std::endl
;
20 std::cout
<< "\033[1;31mTest failed" << std::endl
;
25 int main(int argc
, char** argv
) {
26 if (SSLeay() < 0x30000000L
) {
27 std::cout
<< "OpenSSL version is lower than 3.0.0" << std::endl
;
33 t
= std::thread(client
, nullptr);
36 server
.Get("/", [](Link::Request
* req
, Link::Response
* res
) {
37 res
->SetBody("(SSL: " + std::string(ssl
?"true":"false") + " | Multi-Threaded: " + std::string(server
.IsMultiThreaded()?"true":"false") + ")");
43 if (server
.Status
!= 0) {
44 std::cout
<< "\033[1;31mTest failed" << std::endl
;
49 server
.EnableMultiThreading();
50 t
= std::thread(client
, nullptr);
53 if (server
.Status
!= 0) {
54 std::cout
<< "\033[1;31mTest failed" << std::endl
;
60 server
.EnableSSL("certificate.pem", "key.pem");
61 t
= std::thread(client
, nullptr);
64 if (server
.Status
!= 0) {
65 std::cout
<< "\033[1;31mTest failed" << std::endl
;
70 server
.DisableMultiThreading();
71 t
= std::thread(client
, nullptr);
74 if (server
.Status
!= 0) {
75 std::cout
<< "\033[1;31mTest failed" << std::endl
;