summaryrefslogtreecommitdiff
path: root/tests/unistd_test.cpp
diff options
context:
space:
mode:
authorJustin DeMartino <jjdemartino@google.com>2020-09-21 13:23:58 -0700
committerJustin DeMartino <jjdemartino@google.com>2020-09-21 13:23:58 -0700
commit7e4fe6a28b718ab97c08811566238af2893ca65b (patch)
tree5413a5ec890b5a1ac4fbbe4548b5014e41a2591b /tests/unistd_test.cpp
parentdcdcb3fa15004669823a3a118189d9d72ff30852 (diff)
parentab08b955a34423d53b28a6210e7530e67241af4a (diff)
Merge SP1A.200921.001
Change-Id: Id2ab019914bb555dadf52c46b8403c0d5fb3c20a
Diffstat (limited to 'tests/unistd_test.cpp')
-rw-r--r--tests/unistd_test.cpp31
1 files changed, 27 insertions, 4 deletions
diff --git a/tests/unistd_test.cpp b/tests/unistd_test.cpp
index 6b2856169..43d50f888 100644
--- a/tests/unistd_test.cpp
+++ b/tests/unistd_test.cpp
@@ -1350,6 +1350,11 @@ TEST(UNISTD_TEST, execve_failure) {
ASSERT_EQ(EACCES, errno);
}
+static void append_llvm_cov_env_var(std::string& env_str) {
+ if (getenv("LLVM_PROFILE_FILE") != nullptr)
+ env_str.append("__LLVM_PROFILE_RT_INIT_ONCE=__LLVM_PROFILE_RT_INIT_ONCE\n");
+}
+
TEST(UNISTD_TEST, execve_args) {
// int execve(const char* path, char* argv[], char* envp[]);
@@ -1361,7 +1366,12 @@ TEST(UNISTD_TEST, execve_args) {
// Test environment variable setting too.
eth.SetArgs({"printenv", nullptr});
eth.SetEnv({"A=B", nullptr});
- eth.Run([&]() { execve(BIN_DIR "printenv", eth.GetArgs(), eth.GetEnv()); }, 0, "A=B\n");
+
+ std::string expected_output("A=B\n");
+ append_llvm_cov_env_var(expected_output);
+
+ eth.Run([&]() { execve(BIN_DIR "printenv", eth.GetArgs(), eth.GetEnv()); }, 0,
+ expected_output.c_str());
}
TEST(UNISTD_TEST, execl_failure) {
@@ -1386,8 +1396,13 @@ TEST(UNISTD_TEST, execle_failure) {
TEST(UNISTD_TEST, execle) {
ExecTestHelper eth;
eth.SetEnv({"A=B", nullptr});
+
+ std::string expected_output("A=B\n");
+ append_llvm_cov_env_var(expected_output);
+
// int execle(const char* path, const char* arg, ..., char* envp[]);
- eth.Run([&]() { execle(BIN_DIR "printenv", "printenv", nullptr, eth.GetEnv()); }, 0, "A=B\n");
+ eth.Run([&]() { execle(BIN_DIR "printenv", "printenv", nullptr, eth.GetEnv()); }, 0,
+ expected_output.c_str());
}
TEST(UNISTD_TEST, execv_failure) {
@@ -1450,7 +1465,11 @@ TEST(UNISTD_TEST, execvpe) {
// Test environment variable setting too.
eth.SetArgs({"printenv", nullptr});
eth.SetEnv({"A=B", nullptr});
- eth.Run([&]() { execvpe("printenv", eth.GetArgs(), eth.GetEnv()); }, 0, "A=B\n");
+
+ std::string expected_output("A=B\n");
+ append_llvm_cov_env_var(expected_output);
+
+ eth.Run([&]() { execvpe("printenv", eth.GetArgs(), eth.GetEnv()); }, 0, expected_output.c_str());
}
TEST(UNISTD_TEST, execvpe_ENOEXEC) {
@@ -1538,7 +1557,11 @@ TEST(UNISTD_TEST, fexecve_args) {
ASSERT_NE(-1, printenv_fd);
eth.SetArgs({"printenv", nullptr});
eth.SetEnv({"A=B", nullptr});
- eth.Run([&]() { fexecve(printenv_fd, eth.GetArgs(), eth.GetEnv()); }, 0, "A=B\n");
+
+ std::string expected_output("A=B\n");
+ append_llvm_cov_env_var(expected_output);
+
+ eth.Run([&]() { fexecve(printenv_fd, eth.GetArgs(), eth.GetEnv()); }, 0, expected_output.c_str());
close(printenv_fd);
}