Classes | |
class | BazelTestPaths |
Implementation of TestPaths interface for Bazel. More... | |
class | CMakeTestPaths |
Implementation of TestPaths interface for CMake. More... | |
class | RedirectConsoleStream |
class | TestPaths |
Helper interface to generate path information to support test access to source/data files. More... | |
Enumerations | |
enum class | StreamSource { STDOUT , STDERR } |
Functions | |
bool GZ_COMMON_TESTING_VISIBLE | createNewEmptyFile (const std::string &_filename) |
Create an empty file with no content. | |
std::shared_ptr< TempDirectory > | MakeTestTempDirectory (const std::string &_prefix="test", const std::string &_subDir="gz", bool _cleanup=true) |
Create a temporary directory for test output in an OS and build appropriate location. | |
std::shared_ptr< TempDirectory > GZ_COMMON_TESTING_VISIBLE | MakeTestTempDirectoryImpl (const std::string &_projectSourcePath, const std::string &_prefix="test", const std::string &_subDir="gz", bool _cleanup=true) |
Implementation of MakeTestTempDirectory. | |
RedirectConsoleStream | RedirectStderr () |
Redirect standard error to a test-specific temporary path. | |
RedirectConsoleStream | RedirectStdout () |
Redirect standard out to a test-specific temporary path. | |
template<typename... Args> | |
std::string | SourceFile (Args const &... args) |
Get the path to a file in the project source tree. | |
template<typename... Args> | |
std::string | TempPath (Args const &... args) |
Get the path to a file in a temporary directory. | |
BuildType GZ_COMMON_TESTING_VISIBLE | TestBuildType (const std::string &_projectSourcePath=kTestingProjectSourceDir) |
Return the current build type. | |
template<typename... Args> | |
std::string | TestFile (Args const &... args) |
Get the path to a file in the project test directory tree. | |
std::unique_ptr< TestPaths > GZ_COMMON_TESTING_VISIBLE | TestPathFactory (const std::string &_projectSourcePath=kTestingProjectSourceDir) |
Get a TestPaths object for the current build type. | |
Variables | |
constexpr char | kTestingProjectSourceDir [] = "" |
Constant referring to the project source dir of the current project. | |
Enumeration Type Documentation
◆ StreamSource
|
strong |
Function Documentation
◆ createNewEmptyFile()
bool GZ_COMMON_TESTING_VISIBLE createNewEmptyFile | ( | const std::string & | _filename | ) |
Create an empty file with no content.
- Parameters
-
[in] _filename Filename of the file to be created
- Returns
- true if file successfully created, false otherwise
◆ MakeTestTempDirectory()
|
inline |
Create a temporary directory for test output in an OS and build appropriate location.
The TempDirectory will have the form $TMPDIR/_subdir/_prefixXXXXX/
- Parameters
-
[in] _prefix Prefix of the temporary directory [in] _subDir Additional subdirectory for temporary directory [in] _cleanup True to indicate that the filesystem should be cleaned as part of the destructor
- Returns
- Shared pointer to TempDirectory
References kTestingProjectSourceDir, and MakeTestTempDirectoryImpl().
◆ MakeTestTempDirectoryImpl()
std::shared_ptr< TempDirectory > GZ_COMMON_TESTING_VISIBLE MakeTestTempDirectoryImpl | ( | const std::string & | _projectSourcePath, |
const std::string & | _prefix = "test" , |
||
const std::string & | _subDir = "gz" , |
||
bool | _cleanup = true |
||
) |
Implementation of MakeTestTempDirectory.
The TempDirectory will have the form $TMPDIR/_subdir/_prefixXXXXX/
- Parameters
-
[in] _projectSourcePath Root of project source or empty [in] _prefix Prefix of the temporary directory [in] _subDir Additional subdirectory for temporary directory [in] _cleanup True to indicate that the filesystem should be cleaned as part of the destructor
- Returns
- Shared pointer to TempDirectory
Referenced by MakeTestTempDirectory().
◆ RedirectStderr()
|
inline |
Redirect standard error to a test-specific temporary path.
References STDERR, and TempPath().
◆ RedirectStdout()
|
inline |
Redirect standard out to a test-specific temporary path.
References STDOUT, and TempPath().
◆ SourceFile()
std::string SourceFile | ( | Args const &... | args | ) |
Get the path to a file in the project source tree.
Example: to get gz-common/test/data/box.dae SourceFile("test", "data", "box.dae");
- Parameters
-
[in] args Relative path to the source file
- Returns
- Full path to the source file
References kTestingProjectSourceDir, and TestPathFactory().
Referenced by TestFile().
◆ TempPath()
std::string TempPath | ( | Args const &... | args | ) |
Get the path to a file in a temporary directory.
Example: to get ${TMP}/.gz/foo.log TempPath(".gz", "foo.log");
- Parameters
-
[in] args Path to the file, relative to the temporary directory
- Returns
- Full path to the temporary directory
References kTestingProjectSourceDir, and TestPathFactory().
Referenced by RedirectStderr(), and RedirectStdout().
◆ TestBuildType()
BuildType GZ_COMMON_TESTING_VISIBLE TestBuildType | ( | const std::string & | _projectSourcePath = kTestingProjectSourceDir | ) |
Return the current build type.
- Parameters
-
[in] _projectSourcePath Root of project source or empty
- Returns
- The current build type
◆ TestFile()
std::string TestFile | ( | Args const &... | args | ) |
Get the path to a file in the project test directory tree.
Example: to get gz-common/test/data/box.dae TestFile("data", "box.dae");
- Parameters
-
[in] args Path to the file, relative to the test directory
- Returns
- Full path to the source file
References SourceFile().
◆ TestPathFactory()
std::unique_ptr< TestPaths > GZ_COMMON_TESTING_VISIBLE TestPathFactory | ( | const std::string & | _projectSourcePath = kTestingProjectSourceDir | ) |
Get a TestPaths object for the current build type.
- Parameters
-
[in] _projectSourcePath Root of project source or empty
- Returns
- TestPaths implementation for the current build type
Referenced by SourceFile(), and TempPath().
Variable Documentation
◆ kTestingProjectSourceDir
|
constexpr |
Constant referring to the project source dir of the current project.
For CMake builds, it is expected that this is injected via a buildsystem define of TESTING_PROJECT_SOURCE_DIR. This is done automatically for tests using gz-cmake's gz_build_tests
For Bazel builds, it is expected to be empty
Referenced by MakeTestTempDirectory(), SourceFile(), and TempPath().