Changeset View
Changeset View
Standalone View
Standalone View
src/test/util_tests.cpp
Show First 20 Lines • Show All 1,199 Lines • ▼ Show 20 Lines | |||||
#ifndef WIN32 // Cannot do this test on WIN32 due to lack of fork() | #ifndef WIN32 // Cannot do this test on WIN32 due to lack of fork() | ||||
static constexpr char LockCommand = 'L'; | static constexpr char LockCommand = 'L'; | ||||
static constexpr char UnlockCommand = 'U'; | static constexpr char UnlockCommand = 'U'; | ||||
static constexpr char ExitCommand = 'X'; | static constexpr char ExitCommand = 'X'; | ||||
static void TestOtherProcess(fs::path dirname, std::string lockname, int fd) { | static void TestOtherProcess(fs::path dirname, std::string lockname, int fd) { | ||||
char ch; | char ch; | ||||
int rv; | |||||
while (true) { | while (true) { | ||||
rv = read(fd, &ch, 1); // Wait for command | // Wait for command | ||||
int rv = read(fd, &ch, 1); | |||||
assert(rv == 1); | assert(rv == 1); | ||||
switch (ch) { | switch (ch) { | ||||
case LockCommand: | case LockCommand: | ||||
ch = LockDirectory(dirname, lockname); | ch = LockDirectory(dirname, lockname); | ||||
rv = write(fd, &ch, 1); | rv = write(fd, &ch, 1); | ||||
assert(rv == 1); | assert(rv == 1); | ||||
break; | break; | ||||
case UnlockCommand: | case UnlockCommand: | ||||
▲ Show 20 Lines • Show All 214 Lines • Show Last 20 Lines |