| 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().