]> git.meshlink.io Git - meshlink/blob - test/blackbox/common/common_handlers.h
Add the blackbox channel connection tests.
[meshlink] / test / blackbox / common / common_handlers.h
1 /*
2     common_handlers.h -- Declarations of common callback handlers and signal handlers for
3                             black box test cases
4     Copyright (C) 2018  Guus Sliepen <guus@meshlink.io>
5
6     This program is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10
11     This program is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License along
17     with this program; if not, write to the Free Software Foundation, Inc.,
18     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 */
20
21 #ifndef COMMON_HANDLERS_H
22 #define COMMON_HANDLERS_H
23
24 #include "common_types.h"
25
26 #define PRINT_TEST_CASE_HEADER()        if(state_ptr) \
27                 fprintf(stderr, "[ %s ]\n", state_ptr->test_case_name)
28 #define PRINT_TEST_CASE_MSG(...)        if(state_ptr) \
29                 do { \
30                         fprintf(stderr, "[ %s ] ", \
31                                 state_ptr->test_case_name); \
32                         fprintf(stderr, __VA_ARGS__); \
33                 } while(0)
34
35 extern bool meta_conn_status[];
36 extern bool node_reachable_status[];
37 extern bool test_running;
38
39 char *get_ip(const char *if_name);
40 char *get_netmask(const char *if_name);
41 void stop_nw_intf(const char *if_name);
42 void start_nw_intf(const char *if_name);
43 void set_ip(const char *if_name, const char *new_ip);
44 void set_netmask(const char *if_name, const char *new_ip);
45 void mesh_close_signal_handler(int a);
46 void mesh_stop_start_signal_handler(int a);
47 void setup_signals(void);
48 void meshlink_callback_node_status(meshlink_handle_t *mesh, meshlink_node_t *node,
49                                    bool reachable);
50 void meshlink_callback_logger(meshlink_handle_t *mesh, meshlink_log_level_t level,
51                               const char *text);
52
53 void change_ip(int node);
54 void create_bridge(const char *bridgeName);
55 void add_interface(const char *bridgeName, const char *interfaceName);
56 void add_veth_pair(const char *vethName1, const char *vethName2);
57 void bring_if_up(const char *bridgeName);
58 void replaceAll(char *str, const char *oldWord, const char *newWord);
59 void switch_bridge(const char *containerName, const char *currentBridge, const char *newBridge);
60 void bring_if_down(const char *bridgeName);
61 void del_interface(const char *bridgeName, const char *interfaceName);
62 void delete_bridge(const char *bridgeName);
63 void create_container_on_bridge(const char *containerName, const char *bridgeName, const char *ifName);
64 void config_dnsmasq(const char *containerName, const char *ifName, const char *listenAddress, const char *dhcpRange);
65 void config_nat(const char *containerName, const char *listenAddress);
66 void create_nat_layer(const char *containerName, const char *bridgeName, const char *ifName, const char *listenAddress, char *dhcpRange);
67 void destroy_nat_layer(const char *containerName, const char *bridgeName);
68 void incoming_firewall_ipv4(const char *packetType, int portNumber);
69 void incoming_firewall_ipv6(const char *packetType, int portNumber);
70 void outgoing_firewall_ipv4(const char *packetType, int portNumber);
71 void outgoing_firewall_ipv6(const char *packetType, int portNumber);
72
73 #endif // COMMON_HANDLERS_H