abort() so test can be analyzed.
void StreamTcpCreateTestPacket(uint8_t *, uint8_t, uint8_t, uint8_t);
void StreamTcpReassemblePseudoPacketCreate(TcpStream *, Packet *, PacketQueue *);
+void StreamTcpReassembleInitMemuse(void)
+{
+ SC_ATOMIC_INIT(ra_memuse);
+}
+
/**
* \brief Function to Increment the memory usage counter for the TCP reassembly
* segments
int StreamTcpReassembleInit(char quiet)
{
/* init the memcap/use tracker */
- SC_ATOMIC_INIT(ra_memuse);
+ StreamTcpReassembleInitMemuse();
if (StreamTcpReassemblyConfig(quiet) < 0)
return -1;
#define OS_POLICY_DEFAULT OS_POLICY_BSD
+void StreamTcpReassembleInitMemuse(void);
int StreamTcpReassembleHandleSegment(ThreadVars *, TcpReassemblyThreadCtx *, TcpSession *, TcpStream *, Packet *, PacketQueue *);
int StreamTcpReassembleInit(char);
void StreamTcpReassembleFree(char);
void StreamTcpReassembleIncrMemuse(uint64_t size);
void StreamTcpReassembleDecrMemuse(uint64_t size);
int StreamTcpReassembleCheckMemcap(uint32_t size);
+uint64_t StreamTcpReassembleMemuseGlobalCounter(void);
void StreamTcpDisableAppLayer(Flow *f);
int StreamTcpAppLayerIsDisabled(Flow *f);
/* stream engine running in "inline" mode. */
int stream_inline = 0;
+void StreamTcpInitMemuse(void)
+{
+ SC_ATOMIC_INIT(st_memuse);
+}
+
void StreamTcpIncrMemuse(uint64_t size)
{
(void) SC_ATOMIC_ADD(st_memuse, size);
SCLogConfig("stream.reassembly.raw: %s", enable_raw ? "enabled" : "disabled");
/* init the memcap/use tracking */
- SC_ATOMIC_INIT(st_memuse);
+ StreamTcpInitMemuse();
StatsRegisterGlobalCounter("tcp.memuse", StreamTcpMemuseCounter);
StreamTcpReassembleInit(quiet);
void StreamTcpSessionPktFree (Packet *);
+void StreamTcpInitMemuse(void);
void StreamTcpIncrMemuse(uint64_t);
void StreamTcpDecrMemuse(uint64_t);
int StreamTcpCheckMemcap(uint64_t);
+uint64_t StreamTcpMemuseCounter(void);
uint64_t StreamTcpReassembleMemuseGlobalCounter(void);
Packet *StreamTcpPseudoSetup(Packet *, uint8_t *, uint32_t);
#include "util-time.h"
#include "conf.h"
+#include "stream-tcp.h"
+#include "stream-tcp-reassemble.h"
+
#ifdef UNITTESTS
static pcre *parse_regex;
int ret = 0, rcomp = 0;
int ov[MAX_SUBSTRINGS];
+ StreamTcpInitMemuse();
+ StreamTcpReassembleInitMemuse();
+
rcomp = UtRegex(regex_arg);
if(rcomp == 1){
TimeSetToCurrentTime();
ret = ut->TestFn();
+
+ if (StreamTcpMemuseCounter() != 0) {
+ printf("STREAM MEMORY IN USE %"PRIu64"\n", StreamTcpMemuseCounter());
+ ret = 0;
+ }
+
+ if (StreamTcpReassembleMemuseGlobalCounter() != 0) {
+ printf("STREAM REASSEMBLY MEMORY IN USE %"PRIu64"\n", StreamTcpReassembleMemuseGlobalCounter());
+ ret = 0;
+ }
+
printf("%s\n", ret ? "pass" : "FAILED");
+
if (!ret) {
if (unittests_fatal == 1) {
fprintf(stderr, "ERROR: unittest failed.\n");