CPPUNIT_ASSERT(!undefinedOrUndefinedC);
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
#include <cppunit/TestResultCollector.h>
#include <cppunit/TestRunner.h>
+/// implements test program's main() function while enabling customization
+class TestProgram
+{
+public:
+ virtual ~TestProgram() = default;
+
+ /// Runs before all tests.
+ /// Does nothing by default.
+ virtual void startup() {}
+
+ /// Implements main(), combining all the steps.
+ /// Must be called from main().
+ /// \returns desired main() result.
+ int run(int argc, char *argv[]);
+
+private:
+ bool runTests();
+};
+
int
-main(int, char *[])
+TestProgram::run(int, char *[])
{
#if ENABLE_DEBUG_SECTION
Debug::Levels[ENABLE_DEBUG_SECTION] = 99;
#endif
+ startup();
+ const auto result = runTests();
+ return result ? 0 : 1;
+}
+
+/// runs all tests registered with CPPUNIT_TEST_SUITE_REGISTRATION() calls
+/// \returns whether all tests were successful
+bool
+TestProgram::runTests()
+{
// Create the event manager and test controller
CPPUNIT_NS::TestResult controller;
CPPUNIT_NS::CompilerOutputter outputter( &result, std::cerr );
outputter.write();
- return result.wasSuccessful() ? 0 : 1;
+ return result.wasSuccessful();
}
#endif /* SQUID_INCLUDE_UNITTESTMAIN_H */
xfree(unescaped_str);
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
CPPUNIT_TEST(testParseLine);
CPPUNIT_TEST_SUITE_END();
-public:
- void setUp() override;
-
protected:
void testDefaults();
void testParseLine();
CPPUNIT_ASSERT_EQUAL(false,anACL.valid());
}
+/// customizes our test setup
+class MyTestProgram: public TestProgram
+{
+public:
+ /* TestProgram API */
+ void startup() override;
+};
+
void
-TestACLMaxUserIP::setUp()
+MyTestProgram::startup()
{
- CPPUNIT_NS::TestFixture::setUp();
Acl::RegisterMaker("max_user_ip", [](Acl::TypeName name)->ACL* { return new ACLMaxUserIP(name); });
}
xfree(line);
}
+int
+main(int argc, char *argv[])
+{
+ return MyTestProgram().run(argc, argv);
+}
+
#endif /* USE_AUTH */
}
#endif /* HAVE_AUTH_MODULE_NEGOTIATE */
+
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
#endif /* USE_AUTH */
CPPUNIT_ASSERT_EQUAL(0, 0);
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
CPPUNIT_TEST(testParseUrl);
CPPUNIT_TEST_SUITE_END();
-public:
- void setUp() override;
-
protected:
void testCreate();
void testRegister();
void ParseUrl(const AnyP::Uri &u) { CacheManager::ParseUrl(u); }
};
-/* init memory pools */
+/// customizes our test setup
+class MyTestProgram: public TestProgram
+{
+public:
+ /* TestProgram API */
+ void startup() override;
+};
-void TestCacheManager::setUp()
+void
+MyTestProgram::startup()
{
Mem::Init();
AnyP::UriScheme::Init();
}
}
+int
+main(int argc, char *argv[])
+{
+ return MyTestProgram().run(argc, argv);
+}
+
CPPUNIT_ASSERT_EQUAL(CharacterSet::HEXDIG, sample - CharacterSet(nullptr, "qz"));
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
CPPUNIT_TEST( testRangeLoopTraversal );
CPPUNIT_TEST_SUITE_END();
-public:
- void setUp() override;
-
protected:
using Map = ClpMap<std::string, int>;
CPPUNIT_ASSERT_EQUAL(value, *m.get(key));
}
-void
-TestClpMap::setUp()
-{
- squid_curtime = time(nullptr);
-}
-
void
TestClpMap::testPutGetDelete()
{
CPPUNIT_ASSERT_EQUAL(expectedEntryCount, iterations);
}
+/// customizes our test setup
+class MyTestProgram: public TestProgram
+{
+public:
+ /* TestProgram API */
+ void startup() override { squid_curtime = time(nullptr); }
+};
+
+int
+main(int argc, char *argv[])
+{
+ return MyTestProgram().run(argc, argv);
+}
+
CPPUNIT_TEST(testParseQuoted);
CPPUNIT_TEST_SUITE_END();
-public:
- void setUp() override;
-
protected:
bool doParseQuotedTest(const char *, const char *);
void testParseQuoted();
int shutting_down = 0;
-void TestConfigParser::setUp()
-{
-}
-
bool TestConfigParser::doParseQuotedTest(const char *s, const char *expectInterp)
{
char cfgline[2048];
CPPUNIT_ASSERT_EQUAL(true, doParseQuotedTest("\"\\\\\"", "\\"));
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
CPPUNIT_TEST(testFindDefault);
CPPUNIT_TEST_SUITE_END();
-public:
- void setUp() override;
-
protected:
void testFindDefault();
};
CPPUNIT_TEST_SUITE_REGISTRATION( TestDiskIO );
+/// customizes our test setup
+class MyTestProgram: public TestProgram
+{
+public:
+ /* TestProgram API */
+ void startup() override;
+};
+
void
-TestDiskIO::setUp()
+MyTestProgram::startup()
{
Mem::Init();
DiskIOModule::SetupAllModules();
#endif
}
+int
+main(int argc, char *argv[])
+{
+ return MyTestProgram().run(argc, argv);
+}
+
CPPUNIT_ASSERT_EQUAL(5,j);
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
CPPUNIT_TEST(testCancel);
CPPUNIT_TEST_SUITE_END();
-public:
- void setUp() override;
-
protected:
void testCreate();
void testDump();
CPPUNIT_TEST_SUITE_REGISTRATION( TestEvent );
-/* init legacy static-initialized modules */
-
-void
-TestEvent::setUp()
-{
- Mem::Init();
-}
-
/*
* Test creating a Scheduler
*/
CPPUNIT_ASSERT(nullptr != scheduler);
}
+/// customizes our test setup
+class MyTestProgram: public TestProgram
+{
+public:
+ /* TestProgram API */
+ void startup() override { Mem::Init(); }
+};
+
+int
+main(int argc, char *argv[])
+{
+ return MyTestProgram().run(argc, argv);
+}
+
CPPUNIT_ASSERT_EQUAL(0, second_engine.lasttimeout);
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
CPPUNIT_TEST(testSanityCheckFirstLine);
CPPUNIT_TEST_SUITE_END();
-public:
- void setUp() override;
-
protected:
void testSanityCheckFirstLine();
};
/* end */
+/// customizes our test setup
+class MyTestProgram: public TestProgram
+{
+public:
+ /* TestProgram API */
+ void startup() override;
+};
+
void
-TestHttpReply::setUp()
+MyTestProgram::startup()
{
Mem::Init();
httpHeaderInitModule();
error = Http::scNone;
}
+int
+main(int argc, char *argv[])
+{
+ return MyTestProgram().run(argc, argv);
+}
+
CPPUNIT_TEST(testSanityCheckStartLine);
CPPUNIT_TEST_SUITE_END();
-public:
- void setUp() override;
-
protected:
void testCreateFromUrl();
void testIPv6HostColonBug();
bool doSanityCheckStartLine(const char *b, const size_t h, Http::StatusCode *e) { return sanityCheckStartLine(b,h,e); };
};
-/* init memory pools */
+/// customizes our test setup
+class MyTestProgram: public TestProgram
+{
+public:
+ /* TestProgram API */
+ void startup() override;
+};
void
-TestHttpRequest::setUp()
+MyTestProgram::startup()
{
Mem::Init();
AnyP::UriScheme::Init();
error = Http::scNone;
}
+int
+main(int argc, char *argv[])
+{
+ return MyTestProgram().run(argc, argv);
+}
+
CPPUNIT_ASSERT_EQUAL(String("get"), String(buffer2.str().c_str()));
}
+// This test uses main() from ./testHttpRequest.cc.
+
#endif
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
CPPUNIT_ASSERT_EQUAL(lt.lookup(SBuf("eleventy")), ENUM_INVALID);
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
CPPUNIT_ASSERT_EQUAL(expires, result);
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
CPPUNIT_ASSERT_EQUAL(otherthing->aValue, 0);
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
}
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
CPPUNIT_TEST(testGetStream);
CPPUNIT_TEST_SUITE_END();
-public:
- void setUp() override;
-
protected:
void testGetStream();
};
CPPUNIT_TEST_SUITE_REGISTRATION( TestPackableStream );
-/* init memory pools */
-
-void TestPackableStream::setUp()
-{
- Mem::Init();
-}
-
// TODO: test streaming to a MemBuf as well.
void
Store::FreeMemory();
}
+// This test uses main() from ./testStore.cc.
+
CPPUNIT_ASSERT(msg == nullptr);
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
}
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
CPPUNIT_ASSERT_EQUAL(1, _ToRefCount::Instances);
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
};
CPPUNIT_TEST_SUITE_REGISTRATION(TestRock);
-extern REMOVALPOLICYCREATE createRemovalPolicy_lru;
-
-static char cwd[MAXPATHLEN];
-
static void
addSwapDir(TestRock::SwapDirPointer aStore)
{
if (0 > system ("rm -rf " TESTDIR))
throw std::runtime_error("Failed to clean test work directory");
- Config.memShared.defaultTo(false);
- Config.shmLocking.defaultTo(false);
-
- // use current directory for shared segments (on path-based OSes)
- Ipc::Mem::Segment::BasePath = getcwd(cwd,MAXPATHLEN);
- if (Ipc::Mem::Segment::BasePath == nullptr)
- Ipc::Mem::Segment::BasePath = ".";
-
Store::Init();
store = new Rock::SwapDir();
addSwapDir(store);
- commonInit();
-
char *path=xstrdup(TESTDIR);
char *config_line=xstrdup("10 max-size=16384");
throw std::runtime_error("Failed to clean test work directory");
}
-void
-TestRock::commonInit()
-{
- static bool inited = false;
-
- if (inited)
- return;
-
- Config.Store.avgObjectSize = 1024;
- Config.Store.objectsPerBucket = 20;
- Config.Store.maxObjectSize = 2048;
-
- Config.store_dir_select_algorithm = xstrdup("round-robin");
-
- Config.replPolicy = new RemovalPolicySettings;
- Config.replPolicy->type = xstrdup("lru");
- Config.replPolicy->args = nullptr;
-
- /* garh garh */
- storeReplAdd("lru", createRemovalPolicy_lru);
-
- visible_appname_string = xstrdup(APP_FULLNAME);
-
- Mem::Init();
-
- fde::Init();
-
- comm_init();
-
- httpHeaderInitModule(); /* must go before any header processing (e.g. the one in errorInitialize) */
-
- mem_policy = createRemovalPolicy(Config.replPolicy);
-
- inited = true;
-}
-
void
TestRock::storeInit()
{
}
}
+/// customizes our test setup
+class MyTestProgram: public TestProgram
+{
+public:
+ /* TestProgram API */
+ void startup() override;
+};
+
+void
+MyTestProgram::startup()
+{
+ Config.memShared.defaultTo(false);
+ Config.shmLocking.defaultTo(false);
+
+ // use current directory for shared segments (on path-based OSes)
+ static char cwd[MAXPATHLEN];
+ Ipc::Mem::Segment::BasePath = getcwd(cwd, MAXPATHLEN);
+ if (!Ipc::Mem::Segment::BasePath)
+ Ipc::Mem::Segment::BasePath = ".";
+
+ Config.Store.avgObjectSize = 1024;
+ Config.Store.objectsPerBucket = 20;
+ Config.Store.maxObjectSize = 2048;
+
+ Config.store_dir_select_algorithm = xstrdup("round-robin");
+
+ Config.replPolicy = new RemovalPolicySettings;
+ Config.replPolicy->type = xstrdup("lru");
+ Config.replPolicy->args = nullptr;
+
+ /* garh garh */
+ extern REMOVALPOLICYCREATE createRemovalPolicy_lru;
+ storeReplAdd("lru", createRemovalPolicy_lru);
+
+ visible_appname_string = xstrdup(APP_FULLNAME);
+
+ Mem::Init();
+ fde::Init();
+ comm_init();
+ httpHeaderInitModule(); /* must go before any header processing (e.g. the one in errorInitialize) */
+
+ mem_policy = createRemovalPolicy(Config.replPolicy);
+}
+
+int
+main(int argc, char *argv[])
+{
+ return MyTestProgram().run(argc, argv);
+}
+
}
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
CPPUNIT_ASSERT(Store::HonoredSwapMetaType(Store::RawSwapMetaTypeTop()));
}
+/// customizes our test setup
+class MyTestProgram: public TestProgram
+{
+public:
+ /* TestProgram API */
+ void startup() override { Mem::Init(); }
+};
+
+int
+main(int argc, char *argv[])
+{
+ return MyTestProgram().run(argc, argv);
+}
+
Store::FreeMemory();
}
+// This test uses main() from ./testStore.cc.
+
Store::FreeMemory();
}
+// This test uses main() from ./testStore.cc.
+
CPPUNIT_TEST_SUITE_END();
-public:
- void setUp() override;
-
protected:
void testCmpDefault();
void testCmpEmptyString();
};
CPPUNIT_TEST_SUITE_REGISTRATION(TestString);
-/* init memory pools */
-
-void
-TestString::setUp()
-{
- Mem::Init();
-}
-
void
TestString::testCmpDefault()
{
CPPUNIT_ASSERT(check == ref);
}
+/// customizes our test setup
+class MyTestProgram: public TestProgram
+{
+public:
+ /* TestProgram API */
+ void startup() override { Mem::Init(); }
+};
+
+int
+main(int argc, char *argv[])
+{
+ return MyTestProgram().run(argc, argv);
+}
+
}
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
CPPUNIT_TEST(testDefaultConstructor);
CPPUNIT_TEST_SUITE_END();
-public:
- void setUp() override;
-
protected:
void testConstructScheme();
void testDefaultConstructor();
};
CPPUNIT_TEST_SUITE_REGISTRATION(TestUri);
-/* init memory pools */
+/// customizes our test setup
+class MyTestProgram: public TestProgram
+{
+public:
+ /* TestProgram API */
+ void startup() override;
+};
void
-TestUri::setUp()
+MyTestProgram::startup()
{
Mem::Init();
AnyP::UriScheme::Init();
delete urlPointer;
}
+int
+main(int argc, char *argv[])
+{
+ return MyTestProgram().run(argc, argv);
+}
+
throw std::runtime_error("Failed to clean test work directory");
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+
CPPUNIT_TEST(testStream);
CPPUNIT_TEST_SUITE_END();
-public:
- void setUp() override;
-
protected:
void testAssignFromprotocol_t();
void testCastToprotocol_t();
CPPUNIT_ASSERT_EQUAL(http_str, from_buf);
}
-void
-TestUriScheme::setUp()
-{
- Mem::Init();
- AnyP::UriScheme::Init();
-}
+// This test uses main() from ./testURL.cc.
}
}
+int
+main(int argc, char *argv[])
+{
+ return TestProgram().run(argc, argv);
+}
+