Test: Set ownership of created dotfile test files to the current user
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#include <cstdio>
|
||||
#include <filesystem>
|
||||
#include <string>
|
||||
#include <unistd.h> // geteuid, setegid, seteuid
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
@@ -25,6 +26,12 @@ void createTestDotfiles(const std::vector<std::string>& fileNames, const std::ve
|
||||
{
|
||||
VERIFY(fileNames.size() == fileContents.size());
|
||||
|
||||
bool root = !geteuid() ? true : false;
|
||||
if (root) {
|
||||
setegid(Machine::the().gid());
|
||||
seteuid(Machine::the().uid());
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < fileNames.size(); ++i) {
|
||||
auto fileName = fileNames.at(i);
|
||||
|
||||
@@ -38,6 +45,11 @@ void createTestDotfiles(const std::vector<std::string>& fileNames, const std::ve
|
||||
file.append(fileContents.at(i).c_str()).flush();
|
||||
}
|
||||
}
|
||||
|
||||
if (root) {
|
||||
seteuid(0);
|
||||
setegid(0);
|
||||
}
|
||||
}
|
||||
|
||||
void removeTestDotfiles(const std::vector<std::string>& files)
|
||||
|
||||
Reference in New Issue
Block a user