twister

HTTP fault injector for testing
Log | Files | Refs | README | LICENSE

commit 01d82d833558e8c9079b1f30b95064a0b8989bcc
parent 482b48e25d36d736ec10bd7ddcb183bc3b755a5b
Author: Marcello Stanisci <stanisci.m@gmail.com>
Date:   Sat, 20 Jan 2018 17:27:28 +0100

Adding Web server, and invoking test-script via 'make check'

Diffstat:
M.gitignore | 3+++
Mconfigure.ac | 1+
Msrc/Makefile.am | 2+-
Asrc/test/Makefile.am | 11+++++++++++
Asrc/test/test_twister | 3+++
Asrc/test/test_twister_webserver.c | 80+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 99 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore @@ -31,3 +31,6 @@ test-driver twister_config.h twister_config.h.in INSTALL +src/test/Makefile.in +src/test/Makefile +src/test/test_twister_webserver diff --git a/configure.ac b/configure.ac @@ -386,5 +386,6 @@ AC_CONFIG_FILES([Makefile src/Makefile src/include/Makefile src/twister/Makefile + src/test/Makefile ]) AC_OUTPUT diff --git a/src/Makefile.am b/src/Makefile.am @@ -1,4 +1,4 @@ # This Makefile.am is in the public domain AM_CPPFLAGS = -I$(top_srcdir)/src/include -SUBDIRS = include twister +SUBDIRS = include twister test diff --git a/src/test/Makefile.am b/src/test/Makefile.am @@ -0,0 +1,11 @@ +bin_PROGRAMS = \ + test_twister_webserver + +test_twister_webserver_SOURCES = \ + test_twister_webserver.c + +test_twister_webserver_LDADD = \ + -lmicrohttpd + +TESTS = \ + test_twister # shell script diff --git a/src/test/test_twister b/src/test/test_twister @@ -0,0 +1,3 @@ +#!/bin/bash + +echo "Test undong!" diff --git a/src/test/test_twister_webserver.c b/src/test/test_twister_webserver.c @@ -0,0 +1,80 @@ +/* + This file is part of Taler. + Copyright (C) 2009, 2010, 2011, 2016 GNUnet e.V. + Copyright (C) 2018 Taler Systems SA + + Taler is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version. + + Taler is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Taler; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +/** + * This code is in the public domain. + */ + +#include <sys/types.h> +#ifndef _WIN32 +#include <sys/select.h> +#include <sys/socket.h> +#else +#include <winsock2.h> +#endif +#include <string.h> +#include <microhttpd.h> +#include <stdio.h> + +#define PORT 8888 + +static int +answer_to_connection (void *cls, struct MHD_Connection *connection, + const char *url, const char *method, + const char *version, const char *upload_data, + size_t *upload_data_size, void **con_cls) +{ + const char *page = "<html><body>Hello, browser!</body></html>"; + struct MHD_Response *response; + int ret; + (void)cls; /* Unused. Silent compiler warning. */ + (void)url; /* Unused. Silent compiler warning. */ + (void)method; /* Unused. Silent compiler warning. */ + (void)version; /* Unused. Silent compiler warning. */ + (void)upload_data; /* Unused. Silent compiler warning. */ + (void)upload_data_size; /* Unused. Silent compiler warning. */ + (void)con_cls; /* Unused. Silent compiler warning. */ + + response = + MHD_create_response_from_buffer (strlen (page), (void *) page, + MHD_RESPMEM_PERSISTENT); + ret = MHD_queue_response (connection, MHD_HTTP_OK, response); + MHD_destroy_response (response); + + return ret; +} + + +int +main (void) +{ + struct MHD_Daemon *daemon; + + daemon = MHD_start_daemon (MHD_USE_AUTO | MHD_USE_INTERNAL_POLLING_THREAD, PORT, NULL, NULL, + &answer_to_connection, NULL, MHD_OPTION_END); + if (NULL == daemon) + return 1; + + (void) getchar (); + + MHD_stop_daemon (daemon); + return 0; +}