OpenVPN 3 Core Library
Loading...
Searching...
No Matches
test_cliopt.cpp File Reference
#include <iostream>
#include "test_common.hpp"
#include <openvpn/init/initprocess.hpp>
#include <openvpn/time/asiotimer.hpp>
#include <client/ovpncli.hpp>
#include <openvpn/client/cliopt.hpp>
Include dependency graph for test_cliopt.cpp:

Go to the source code of this file.

Classes

class  ValidConfigs
 
class  InvalidConfigs
 

Typedefs

typedef std::pair< std::string, std::string > config_error
 

Functions

void load_client_config (const std::string &config_content)
 
 TEST_P (ValidConfigs, valid_config)
 
 TEST_P (InvalidConfigs, config_throws_option_error)
 
 TEST (config, missingRequiredOption)
 
 INSTANTIATE_TEST_SUITE_P (optionError, InvalidConfigs, testing::Values(config_error{std::string("remote wooden.box\n")+"mode server"+"\n<ca>\n"+dummysecp256cert+"</ca>\n", "option 'cert' not found"}, config_error{minimalConfig+"mode", "Only 'mode p2p' supported"}, config_error{minimalConfig+"mode server", "Only 'mode p2p' supported"}, config_error{minimalConfig+"key-method 1", "Only 'key-method 2' is supported"}, config_error{minimalConfig+"fragment", "sorry, 'fragment' directive is not supported"}))
 
 TEST (config, parse_unknown_option)
 
 INSTANTIATE_TEST_SUITE_P (minimalConfigs, ValidConfigs, testing::Values(minimalConfig+"cipher AES-192-CBC\ncipher AES-256-GCM\n", minimalConfig+"ignore-unknown-option bikeshed-colour bikeshed-color\n" "ignore-unknown-option danish axe phk\n" "bikeshed-colour green", minimalConfig+"setenv opt bikeshed-paint silver with sparkling", minimalConfig+"tun-ipv6\n", minimalConfig+"opt-verify\n"))
 
 TEST (config, parse_management)
 
 TEST (config, duplicate_options_sets)
 
 TEST (config, dco_compatibility)
 
 TEST (config, server_cert_in_eval)
 
 TEST (config, server_options_present_in_error_msg)
 
 TEST (config, unknown_options_present_in_error_msg)
 
 TEST (config, multiple_option_errors)
 
 INSTANTIATE_TEST_SUITE_P (clientPull, ValidConfigs, testing::Values(certconfig+"\nremote 1.2.3.4\ntls-client\npull\n", certconfig+"\nremote 1.2.3.4\ntls-client\npull\nclient\n", certconfig+"\nremote 1.2.3.4\npull\nclient\n", certconfig+"\nremote 1.2.3.4\nclient\ntls-client\n"))
 
 INSTANTIATE_TEST_SUITE_P (clientPull, InvalidConfigs, testing::Values(config_error{certconfig+"\nremote 1.2.3.4\n", "option_error: Neither 'client' nor both 'tls-client' and 'pull' options declared. OpenVPN3 client only supports --client mode."}, config_error{certconfig+"\nremote 1.2.3.4\ntls-client\n", "option_error: Neither 'client' nor both 'tls-client' and 'pull' options declared. OpenVPN3 client only supports --client mode."}, config_error{certconfig+"\nremote 1.2.3.4\npull\n", "option_error: Neither 'client' nor both 'tls-client' and 'pull' options declared. OpenVPN3 client only supports --client mode."}))
 
 TEST (config, meta_option_in_content)
 

Variables

std::string dummysecp256cert
 
std::string dummysecp256key
 
std::string certconfig
 
std::string minimalConfig
 

Typedef Documentation

◆ config_error

typedef std::pair<std::string, std::string> config_error

Definition at line 44 of file test_cliopt.cpp.

Function Documentation

◆ INSTANTIATE_TEST_SUITE_P() [1/4]

INSTANTIATE_TEST_SUITE_P ( clientPull  ,
InvalidConfigs  ,
testing::Values(config_error{certconfig+"\nremote 1.2.3.4\n", "option_error: Neither 'client' nor both 'tls-client' and 'pull' options declared. OpenVPN3 client only supports --client mode."}, config_error{certconfig+"\nremote 1.2.3.4\ntls-client\n", "option_error: Neither 'client' nor both 'tls-client' and 'pull' options declared. OpenVPN3 client only supports --client mode."}, config_error{certconfig+"\nremote 1.2.3.4\npull\n", "option_error: Neither 'client' nor both 'tls-client' and 'pull' options declared. OpenVPN3 client only supports --client mode."})   
)

◆ INSTANTIATE_TEST_SUITE_P() [2/4]

INSTANTIATE_TEST_SUITE_P ( clientPull  ,
ValidConfigs  ,
testing::Values(certconfig+"\nremote 1.2.3.4\ntls-client\npull\n", certconfig+"\nremote 1.2.3.4\ntls-client\npull\nclient\n", certconfig+"\nremote 1.2.3.4\npull\nclient\n", certconfig+"\nremote 1.2.3.4\nclient\ntls-client\n")   
)

◆ INSTANTIATE_TEST_SUITE_P() [3/4]

INSTANTIATE_TEST_SUITE_P ( minimalConfigs  ,
ValidConfigs  ,
testing::Values(minimalConfig+"cipher AES-192-CBC\ncipher AES-256-GCM\n", minimalConfig+"ignore-unknown-option bikeshed-colour bikeshed-color\n" "ignore-unknown-option danish axe phk\n" "bikeshed-colour green", minimalConfig+"setenv opt bikeshed-paint silver with sparkling", minimalConfig+"tun-ipv6\n", minimalConfig+"opt-verify\n")   
)

◆ INSTANTIATE_TEST_SUITE_P() [4/4]

INSTANTIATE_TEST_SUITE_P ( optionError  ,
InvalidConfigs  ,
testing::Values(config_error{std::string("remote wooden.box\n")+"mode server"+"\n<ca>\n"+dummysecp256cert+"</ca>\n", "option 'cert' not found"}, config_error{minimalConfig+"mode", "Only 'mode p2p' supported"}, config_error{minimalConfig+"mode server", "Only 'mode p2p' supported"}, config_error{minimalConfig+"key-method 1", "Only 'key-method 2' is supported"}, config_error{minimalConfig+"fragment", "sorry, 'fragment' directive is not supported"})   
)

◆ load_client_config()

void load_client_config ( const std::string &  config_content)

Definition at line 49 of file test_cliopt.cpp.

Here is the caller graph for this function:

◆ TEST() [1/10]

TEST ( config  ,
dco_compatibility   
)

Definition at line 173 of file test_cliopt.cpp.

◆ TEST() [2/10]

TEST ( config  ,
duplicate_options_sets   
)

Definition at line 132 of file test_cliopt.cpp.

◆ TEST() [3/10]

TEST ( config  ,
meta_option_in_content   
)

Definition at line 277 of file test_cliopt.cpp.

◆ TEST() [4/10]

TEST ( config  ,
missingRequiredOption   
)

Definition at line 77 of file test_cliopt.cpp.

◆ TEST() [5/10]

TEST ( config  ,
multiple_option_errors   
)

Definition at line 243 of file test_cliopt.cpp.

◆ TEST() [6/10]

TEST ( config  ,
parse_management   
)

Definition at line 119 of file test_cliopt.cpp.

◆ TEST() [7/10]

TEST ( config  ,
parse_unknown_option   
)

Definition at line 96 of file test_cliopt.cpp.

◆ TEST() [8/10]

TEST ( config  ,
server_cert_in_eval   
)

Definition at line 198 of file test_cliopt.cpp.

◆ TEST() [9/10]

TEST ( config  ,
server_options_present_in_error_msg   
)

Definition at line 210 of file test_cliopt.cpp.

◆ TEST() [10/10]

TEST ( config  ,
unknown_options_present_in_error_msg   
)

Definition at line 227 of file test_cliopt.cpp.

◆ TEST_P() [1/2]

TEST_P ( InvalidConfigs  ,
config_throws_option_error   
)

Definition at line 69 of file test_cliopt.cpp.

◆ TEST_P() [2/2]

TEST_P ( ValidConfigs  ,
valid_config   
)

Definition at line 64 of file test_cliopt.cpp.

Variable Documentation

◆ certconfig

std::string certconfig
Initial value:
= "<ca>\n"
+ dummysecp256cert + "</ca>\n"
+ "<cert>\n"
+ dummysecp256cert + "</cert>\n"
+ "<key>\n" + dummysecp256key
+ "</key>\n"
std::string dummysecp256key
std::string dummysecp256cert

Definition at line 30 of file test_cliopt.cpp.

◆ dummysecp256cert

std::string dummysecp256cert
Initial value:
= "-----BEGIN CERTIFICATE-----\n"
"MIIBETCBuAIJAImY2B4ODlQuMAoGCCqGSM49BAMCMBExDzANBgNVBAMMBnNlcnZl\n"
"cjAeFw0yMjA4MzAxNTA3NDJaFw0zMjA4MjcxNTA3NDJaMBExDzANBgNVBAMMBnNl\n"
"cnZlcjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDwU0GWKxTxYXP/L448OlaQr\n"
"fhF2p83eg/55LJB7Aiq7xckQImGa3w2heo01hFQXQ/4mK3wsLZr7ZZl7IDC4hhMw\n"
"CgYIKoZIzj0EAwIDSAAwRQIhAKDmwivsD4qjRtbaXmUNc3src6oFOCus32ZRZw0p\n"
"Oz9zAiBZ47YdsJ985ID5COg1+nCKk+0d7jWjICbPcODHyzH4fg==\n"
"-----END CERTIFICATE-----\n"

Definition at line 15 of file test_cliopt.cpp.

◆ dummysecp256key

std::string dummysecp256key
Initial value:
= "-----BEGIN PRIVATE KEY-----\n"
"MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgbzZUYL0jZM05vB2O\n"
"kIKcA1OxSKw9ZVQ8UnlUCf6l/8ChRANCAAQ8FNBlisU8WFz/y+OPDpWkK34RdqfN\n"
"3oP+eSyQewIqu8XJECJhmt8NoXqNNYRUF0P+Jit8LC2a+2WZeyAwuIYT\n"
"-----END PRIVATE KEY-----\n"

Definition at line 24 of file test_cliopt.cpp.

◆ minimalConfig

std::string minimalConfig
Initial value:
= certconfig + "\n"
+ "client\n"
"remote wooden.box\n"
std::string certconfig

Definition at line 37 of file test_cliopt.cpp.