SBufFindTest.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9#ifndef SQUID_SRC_TEST_SBUFFINDTEST_H
10#define SQUID_SRC_TEST_SBUFFINDTEST_H
11
12#include "sbuf/SBuf.h"
13
14#include <set>
15#include <string>
16
20{
21public:
23
24 void run();
25
26 /* test configuration parameters; can be optionally set before run() */
33
37 } Placement; // placeLast marker must terminate
38protected:
39
40 static SBuf RandomSBuf(const int length);
42 void placeNeedle(const SBuf &cleanHay);
43
46 void testFind();
48 void testRFind();
54
55 std::string posKey() const;
56 std::string placementKey() const;
57
58 bool resultsMatch() const;
59 void checkResults(const char *method);
60 void handleFailure(const char *method);
61
62private:
63 /* test case parameters */
68 std::string theStringHay;
69 std::string theStringNeedle;
70
72 std::string::size_type theBareNeedlePos;
73
74 /* test case results */
75 std::string::size_type theFindString;
77 std::string theReportFunc;
78 std::string theReportNeedle;
79 std::string theReportPos;
81
82 /* test progress indicators */
86 std::set<std::string> failedCats;
87};
88
90
91#endif
92
SBufFindTest::Placement Placement
Definition: SBufFindTest.h:89
int caseLimit
approximate caseCount limit
Definition: SBufFindTest.h:27
void testRFindDefs()
void testFindChar()
void handleFailure(const char *method)
std::string theStringHay
theHay converted to std::string
Definition: SBufFindTest.h:68
Placement
Supported algorithms for placing needle in the hay.
Definition: SBufFindTest.h:35
SBuf::size_type thePos
search position limit
Definition: SBufFindTest.h:66
std::string theReportFunc
Definition: SBufFindTest.h:77
int caseCount
cases executed so far
Definition: SBufFindTest.h:83
void checkResults(const char *method)
void testRFind()
std::string theReportPos
Definition: SBufFindTest.h:79
Placement thePlacement
where in the hay the needle is placed
Definition: SBufFindTest.h:67
std::string placementKey() const
void testFindDefs()
std::string::size_type theBareNeedlePos
needle pos w/o thePos restrictions; used for case categorization
Definition: SBufFindTest.h:72
void testFind()
char theReportQuote
Definition: SBufFindTest.h:80
SBuf theSBufNeedle
the string to be found
Definition: SBufFindTest.h:65
void placeNeedle(const SBuf &cleanHay)
bool hushSimilar
whether to report only one failed test case per "category"
Definition: SBufFindTest.h:30
int errorCount
total number of failed test cases so far
Definition: SBufFindTest.h:84
std::string theReportNeedle
Definition: SBufFindTest.h:78
void testRFindCharDefs()
void testFindFirstOf()
void nextLen(SBuf::size_type &len, const SBuf::size_type max)
SBuf::size_type theFindSBuf
Definition: SBufFindTest.h:76
void testAllMethods()
std::string theStringNeedle
theNeedle converted to std::string
Definition: SBufFindTest.h:69
bool resultsMatch() const
std::string posKey() const
std::string::size_type theFindString
Definition: SBufFindTest.h:75
int reportCount
total number of test cases reported so far
Definition: SBufFindTest.h:85
void run()
generates and executes cases using configuration params
SBuf theSBufHay
the string to be searched
Definition: SBufFindTest.h:64
void testRFindChar()
std::set< std::string > failedCats
reported failed categories
Definition: SBufFindTest.h:86
SBuf::size_type maxHayLength
approximate maximum generated hay string length
Definition: SBufFindTest.h:32
void testFindCharDefs()
static SBuf RandomSBuf(const int length)
Definition: SBuf.h:94
MemBlob::size_type size_type
Definition: SBuf.h:96
A const & max(A const &lhs, A const &rhs)

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors