add notification
This commit is contained in:
1 parent
281a93a2cd
commit
6fc604b6f2
4 files changed
+64
-6
No files matched your search
@@ -88,3 +88,9 @@ deploy_production:
|
||||
needs: [integrate]
|
||||
only:
|
||||
- master
|
||||
|
||||
notification:
|
||||
stage: .post
|
||||
script:
|
||||
- curl -X POST $ZULIP_URL -u $ZULIP_EMAIL:$ZULIP_API -d "type=private" -d "to=$ZULIP_EMAIL" -d "content=$CI_COMMIT_DESCRIPTION - passed the tests."
|
||||
needs: [integrate]
|
||||
@@ -79,7 +79,7 @@ class PacketTime:
|
||||
|
||||
"""
|
||||
|
||||
return max(self._get_packet_times()) - min(self._get_packet_times())
|
||||
return 1e6 * (max(self._get_packet_times()) - min(self._get_packet_times()))
|
||||
|
||||
def get_var(self):
|
||||
"""Calculates the variation of packet times in a network flow.
|
||||
|
||||
@@ -163,7 +163,7 @@ class Flow:
|
||||
|
||||
return data
|
||||
|
||||
def add_packet(self, packet, direction) -> None:
|
||||
def add_packet(self, packet: Any, direction: Enum) -> None:
|
||||
"""Adds a packet to the current list of packets.
|
||||
|
||||
Args:
|
||||
|
||||
+56
-4
@@ -1,13 +1,45 @@
|
||||
from scapy.all import IP, TCP, UDP, ICMP
|
||||
from scapy.all import IP, TCP, UDP, ICMP, Ether
|
||||
from cicflowmeter.features.context.packet_flow_key import get_packet_flow_key
|
||||
from cicflowmeter.features.context.packet_direction import PacketDirection
|
||||
from cicflowmeter.flow import Flow
|
||||
import pytest
|
||||
|
||||
|
||||
def test_packet_flow_key():
|
||||
@pytest.fixture
|
||||
def mock_packet():
|
||||
icmp_packet = IP(src="192.168.1.2", dst="192.168.1.1") / ICMP()
|
||||
tcp_packet = IP(src="192.168.1.2", dst="192.168.1.1") / TCP()
|
||||
udp_packet = IP(src="192.168.1.2", dst="192.168.1.1") / UDP()
|
||||
tcp_packet = IP(src="192.168.1.2", dst="192.168.1.1", ihl=5) / TCP(dport=80)
|
||||
udp_packet = IP(src="192.168.1.2", dst="192.168.1.1", ihl=5) / UDP(dport=53)
|
||||
return icmp_packet, tcp_packet, udp_packet
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_flow(mock_packet):
|
||||
# TODO: get a real flow with cicflowmeter java version and rewrite testcase
|
||||
_, tcp_packet, udp_packet = mock_packet
|
||||
flow = Flow(tcp_packet, PacketDirection.FORWARD)
|
||||
|
||||
flow.add_packet(tcp_packet, PacketDirection.FORWARD)
|
||||
flow.add_packet(tcp_packet, PacketDirection.REVERSE)
|
||||
flow.add_packet(tcp_packet, PacketDirection.FORWARD)
|
||||
flow.add_packet(tcp_packet, PacketDirection.REVERSE)
|
||||
|
||||
return flow
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_flow_data(mock_flow):
|
||||
data = mock_flow.get_data()
|
||||
return data
|
||||
|
||||
|
||||
def test_flow_data(mock_flow_data):
|
||||
print(mock_flow_data)
|
||||
assert len(mock_flow_data) > 70
|
||||
|
||||
|
||||
def test_packet_flow_key(mock_packet):
|
||||
icmp_packet, tcp_packet, udp_packet = mock_packet
|
||||
|
||||
with pytest.raises(Exception):
|
||||
get_packet_flow_key(icmp_packet, PacketDirection.FORWARD)
|
||||
@@ -26,3 +58,23 @@ def test_packet_flow_key():
|
||||
# Test Port match source and destination
|
||||
assert udp_forward[2] == udp_backward[3]
|
||||
assert tcp_forward[2] == tcp_backward[3]
|
||||
|
||||
|
||||
def test_flow_duration(mock_flow_data):
|
||||
assert float(mock_flow_data["flow_duration"]).is_integer()
|
||||
|
||||
|
||||
def test_flow_packet_count(mock_flow_data):
|
||||
assert mock_flow_data["tot_fwd_pkts"] == 2
|
||||
assert mock_flow_data["tot_bwd_pkts"] == 2
|
||||
|
||||
|
||||
def test_flow_packet_rate(mock_flow_data):
|
||||
assert mock_flow_data["flow_pkts_s"] == 0
|
||||
assert mock_flow_data["flow_byts_s"] == 0
|
||||
assert mock_flow_data["fwd_pkts_s"] == 0
|
||||
assert mock_flow_data["bwd_pkts_s"] == 0
|
||||
|
||||
|
||||
def test_flow_protocol(mock_flow_data):
|
||||
assert mock_flow_data["protocol"] in (17, 6)
|
||||
Reference in new issue
Block a user