Ocean
Loading...
Searching...
No Matches
TestBase.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 */
7
8#ifndef META_OCEAN_TEST_TESTBASE_TESTBASE_H
9#define META_OCEAN_TEST_TESTBASE_TESTBASE_H
10
11#include "ocean/test/Test.h"
12
13#include "ocean/base/Worker.h"
14
15namespace Ocean
16{
17
18namespace Test
19{
20
21namespace TestBase
22{
23
24/**
25 * @ingroup test
26 * @defgroup testbase Ocean Test Base Library
27 * @{
28 * The Ocean Test Base Library provides several function to test the performance and validation of the basic ocean functionalities.
29 * The library is platform independent.
30 * @}
31 */
32
33/**
34 * @namespace Ocean::Test::TestBase Namespace of the Base Test library.<p>
35 * The Namespace Ocean::Test::TestBase is used in the entire Ocean Base Test Library.
36 */
37
38// Defines OCEAN_TEST_BASE_EXPORT for dll export and import.
39#if defined(_WINDOWS) && defined(OCEAN_RUNTIME_SHARED)
40 #ifdef USE_OCEAN_TEST_BASE_EXPORT
41 #define OCEAN_TEST_BASE_EXPORT __declspec(dllexport)
42 #else
43 #define OCEAN_TEST_BASE_EXPORT __declspec(dllimport)
44 #endif
45#else
46 #define OCEAN_TEST_BASE_EXPORT
47#endif
48
49/**
50 * Tests the entire base library.
51 * This function is intended for console applications.
52 * @param testDuration Number of seconds for each test, with range (0, infinity)
53 * @param worker The worker object to distribute some computation on as many CPU cores as defined in the worker object.
54 * @param testFunctions Optional name of the functions to be tested
55 * @return True, if the entire test succeeded
56 * @ingroup testbase
57 */
58OCEAN_TEST_BASE_EXPORT bool testBase(const double testDuration, Worker& worker, const std::string& testFunctions = std::string());
59
60/**
61 * Tests the entire base library.
62 * This function returns directly as the actual test is invoked in an own thread.<br>
63 * Use this function in intendet for non-console applications like e.g., mobile devices.
64 * @param testDuration Number of seconds for each test, with range (0, infinity)
65 * @param testFunctions Optional name of the functions to be tested
66 * @ingroup testbase
67 */
68OCEAN_TEST_BASE_EXPORT void testBaseAsynchron(const double testDuration, const std::string& testFunctions = std::string());
69
70}
71
72}
73
74}
75
76#endif // META_OCEAN_TEST_TESTBASE_TESTBASE_H
This class implements a worker able to distribute function calls over different threads.
Definition Worker.h:33
OCEAN_TEST_BASE_EXPORT void testBaseAsynchron(const double testDuration, const std::string &testFunctions=std::string())
Tests the entire base library.
OCEAN_TEST_BASE_EXPORT bool testBase(const double testDuration, Worker &worker, const std::string &testFunctions=std::string())
Tests the entire base library.
The namespace covering the entire Ocean framework.
Definition Accessor.h:15