From 3498d52d7eb33b33b16d0ceef44ed3b52debdd5c Mon Sep 17 00:00:00 2001 From: "Sergey V. Lobanov" Date: Mon, 19 Aug 2024 20:01:11 +0000 Subject: tests: add pcre negative cases, improve pcre-related code test coverage these test cases will help for pcre2 migration (issue #173) --- tests/accel-pppd/general/test_basic.py | 83 ++++++++++++++++++++++ .../accel-pppd/general/test_pcre_negative_cases.py | 55 ++++++++++++++ .../dhcpv4/test_ipoe_shared_session_wo_auth.py | 4 +- .../accel-pppd/pppoe/test_pppoe_session_wo_auth.py | 2 +- tests/accel-pppd/test_basic.py | 83 ---------------------- 5 files changed, 141 insertions(+), 86 deletions(-) create mode 100644 tests/accel-pppd/general/test_basic.py create mode 100644 tests/accel-pppd/general/test_pcre_negative_cases.py delete mode 100644 tests/accel-pppd/test_basic.py (limited to 'tests') diff --git a/tests/accel-pppd/general/test_basic.py b/tests/accel-pppd/general/test_basic.py new file mode 100644 index 00000000..2b2c6f71 --- /dev/null +++ b/tests/accel-pppd/general/test_basic.py @@ -0,0 +1,83 @@ +import pytest +from common import process + + +def test_accel_pppd_version(accel_pppd): + (exit, out, err) = process.run([accel_pppd, "--version"]) + + # test that accel-pppd --version exits with code 0, prints + # nothing to stdout and prints to stdout + assert exit == 0 and err == "" and "accel-ppp " in out and len(out.split(" ")) == 2 + + +@pytest.fixture() +def accel_pppd_config(): + return """ + [modules] + log_file + log_syslog + log_tcp + #log_pgsql + + pptp + l2tp + sstp + pppoe + ipoe + + auth_mschap_v2 + auth_mschap_v1 + auth_chap_md5 + auth_pap + + radius + chap-secrets + + ippool + + pppd_compat + shaper + #net-snmp + logwtmp + connlimit + + ipv6_nd + ipv6_dhcp + ipv6pool + + [core] + log-error=/dev/stderr + + [log] + log-debug=/dev/stdout + log-file=/dev/stdout + log-emerg=/dev/stderr + level=5 + + [cli] + tcp=127.0.0.1:2001 + + [pppoe] + + [client-ip-range] + 10.0.0.0/8 + + [radius] + """ + + +# load all modules and check that accel-pppd replies to 'show stat' command +def test_load_all_modules(accel_pppd_instance, accel_cmd): + + # test that accel-pppd started successfully + assert accel_pppd_instance + + (exit_sh_stat, out_sh_stat, err_sh_stat) = process.run([accel_cmd, "show stat"]) + + # test that 'show stat' has no errors and contains 'uptime' + assert ( + exit_sh_stat == 0 + and len(out_sh_stat) > 1 + and err_sh_stat == "" + and "uptime" in out_sh_stat + ) diff --git a/tests/accel-pppd/general/test_pcre_negative_cases.py b/tests/accel-pppd/general/test_pcre_negative_cases.py new file mode 100644 index 00000000..7ad05ff3 --- /dev/null +++ b/tests/accel-pppd/general/test_pcre_negative_cases.py @@ -0,0 +1,55 @@ +import pytest +from common import process + + +@pytest.fixture() +def accel_pppd_config(): + return """ + [modules] + pppoe + + [log] + log-debug=/dev/stdout + level=5 + + [cli] + tcp=127.0.0.1:2001 + """ + + +# test pcre-related negative cases +def test_pcre_negative_cases(accel_pppd_instance, accel_cmd): + + # test that accel-pppd started successfully + assert accel_pppd_instance + + (exit_sh_sess, out_sh_sess, err_sh_sess) = process.run([accel_cmd, "show sessions match username 00("]) + # test that 'show sessions' with invalid regexp reports the issue and error position + assert ( + exit_sh_sess == 0 + and len(out_sh_sess) > 0 + and err_sh_sess == "" + and "match: " in out_sh_sess + and "at 3" in out_sh_sess + ) + + + (exit_iface_add, out_iface_add, err_iface_add) = process.run([accel_cmd, "pppoe interface add re:000("]) + # test that 'pppoe interface add' with invalid regexp reports the issue and error position + assert ( + exit_iface_add == 0 + and len(out_iface_add) > 0 + and err_iface_add == "" + and "pppoe: " in out_iface_add + and "at 4" in out_iface_add + ) + + (exit_term, out_term, err_term) = process.run([accel_cmd, "terminate match username 00("]) + # test that 'terminate' with invalid regexp reports the issue and error position + assert ( + exit_term == 0 + and len(out_term) > 0 + and err_term == "" + and "match: " in out_term + and "at 3" in out_term + ) diff --git a/tests/accel-pppd/ipoe/dhcpv4/test_ipoe_shared_session_wo_auth.py b/tests/accel-pppd/ipoe/dhcpv4/test_ipoe_shared_session_wo_auth.py index 104e4e9b..da9a40e0 100644 --- a/tests/accel-pppd/ipoe/dhcpv4/test_ipoe_shared_session_wo_auth.py +++ b/tests/accel-pppd/ipoe/dhcpv4/test_ipoe_shared_session_wo_auth.py @@ -28,8 +28,8 @@ def accel_pppd_config(veth_pair_netns): noauth=1 shared=1 gw-ip-address=192.0.2.1/24 - interface=""" - + veth_pair_netns["veth_a"] + interface=re:.""" + + veth_pair_netns["veth_a"][1:] ) diff --git a/tests/accel-pppd/pppoe/test_pppoe_session_wo_auth.py b/tests/accel-pppd/pppoe/test_pppoe_session_wo_auth.py index 0c8aa2c0..5ce870dd 100644 --- a/tests/accel-pppd/pppoe/test_pppoe_session_wo_auth.py +++ b/tests/accel-pppd/pppoe/test_pppoe_session_wo_auth.py @@ -69,7 +69,7 @@ def test_pppoe_session_wo_auth(pppd_instance, accel_cmd): (exit, out, err) = process.run( [ accel_cmd, - "show sessions match username loginAB username,ip,state", + "show sessions match username log.nAB username,ip,state", ] ) assert exit == 0 # accel-cmd fails diff --git a/tests/accel-pppd/test_basic.py b/tests/accel-pppd/test_basic.py deleted file mode 100644 index 2b2c6f71..00000000 --- a/tests/accel-pppd/test_basic.py +++ /dev/null @@ -1,83 +0,0 @@ -import pytest -from common import process - - -def test_accel_pppd_version(accel_pppd): - (exit, out, err) = process.run([accel_pppd, "--version"]) - - # test that accel-pppd --version exits with code 0, prints - # nothing to stdout and prints to stdout - assert exit == 0 and err == "" and "accel-ppp " in out and len(out.split(" ")) == 2 - - -@pytest.fixture() -def accel_pppd_config(): - return """ - [modules] - log_file - log_syslog - log_tcp - #log_pgsql - - pptp - l2tp - sstp - pppoe - ipoe - - auth_mschap_v2 - auth_mschap_v1 - auth_chap_md5 - auth_pap - - radius - chap-secrets - - ippool - - pppd_compat - shaper - #net-snmp - logwtmp - connlimit - - ipv6_nd - ipv6_dhcp - ipv6pool - - [core] - log-error=/dev/stderr - - [log] - log-debug=/dev/stdout - log-file=/dev/stdout - log-emerg=/dev/stderr - level=5 - - [cli] - tcp=127.0.0.1:2001 - - [pppoe] - - [client-ip-range] - 10.0.0.0/8 - - [radius] - """ - - -# load all modules and check that accel-pppd replies to 'show stat' command -def test_load_all_modules(accel_pppd_instance, accel_cmd): - - # test that accel-pppd started successfully - assert accel_pppd_instance - - (exit_sh_stat, out_sh_stat, err_sh_stat) = process.run([accel_cmd, "show stat"]) - - # test that 'show stat' has no errors and contains 'uptime' - assert ( - exit_sh_stat == 0 - and len(out_sh_stat) > 1 - and err_sh_stat == "" - and "uptime" in out_sh_stat - ) -- cgit v1.2.3