Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
PRRT
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
37
Issues
37
List
Boards
Labels
Service Desk
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
LARN
PRRT
Commits
c70109a4
Commit
c70109a4
authored
Nov 30, 2017
by
Andreas Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rename forwardPacketTable to deliveredPacketTable
parent
f181cf6c
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
149 additions
and
148 deletions
+149
-148
prrt/proto/CMakeLists.txt
prrt/proto/CMakeLists.txt
+1
-1
prrt/proto/processes/dataReceiver.c
prrt/proto/processes/dataReceiver.c
+7
-7
prrt/proto/socket.c
prrt/proto/socket.c
+8
-8
prrt/proto/socket.h
prrt/proto/socket.h
+2
-2
prrt/proto/stores/deliveredPacketTable.c
prrt/proto/stores/deliveredPacketTable.c
+18
-18
prrt/proto/stores/deliveredPacketTable.h
prrt/proto/stores/deliveredPacketTable.h
+25
-0
prrt/proto/stores/forwardPacketTable.h
prrt/proto/stores/forwardPacketTable.h
+0
-24
prrt/prrt.pyx
prrt/prrt.pyx
+1
-1
tests/CMakeLists.txt
tests/CMakeLists.txt
+1
-1
tests/delivered_packet_table_tests.cpp
tests/delivered_packet_table_tests.cpp
+86
-0
tests/forward_packet_table_tests.cpp
tests/forward_packet_table_tests.cpp
+0
-86
No files found.
prrt/proto/CMakeLists.txt
View file @
c70109a4
...
...
@@ -9,7 +9,7 @@ add_library(PRRT ../defines.h
../xlap/xlap.c ../xlap/xlap.h
applicationConstraints.c applicationConstraints.h
vdmcode/block_code.c vdmcode/block_code.h
stores/
forwardPacketTable.c stores/forwar
dPacketTable.h
stores/
deliveredPacketTable.c stores/delivere
dPacketTable.h
stores/lossGatherer.c stores/lossGatherer.h
processes/dataReceiver.c processes/dataReceiver.h
processes/feedbackReceiver.c processes/feedbackReceiver.h
...
...
prrt/proto/processes/dataReceiver.c
View file @
c70109a4
...
...
@@ -34,7 +34,7 @@ static void decode_block(PrrtSocket *sock_ptr, PrrtBlock *block) {
while
(
List_count
(
block
->
dataPackets
)
>
0
)
{
PrrtPacket
*
pkt
=
List_shift
(
block
->
dataPackets
);
if
(
Prrt
ForwardPacketTable_test_set_is_number_relevant
(
sock_ptr
->
forwar
dPacketTable
,
pkt
->
sequenceNumber
))
{
if
(
Prrt
DeliveredPacketTable_test_set_is_number_relevant
(
sock_ptr
->
delivere
dPacketTable
,
pkt
->
sequenceNumber
))
{
PrrtReceiveDataQueue_insert
(
sock_ptr
->
receiveDataQueue
,
pkt
);
}
else
{
PrrtPacket_destroy
(
pkt
);
...
...
@@ -111,13 +111,13 @@ static void handle_data_packet(PrrtSocket *sock_ptr, PrrtPacket *packet, struct
prrtTimestamp_t
now
=
PrrtClock_get_prrt_time_us
(
&
sock_ptr
->
clock
);
if
(
is_timeout
(
now
,
payload
->
packetTimeout_us
))
{
Prrt
ForwardPacketTable_test_set_is_number_relevant
(
sock_ptr
->
forwar
dPacketTable
,
packet
->
sequenceNumber
);
Prrt
DeliveredPacketTable_test_set_is_number_relevant
(
sock_ptr
->
delivere
dPacketTable
,
packet
->
sequenceNumber
);
// TODO: note this as loss
PrrtPacket_destroy
(
packet
);
debug
(
DEBUG_RECEIVER
,
"timeout data packet %u (%lu > %lu)"
,
seqno
,
(
unsigned
long
)
now
,
(
unsigned
long
)
payload
->
packetTimeout_us
);
}
else
if
(
Prrt
ForwardPacketTable_test_set_is_number_relevant
(
sock_ptr
->
forwar
dPacketTable
,
packet
->
sequenceNumber
)
==
}
else
if
(
Prrt
DeliveredPacketTable_test_set_is_number_relevant
(
sock_ptr
->
delivere
dPacketTable
,
packet
->
sequenceNumber
)
==
false
)
{
PrrtPacket_destroy
(
packet
);
}
else
{
...
...
@@ -153,9 +153,9 @@ static void handle_data_packet(PrrtSocket *sock_ptr, PrrtPacket *packet, struct
static
void
handle_redundancy_packet
(
PrrtSocket
*
socket
,
PrrtPacket
*
packet
)
{
PrrtPacketRedundancyPayload
*
redundancyPayload
=
packet
->
payload
;
if
(
!
Prrt
ForwardPacketTable_test_is_block_relevant
(
socket
->
forwar
dPacketTable
,
redundancyPayload
->
baseSequenceNumber
,
redundancyPayload
->
n
))
{
if
(
!
Prrt
DeliveredPacketTable_test_is_block_relevant
(
socket
->
delivere
dPacketTable
,
redundancyPayload
->
baseSequenceNumber
,
redundancyPayload
->
n
))
{
PrrtPacket_destroy
(
packet
);
}
else
{
PrrtBlock
*
block
=
PrrtRepairBlockStore_get_block
(
socket
->
repairBlockStore
,
...
...
prrt/proto/socket.c
View file @
c70109a4
...
...
@@ -16,7 +16,7 @@
#include "processes/dataTransmitter.h"
#include "processes/dataReceiver.h"
#include "processes/feedbackReceiver.h"
#include "stores/
forwar
dPacketTable.h"
#include "stores/
delivere
dPacketTable.h"
#include "types/packetTimeout.h"
#include "socket.h"
...
...
@@ -70,7 +70,7 @@ PrrtSocket *PrrtSocket_create(const bool is_sender, prrtTimedelta_t target_delay
if
(
is_sender
)
{
s
->
sendDataQueue
=
Pipe_create
();
}
else
{
s
->
forwardPacketTable
=
PrrtForwar
dPacketTable_create
();
s
->
deliveredPacketTable
=
PrrtDelivere
dPacketTable_create
();
s
->
repairBlockStore
=
PrrtRepairBlockStore_create
();
s
->
receiveDataQueue
=
PrrtReceiveDataQueue_create
();
...
...
@@ -398,9 +398,9 @@ int PrrtSocket_close(PrrtSocket *s) {
s
->
receiveDataQueue
=
NULL
;
}
if
(
s
->
forwar
dPacketTable
!=
NULL
)
{
check
(
Prrt
ForwardPacketTable_destroy
(
s
->
forwar
dPacketTable
),
"Destroy failed."
);
s
->
forwar
dPacketTable
=
NULL
;
if
(
s
->
delivere
dPacketTable
!=
NULL
)
{
check
(
Prrt
DeliveredPacketTable_destroy
(
s
->
delivere
dPacketTable
),
"Destroy failed."
);
s
->
delivere
dPacketTable
=
NULL
;
}
if
(
s
->
packetTimeoutTable
!=
NULL
)
{
...
...
@@ -496,7 +496,7 @@ bool PrrtSocket_cleanup(PrrtSocket *s) {
prrtSequenceNumber_t
lastSequenceNumberBase
=
(
prrtSequenceNumber_t
)
(
last
->
sequenceNumber
-
last
->
index
-
1
);
Prrt
ForwardPacketTable_forward_start
(
s
->
forwar
dPacketTable
,
lastSequenceNumberBase
);
Prrt
DeliveredPacketTable_forward_start
(
s
->
delivere
dPacketTable
,
lastSequenceNumberBase
);
PrrtRepairBlockStore_expire_block_range
(
s
->
repairBlockStore
,
firstSequenceNumberBase
,
lastSequenceNumberBase
);
...
...
@@ -523,8 +523,8 @@ bool PrrtSocket_cleanup(PrrtSocket *s) {
}
List_destroy
(
expired_packets
);
}
if
(
s
->
forwar
dPacketTable
!=
NULL
)
{
prrtSequenceNumber_t
current_start
=
s
->
forwar
dPacketTable
->
start
;
if
(
s
->
delivere
dPacketTable
!=
NULL
)
{
prrtSequenceNumber_t
current_start
=
s
->
delivere
dPacketTable
->
start
;
PrrtRepairBlockStore_expire_block_range
(
s
->
repairBlockStore
,
(
prrtSequenceNumber_t
)
(
current_start
-
SEQNO_SPACE
/
2
),
(
prrtSequenceNumber_t
)
(
current_start
-
1
));
}
...
...
prrt/proto/socket.h
View file @
c70109a4
...
...
@@ -4,13 +4,13 @@
#include <stdatomic.h>
#include "../defines.h"
#include "packet.h"
#include "stores/forwardPacketTable.h"
#include "../util/list.h"
#include "../util/pipe.h"
#include "../util/bptree.h"
#include "channelStateInformation.h"
#include "applicationConstraints.h"
#include "stores/dataPacketStore.h"
#include "stores/deliveredPacketTable.h"
#include "stores/packetTimeoutTable.h"
#include "stores/repairBlockStore.h"
#include "stores/receiveDataQueue.h"
...
...
@@ -45,7 +45,7 @@ typedef struct prrtSocket {
PrrtDataPacketStore
*
dataPacketStore
;
PrrtRepairBlockStore
*
repairBlockStore
;
Prrt
ForwardPacketTable
*
forwar
dPacketTable
;
Prrt
DeliveredPacketTable
*
delivere
dPacketTable
;
PrrtReceiver
*
receiver
;
...
...
prrt/proto/stores/
forwar
dPacketTable.c
→
prrt/proto/stores/
delivere
dPacketTable.c
View file @
c70109a4
...
...
@@ -3,10 +3,10 @@
#include "../../util/dbg.h"
#include "../../defines.h"
#include "../packet.h"
#include "
forwar
dPacketTable.h"
#include "
delivere
dPacketTable.h"
static
bool
is_position_relevant
(
const
Prrt
Forwar
dPacketTable
*
fpt_ptr
,
prrtSequenceNumber_t
seqno
)
static
bool
is_position_relevant
(
const
Prrt
Delivere
dPacketTable
*
fpt_ptr
,
prrtSequenceNumber_t
seqno
)
{
prrtSequenceNumber_t
stop
=
(
prrtSequenceNumber_t
)
(
SEQNO_SPACE
/
2
+
fpt_ptr
->
start
);
if
(
fpt_ptr
->
start
<
stop
&&
!
(
fpt_ptr
->
start
<=
seqno
&&
seqno
<=
stop
))
{
...
...
@@ -18,7 +18,7 @@ static bool is_position_relevant(const PrrtForwardPacketTable *fpt_ptr, prrtSequ
}
}
static
void
move_start
(
Prrt
Forwar
dPacketTable
*
fpt_ptr
)
static
void
move_start
(
Prrt
Delivere
dPacketTable
*
fpt_ptr
)
{
prrtSequenceNumber_t
seqno
=
fpt_ptr
->
start
;
...
...
@@ -35,9 +35,9 @@ static void move_start(PrrtForwardPacketTable *fpt_ptr)
fpt_ptr
->
start
=
seqno
;
}
Prrt
ForwardPacketTable
*
PrrtForwar
dPacketTable_create
()
Prrt
DeliveredPacketTable
*
PrrtDelivere
dPacketTable_create
()
{
Prrt
ForwardPacketTable
*
fpt_prt
=
calloc
(
1
,
sizeof
(
PrrtForwar
dPacketTable
));
Prrt
DeliveredPacketTable
*
fpt_prt
=
calloc
(
1
,
sizeof
(
PrrtDelivere
dPacketTable
));
check_mem
(
fpt_prt
);
fpt_prt
->
start
=
1
;
fpt_prt
->
bitmap
=
Bitmap_create
(
true
,
SEQNO_SPACE
);
...
...
@@ -48,43 +48,43 @@ PrrtForwardPacketTable *PrrtForwardPacketTable_create()
return
NULL
;
}
bool
Prrt
ForwardPacketTable_destroy
(
PrrtForwardPacketTable
*
fpt_pr
t
)
bool
Prrt
DeliveredPacketTable_destroy
(
PrrtDeliveredPacketTable
*
t
)
{
Bitmap_destroy
(
fpt_pr
t
->
bitmap
);
free
(
fpt_pr
t
);
Bitmap_destroy
(
t
->
bitmap
);
free
(
t
);
return
true
;
}
bool
Prrt
ForwardPacketTable_test_set_is_number_relevant
(
PrrtForwardPacketTable
*
fpt_ptr
,
prrtSequenceNumber_t
seqno
)
bool
Prrt
DeliveredPacketTable_test_set_is_number_relevant
(
PrrtDeliveredPacketTable
*
t
,
prrtSequenceNumber_t
seqno
)
{
bool
res
=
is_position_relevant
(
fpt_ptr
,
seqno
);
bool
res
=
is_position_relevant
(
t
,
seqno
);
if
(
res
)
{
Bitmap_set
(
fpt_ptr
->
bitmap
,
seqno
,
false
);
if
(
seqno
==
fpt_ptr
->
start
)
{
move_start
(
fpt_ptr
);
Bitmap_set
(
t
->
bitmap
,
seqno
,
false
);
if
(
seqno
==
t
->
start
)
{
move_start
(
t
);
}
}
return
res
;
}
bool
Prrt
ForwardPacketTable_test_is_block_relevant
(
PrrtForwardPacketTable
*
forwardPacketTable
,
prrtSequenceNumber_t
start
,
prrtSequenceNumber_t
length
)
bool
Prrt
DeliveredPacketTable_test_is_block_relevant
(
PrrtDeliveredPacketTable
*
t
,
prrtSequenceNumber_t
start
,
prrtSequenceNumber_t
length
)
{
// TODO: implement efficiently
bool
res
=
false
;
int
i
;
for
(
i
=
0
;
i
<
length
;
i
++
)
{
res
=
res
||
is_position_relevant
(
forwardPacketTable
,
(
prrtSequenceNumber_t
)
(
start
+
i
));
res
=
res
||
is_position_relevant
(
t
,
(
prrtSequenceNumber_t
)
(
start
+
i
));
}
return
res
;
}
void
Prrt
ForwardPacketTable_forward_start
(
PrrtForwar
dPacketTable
*
fpt_ptr
,
prrtSequenceNumber_t
new_start
)
void
Prrt
DeliveredPacketTable_forward_start
(
PrrtDelivere
dPacketTable
*
fpt_ptr
,
prrtSequenceNumber_t
new_start
)
{
prrtSequenceNumber_t
seqno
=
fpt_ptr
->
start
;
...
...
prrt/proto/stores/deliveredPacketTable.h
0 → 100644
View file @
c70109a4
#ifndef PRRT_DELIVERED_PACKET_TABLE_H
#define PRRT_DELIVERED_PACKET_TABLE_H
#include <stdint.h>
#include <stdbool.h>
#include "../packet.h"
#include "../../util/bitmap.h"
typedef
struct
{
prrtSequenceNumber_t
start
;
Bitmap
*
bitmap
;
}
PrrtDeliveredPacketTable
;
PrrtDeliveredPacketTable
*
PrrtDeliveredPacketTable_create
(
void
);
bool
PrrtDeliveredPacketTable_destroy
(
PrrtDeliveredPacketTable
*
t
);
bool
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
PrrtDeliveredPacketTable
*
t
,
prrtSequenceNumber_t
seqno
);
bool
PrrtDeliveredPacketTable_test_is_block_relevant
(
PrrtDeliveredPacketTable
*
t
,
prrtSequenceNumber_t
start
,
prrtSequenceNumber_t
length
);
void
PrrtDeliveredPacketTable_forward_start
(
PrrtDeliveredPacketTable
*
fpt_ptr
,
prrtSequenceNumber_t
new_start
);
#endif //PRRT_DELIVERED_PACKET_TABLE_H
prrt/proto/stores/forwardPacketTable.h
deleted
100644 → 0
View file @
f181cf6c
#ifndef PRRT_FORWARD_PACKET_TABLE_H
#define PRRT_FORWARD_PACKET_TABLE_H
#include <stdint.h>
#include <stdbool.h>
#include "../packet.h"
#include "../../util/bitmap.h"
typedef
struct
{
prrtSequenceNumber_t
start
;
Bitmap
*
bitmap
;
}
PrrtForwardPacketTable
;
PrrtForwardPacketTable
*
PrrtForwardPacketTable_create
(
void
);
bool
PrrtForwardPacketTable_destroy
(
PrrtForwardPacketTable
*
fpt_prt
);
bool
PrrtForwardPacketTable_test_set_is_number_relevant
(
PrrtForwardPacketTable
*
fpt_ptr
,
prrtSequenceNumber_t
seqno
);
bool
PrrtForwardPacketTable_test_is_block_relevant
(
PrrtForwardPacketTable
*
forwardPacketTable
,
prrtSequenceNumber_t
start
,
prrtSequenceNumber_t
length
);
void
PrrtForwardPacketTable_forward_start
(
PrrtForwardPacketTable
*
fpt_ptr
,
prrtSequenceNumber_t
new_start
);
#endif //PRRT_FORWARD_PACKET_TABLE_H
prrt/prrt.pyx
View file @
c70109a4
...
...
@@ -9,7 +9,7 @@ cdef extern from "proto/applicationConstraints.c":
cdef
extern
from
"proto/stores/dataPacketStore.c"
:
pass
cdef
extern
from
"proto/stores/
forwar
dPacketTable.c"
:
cdef
extern
from
"proto/stores/
delivere
dPacketTable.c"
:
pass
cdef
extern
from
"proto/stores/lossGatherer.c"
:
...
...
tests/CMakeLists.txt
View file @
c70109a4
add_subdirectory
(
lib/gtest-1.8.0
)
include_directories
(
SYSTEM
${
gtest_SOURCE_DIR
}
/include
${
gtest_SOURCE_DIR
}
)
add_executable
(
prrtTests bitmap_tests.cpp lossGatherer_tests.cpp
forwar
d_packet_table_tests.cpp bptree_tests.cpp PrrtBlock_tests.cpp
)
add_executable
(
prrtTests bitmap_tests.cpp lossGatherer_tests.cpp
delivere
d_packet_table_tests.cpp bptree_tests.cpp PrrtBlock_tests.cpp
)
target_link_libraries
(
prrtTests LINK_PUBLIC gtest PRRT UTIL gtest_main
)
\ No newline at end of file
tests/delivered_packet_table_tests.cpp
0 → 100644
View file @
c70109a4
#include <gtest/gtest.h>
#include <cmath>
#include <prrt/proto/packet.h>
extern
"C"
{
#include "prrt/proto/stores/deliveredPacketTable.h"
}
class
DeliveredPacketTableTest
:
public
::
testing
::
Test
{
protected:
virtual
void
SetUp
()
{
deliveredPacketTable
=
PrrtDeliveredPacketTable_create
();
}
PrrtDeliveredPacketTable
*
deliveredPacketTable
;
};
TEST_F
(
DeliveredPacketTableTest
,
CreateDestroy
)
{
ASSERT_EQ
(
deliveredPacketTable
->
start
,
1
);
free
(
deliveredPacketTable
);
}
TEST_F
(
DeliveredPacketTableTest
,
SimpleTestAndSet
)
{
for
(
int
i
=
1
;
i
<
10
;
++
i
)
{
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
i
));
ASSERT_FALSE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
i
));
}
}
TEST_F
(
DeliveredPacketTableTest
,
SimpleMoveStart
)
{
ASSERT_EQ
(
deliveredPacketTable
->
start
,
1
);
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
1
));
ASSERT_EQ
(
deliveredPacketTable
->
start
,
2
);
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
5
));
ASSERT_EQ
(
deliveredPacketTable
->
start
,
2
);
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
4
));
ASSERT_EQ
(
deliveredPacketTable
->
start
,
2
);
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
3
));
ASSERT_EQ
(
deliveredPacketTable
->
start
,
2
);
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
2
));
ASSERT_EQ
(
deliveredPacketTable
->
start
,
6
);
for
(
int
i
=
1
;
i
<
6
;
++
i
)
{
ASSERT_FALSE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
i
));
}
}
TEST_F
(
DeliveredPacketTableTest
,
ProperStop
)
{
prrtSequenceNumber_t
seqno
=
(
prrtSequenceNumber_t
)
(
pow
(
2
,
15
)
+
2
);
ASSERT_FALSE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
seqno
));
for
(
int
i
=
1
;
i
<
seqno
/
2
;
++
i
)
{
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
i
));
}
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
seqno
));
ASSERT_FALSE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
5
));
}
TEST_F
(
DeliveredPacketTableTest
,
Sequence
)
{
ASSERT_EQ
(
deliveredPacketTable
->
start
,
1
);
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
4
));
ASSERT_EQ
(
deliveredPacketTable
->
start
,
1
);
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
7
));
ASSERT_EQ
(
deliveredPacketTable
->
start
,
1
);
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
1
));
ASSERT_EQ
(
deliveredPacketTable
->
start
,
2
);
ASSERT_FALSE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
4
));
ASSERT_EQ
(
deliveredPacketTable
->
start
,
2
);
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
8
));
ASSERT_EQ
(
deliveredPacketTable
->
start
,
2
);
}
TEST_F
(
DeliveredPacketTableTest
,
ResetToZero
)
{
for
(
int
i
=
1
;
i
<
pow
(
2
,
16
)
+
5
;
++
i
)
{
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
i
));
ASSERT_FALSE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
i
));
}
}
TEST_F
(
DeliveredPacketTableTest
,
CheckBlock
)
{
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_is_block_relevant
(
deliveredPacketTable
,
1
,
6
));
for
(
int
i
=
1
;
i
<
7
;
++
i
)
{
ASSERT_TRUE
(
PrrtDeliveredPacketTable_test_set_is_number_relevant
(
deliveredPacketTable
,
i
));
}
ASSERT_FALSE
(
PrrtDeliveredPacketTable_test_is_block_relevant
(
deliveredPacketTable
,
1
,
6
));
}
tests/forward_packet_table_tests.cpp
deleted
100644 → 0
View file @
f181cf6c
#include <gtest/gtest.h>
#include <cmath>
#include <prrt/proto/packet.h>
extern
"C"
{
#include "prrt/proto/stores/forwardPacketTable.h"
}
class
ForwardPacketTableTest
:
public
::
testing
::
Test
{
protected:
virtual
void
SetUp
()
{
forwardPacketTable
=
PrrtForwardPacketTable_create
();
}
PrrtForwardPacketTable
*
forwardPacketTable
;
};
TEST_F
(
ForwardPacketTableTest
,
CreateDestroy
)
{
ASSERT_EQ
(
forwardPacketTable
->
start
,
1
);
free
(
forwardPacketTable
);
}
TEST_F
(
ForwardPacketTableTest
,
SimpleTestAndSet
)
{
for
(
int
i
=
1
;
i
<
10
;
++
i
)
{
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
i
));
ASSERT_FALSE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
i
));
}
}
TEST_F
(
ForwardPacketTableTest
,
SimpleMoveStart
)
{
ASSERT_EQ
(
forwardPacketTable
->
start
,
1
);
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
1
));
ASSERT_EQ
(
forwardPacketTable
->
start
,
2
);
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
5
));
ASSERT_EQ
(
forwardPacketTable
->
start
,
2
);
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
4
));
ASSERT_EQ
(
forwardPacketTable
->
start
,
2
);
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
3
));
ASSERT_EQ
(
forwardPacketTable
->
start
,
2
);
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
2
));
ASSERT_EQ
(
forwardPacketTable
->
start
,
6
);
for
(
int
i
=
1
;
i
<
6
;
++
i
)
{
ASSERT_FALSE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
i
));
}
}
TEST_F
(
ForwardPacketTableTest
,
ProperStop
)
{
prrtSequenceNumber_t
seqno
=
(
prrtSequenceNumber_t
)
(
pow
(
2
,
15
)
+
2
);
ASSERT_FALSE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
seqno
));
for
(
int
i
=
1
;
i
<
seqno
/
2
;
++
i
)
{
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
i
));
}
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
seqno
));
ASSERT_FALSE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
5
));
}
TEST_F
(
ForwardPacketTableTest
,
Sequence
)
{
ASSERT_EQ
(
forwardPacketTable
->
start
,
1
);
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
4
));
ASSERT_EQ
(
forwardPacketTable
->
start
,
1
);
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
7
));
ASSERT_EQ
(
forwardPacketTable
->
start
,
1
);
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
1
));
ASSERT_EQ
(
forwardPacketTable
->
start
,
2
);
ASSERT_FALSE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
4
));
ASSERT_EQ
(
forwardPacketTable
->
start
,
2
);
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
8
));
ASSERT_EQ
(
forwardPacketTable
->
start
,
2
);
}
TEST_F
(
ForwardPacketTableTest
,
ResetToZero
)
{
for
(
int
i
=
1
;
i
<
pow
(
2
,
16
)
+
5
;
++
i
)
{
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
i
));
ASSERT_FALSE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
i
));
}
}
TEST_F
(
ForwardPacketTableTest
,
CheckBlock
)
{
ASSERT_TRUE
(
PrrtForwardPacketTable_test_is_block_relevant
(
forwardPacketTable
,
1
,
6
));
for
(
int
i
=
1
;
i
<
7
;
++
i
)
{
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
i
));
}
ASSERT_FALSE
(
PrrtForwardPacketTable_test_is_block_relevant
(
forwardPacketTable
,
1
,
6
));
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment