13 #include <sys/types.h> 
   27 void no_handler(
int) { }
 
   38     struct sigaction ignored, original;
 
   39     memset(&ignored, 0, 
sizeof ignored);
 
   40     ignored.sa_handler = no_handler;
 
   41     if (sigaction(SIGALRM, &ignored, &original)) {
 
   47     int result(waitpid(process, &status, 0) == -1);
 
   50     if (sigaction(SIGALRM, &original, NULL)) {
 
   56             kill(process, SIGTERM);
 
   59     return WIFEXITED(status) && WEXITSTATUS(status) == 0;
 
   73     *read_pipe = pipes[0];
 
   95 check_output(
int *write_pipe, 
const void* 
const output, 
const size_t length)
 
  101     *write_pipe = pipes[1];
 
  108         unsigned char* buffer = 
new unsigned char[length + 1];
 
  110         size_t got_length(
read_data(pipes[0], buffer, length + 1));
 
  112         if (got_length != length) {
 
  113             fprintf(stderr, 
"Different length (expected %u, got %u)\n",
 
  114                 static_cast<unsigned>(length),
 
  115                 static_cast<unsigned>(got_length));
 
  118         if(!ok || memcmp(buffer, output, length)) {
 
  119             const unsigned char *output_c(static_cast<const unsigned char *>(
 
  122             for(
size_t i(0); i != got_length; ++ i) {
 
  123                 fprintf(stderr, 
"%02hhx", buffer[i]);
 
  125             fprintf(stderr, 
"\n");
 
  126             for(
size_t i(0); i != length; ++ i) {
 
  127                 fprintf(stderr, 
"%02hhx", output_c[i]);
 
  129             fprintf(stderr, 
"\n");
 
Wrappers around common unix fd manipulation functions. 
 
Help functions to fork the test case process. 
 
Defines the logger used by the top-level component of kea-dhcp-ddns. 
 
ssize_t read_data(const int fd, void *buffer_v, const size_t length)
 
bool write_data(const int fd, const void *buffer_v, const size_t length)
 
bool process_ok(pid_t process)
Checks that a process terminates correctly. 
 
pid_t check_output(int *write_pipe, const void *const output, const size_t length)
 
pid_t provide_input(int *read_pipe, const void *input, const size_t length)