Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
LARN
PRRT
Commits
758d023c
Commit
758d023c
authored
Feb 19, 2016
by
Andreas Schmidt
Browse files
Added tests. ForwardPacketTable seems to work.
parent
af625951
Changes
4
Hide whitespace changes
Inline
Side-by-side
prrt/packet.h
View file @
758d023c
...
...
@@ -20,7 +20,7 @@ typedef struct {
uint32_t
payload_len
;
}
PrrtPacket
;
#define SEQNO_SPACE 6
6
536 // 2**16 as seqno is uint16_t
#define SEQNO_SPACE 6
5
536 // 2**16 as seqno is uint16_t
#define PRRT_PACKET_DATA_HEADER_SIZE 12
typedef
struct
{
...
...
prrt/stores/forward_packet_table.c
View file @
758d023c
...
...
@@ -29,24 +29,19 @@ int PrrtForwardPacketTable_destroy(PrrtForwardPacketTable* fpt_prt) {
int
PrrtForwardPacketTable_test_set_is_number_relevant
(
PrrtForwardPacketTable
*
fpt_ptr
,
uint16_t
seqno
)
{
uint16_t
stop
=
(
uint16_t
)
(
SEQNO_SPACE
/
2
+
fpt_ptr
->
start
);
if
(
fpt_ptr
->
start
<
stop
&&
!
(
fpt_ptr
->
start
<=
seqno
&&
seqno
<=
stop
))
{
return
FALSE
;
}
else
if
(
!
(
seqno
<
stop
))
{
return
FALSE
;
}
else
{
printf
(
"SEQ: %d, START:%d
\n
"
,
seqno
,
fpt_ptr
->
start
);
uint16_t
which_byte
=
(
uint16_t
)
(
seqno
/
32
);
uint16_t
which_bit
=
(
uint16_t
)
(
seqno
%
32
);
int
res
=
((
fpt_ptr
->
data
[
which_byte
]
>>
which_bit
)
&
0x01
)
==
0
;
fpt_ptr
->
data
[
which_byte
]
|=
1
<<
which_bit
;
printf
(
"D: %d
\n
"
,
fpt_ptr
->
data
[
which_byte
]);
if
(
seqno
==
fpt_ptr
->
start
)
{
move_start
(
fpt_ptr
);
}
printf
(
"START:%d
\n
"
,
fpt_ptr
->
start
);
return
res
;
}
...
...
prrt/stores/forward_packet_table.h
View file @
758d023c
...
...
@@ -9,7 +9,6 @@
#define FORWARD_PACKET_TABLE_LENGTH 2048 // sequence number space is 2**16 and we have 32 bit so: 2048
#define MAX_FORWARD_ENTRY_VALUE 4294967296 // 2**32
typedef
struct
{
uint32_t
data
[
FORWARD_PACKET_TABLE_LENGTH
];
...
...
tests/forward_packet_table_tests.cpp
View file @
758d023c
#include
<gtest/gtest.h>
#include
<cmath>
extern
"C"
{
#include
"prrt/stores/forward_packet_table.h"
...
...
@@ -13,20 +14,44 @@ protected:
PrrtForwardPacketTable
*
forwardPacketTable
;
};
TEST_F
(
ForwardPacketTableTest
,
Destroy
)
{
PrrtForwardPacketTable
*
forwardPacketTable
=
(
PrrtForwardPacketTable
*
)
malloc
(
sizeof
(
PrrtForwardPacketTable
));
PrrtForwardPacketTable_create
(
forwardPacketTable
);
PrrtForwardPacketTable_destroy
(
forwardPacketTable
);
TEST_F
(
ForwardPacketTableTest
,
CreateDestroy
)
{
ASSERT_EQ
(
forwardPacketTable
->
start
,
1
);
PrrtForwardPacketTable_destroy
(
forwardPacketTable
);
}
TEST_F
(
ForwardPacketTableTest
,
SimpleTestAndSet
)
{
int
seqno
=
1
;
ASSERT_TRUE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
seqno
));
ASSERT_FALSE
(
PrrtForwardPacketTable_test_set_is_number_relevant
(
forwardPacketTable
,
seqno
));
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
)
{
uint16_t
seqno
=
(
uint16_t
)
(
pow
(
2
,
15
)
+
1
);
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
));
}
\ No newline at end of file
Write
Preview
Supports
Markdown
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