Server IP : 192.158.238.246 / Your IP : 18.216.78.190 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/cpanel/ea-ruby27/src/passenger-release-6.0.23/test/cxx/ |
Upload File : |
#include <TestSupport.h> #include <FileDescriptor.h> #include <cerrno> using namespace Passenger; namespace tut { struct FileDescriptorTest: public TestBase { int pipes[2]; FileDescriptorTest() { pipe(pipes); } ~FileDescriptorTest() { if (pipes[0] != -1) { close(pipes[0]); } if (pipes[1] != -1) { close(pipes[1]); } } }; DEFINE_TEST_GROUP(FileDescriptorTest); TEST_METHOD(1) { // Test constructors. FileDescriptor f; ensure_equals("An empty FileDescriptor has value -1", f, -1); int fd = pipes[0]; pipes[0] = -1; f = FileDescriptor(fd, __FILE__, __LINE__); ensure_equals("FileDescriptor takes the value of its constructor argument", f, fd); } TEST_METHOD(2) { // It closes the underlying file descriptor when the last // instance is destroyed. int reader = pipes[0]; pipes[0] = -1; { FileDescriptor f(reader, __FILE__, __LINE__); { FileDescriptor f2(f); } ensure("File descriptor is not closed if there are still live copies", write(pipes[1], "x", 1) != -1); } ensure("File descriptor is closed if the last live copy is dead", write(pipes[1], "x", 1) == -1); } TEST_METHOD(3) { // Calling close() will close the underlying file descriptor for all instances. int reader = pipes[0]; pipes[0] = -1; FileDescriptor f(reader, __FILE__, __LINE__); FileDescriptor f2(f); f.close(); ensure_equals("(1)", f, -1); ensure_equals("(2)", f2, -1); ensure(write(pipes[1], "x", 1) == -1); } }