From 940f6d5f3cbac82f652bbe74e799800c5c2bd0af Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 26 May 2015 01:07:47 +0100 Subject: [PATCH] Added expect test --- expecttest.c | 40 ++++++++++++++++++++++++++++++++++++++++ makeexpecttest.sh | 1 + 2 files changed, 41 insertions(+) create mode 100644 expecttest.c create mode 100755 makeexpecttest.sh diff --git a/expecttest.c b/expecttest.c new file mode 100644 index 00000000..2159ed02 --- /dev/null +++ b/expecttest.c @@ -0,0 +1,40 @@ +#include +#include +#include +#include + +#define CONNECT_CMD "/connect stabber@localhost port 5230\r" +#define PASSWORD "password\r" +#define QUIT_CMD "/quit\r" + +int main(void) +{ + stbbr_start(5230); + + int res = 0; + int fd = exp_spawnl("./profanity"); + FILE *fp = fdopen(fd, "r+"); + setbuf(fp, (char *)0); + + res = exp_expectl(fd, exp_exact, "Profanity. Type /help for help information.", 10, exp_end); + assert(res == 10); + + write(fd, CONNECT_CMD, strlen(CONNECT_CMD)); + res = exp_expectl(fd, exp_exact, "Enter password:", 11, exp_end); + assert(res == 11); + + write(fd, PASSWORD, strlen(PASSWORD)); + res = exp_expectl(fd, exp_exact, "Connecting with account stabber@localhost", 12, exp_end); + assert(res == 12); + res = exp_expectl(fd, exp_exact, "stabber@localhost logged in successfully", 13, exp_end); + assert(res == 13); + + write(fd, QUIT_CMD, strlen(QUIT_CMD)); + sleep(1); + + printf("\n"); + printf("\n"); + printf("PID: %d\n", exp_pid); + + stbbr_stop(); +} diff --git a/makeexpecttest.sh b/makeexpecttest.sh new file mode 100755 index 00000000..3e690a01 --- /dev/null +++ b/makeexpecttest.sh @@ -0,0 +1 @@ +gcc -I/usr/include/tcl8.6 expecttest.c -o expecttest -lexpect -ltcl -lstabber