// RUN: %clangxx -O0 -g %s -lutil -o %t && %run %t | FileCheck %s
#include <assert.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <pty.h>

int
main (int argc, char** argv)
{
    int master;
    int pid = forkpty(&master, NULL, NULL, NULL);

    if(pid == -1) {
      fprintf(stderr, "forkpty failed\n");
      return 1;
    } else if (pid > 0) {
      char buf[1024];
      int res = read(master, buf, sizeof(buf));
      write(1, buf, res);
      write(master, "password\n", 9);
      while ((res = read(master, buf, sizeof(buf))) > 0) write(1, buf, res);
    } else {
      char *s = getpass("prompt");
      assert(strcmp(s, "password") == 0);
      write(1, "done\n", 5);
    }
    return 0;
}

// CHECK: prompt
// CHECK: done
