aboutsummaryrefslogtreecommitdiff
path: root/contrib/capsicum-test/capsicum-test-main.cc
diff options
context:
space:
mode:
authorAlex Richardson <arichardson@FreeBSD.org>2021-02-16 14:35:12 +0000
committerAlex Richardson <arichardson@FreeBSD.org>2021-03-17 22:22:49 +0000
commit8e6eb890fefdbcf5be2a61c7badadfabab3de52b (patch)
treee672dabf89464699519009dbae0bb114d06f47f4 /contrib/capsicum-test/capsicum-test-main.cc
parent760cf46f3e40c879f2f3efde3821419dbf32915d (diff)
Update capsicum-test to git commit 7707222b46abe52d18fd4fbb76115ffdb3e6f74b
This includes changes to use GTEST_SKIP() instead of the local hand-rolled mechanism as well as a few minor cleanups. (cherry picked from commit 2d936e6c99ad1c4fb01f6c99a96dcc924ee44b9d)
Diffstat (limited to 'contrib/capsicum-test/capsicum-test-main.cc')
-rw-r--r--contrib/capsicum-test/capsicum-test-main.cc36
1 files changed, 20 insertions, 16 deletions
diff --git a/contrib/capsicum-test/capsicum-test-main.cc b/contrib/capsicum-test/capsicum-test-main.cc
index 524631ebf5bd..d0f955270fd4 100644
--- a/contrib/capsicum-test/capsicum-test-main.cc
+++ b/contrib/capsicum-test/capsicum-test-main.cc
@@ -84,24 +84,30 @@ private:
std::string capsicum_test_bindir;
+// Adds a directory to $PATH.
+static void AddDirectoryToPath(const char *dir) {
+ char *new_path, *old_path;
+
+ old_path = getenv("PATH");
+ assert(old_path);
+
+ assert(asprintf(&new_path, "%s:%s", dir, old_path) > 0);
+ assert(setenv("PATH", new_path, 1) == 0);
+}
+
int main(int argc, char* argv[]) {
// Set up the test program path, so capsicum-test can find programs, like
// mini-me* when executed from an absolute path.
- {
- char *new_path, *old_path, *program_name;
-
- program_name = strdup(argv[0]);
- assert(program_name);
- capsicum_test_bindir = std::string(dirname(program_name));
- free(program_name);
+ char *program_name;
- old_path = getenv("PATH");
- assert(old_path);
+ // Copy argv[0], so dirname can do an in-place manipulation of the buffer's
+ // contents.
+ program_name = strdup(argv[0]);
+ assert(program_name);
+ capsicum_test_bindir = std::string(dirname(program_name));
+ free(program_name);
- assert(asprintf(&new_path, "%s:%s", capsicum_test_bindir.c_str(),
- old_path) > 0);
- assert(setenv("PATH", new_path, 1) == 0);
- }
+ AddDirectoryToPath(capsicum_test_bindir.c_str());
::testing::InitGoogleTest(&argc, argv);
for (int ii = 1; ii < argc; ii++) {
@@ -150,7 +156,5 @@ int main(int argc, char* argv[]) {
#endif
testing::AddGlobalTestEnvironment(new SetupEnvironment());
- int rc = RUN_ALL_TESTS();
- ShowSkippedTests(std::cerr);
- return rc;
+ return RUN_ALL_TESTS();
}