From d31ae08379b30ec423eb529d3c31a8abcab86de2 2025-01-22 00:11:28
From: Branko Majic <branko@majic.rs>
Date: 2025-01-22 00:11:28
Subject: [PATCH] MAR-233: Replace hping3 with nmap in mail_forwarder connectivity tests.

---

diff --git a/roles/mail_forwarder/molecule/default/prepare.yml b/roles/mail_forwarder/molecule/default/prepare.yml
index 35ebdd99197ee391d5c280ab2a514fe80284301e..20a61c1fddb92231e866d25bacb8e7f890520850 100644
--- a/roles/mail_forwarder/molecule/default/prepare.yml
+++ b/roles/mail_forwarder/molecule/default/prepare.yml
@@ -80,7 +80,7 @@
 
     - name: Install tool for testing TCP connectivity
       ansible.builtin.apt:
-        name: hping3
+        name: nmap
         state: present
 
     - name: Deploy CA certificate
@@ -149,7 +149,7 @@
 
     - name: Install tool for testing TCP connectivity
       ansible.builtin.apt:
-        name: hping3
+        name: nmap
         state: present
 
     - name: Install SWAKS for testing SMTP capability
diff --git a/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_client.py b/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_client.py
index 703495cfde964c03e2f38a7dd6f29addc6bec518..e6e2920b784120e987516681d15040b24d05bda0 100644
--- a/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_client.py
+++ b/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_client.py
@@ -23,6 +23,6 @@ def test_connectivity_from_client(host, server):
 
     with host.sudo():
 
-        ping = host.run('hping3 -S -p 25 -c 1 %s', server)
-        assert ping.rc != 0
-        assert "100% packet loss" in ping.stderr
+        scan = host.run('nmap -4 -p 25 -oG - %s', server)
+        assert scan.rc == 0
+        assert "Ports: 25/filtered/tcp//smtp/" in scan.stdout
diff --git a/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_relay.py b/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_relay.py
index 251a17182eb940ce7185c4298323d8220b96e8b8..9ae7a1cd3aa0879cba807f8f6d308d0935a76497 100644
--- a/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_relay.py
+++ b/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_relay.py
@@ -21,8 +21,9 @@ def test_connectivity_from_authorised_relay(host, server):
 
     with host.sudo():
 
-        ping = host.run('hping3 -S -p 25 -c 1 %s', server)
-        assert ping.rc == 0
+        scan = host.run('nmap -p 25 -oG - %s', server)
+        assert scan.rc == 0
+        assert "Ports: 25/open/tcp//smtp/" in scan.stdout
 
 
 @pytest.mark.parametrize("server",
@@ -37,9 +38,9 @@ def test_connectivity_from_unauthorised_relay(host, server):
 
     with host.sudo():
 
-        ping = host.run('hping3 -S -p 25 -c 1 %s', server)
-        assert ping.rc != 0
-        assert "100% packet loss" in ping.stderr
+        scan = host.run('nmap -p 25 -oG - %s', server)
+        assert scan.rc == 0
+        assert "Ports: 25/filtered/tcp//smtp/" in scan.stdout
 
 
 @pytest.mark.parametrize("server",