| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 | // Not sure where to begin with gtest?//// What can I test with gtest?//// googletest/googletest/docs/primer.md#include "render.h"#include "terminal.h"#include "utils.h"#include "wordplay.h"#include "gtest/gtest.h"#include <errno.h>#include <fcntl.h>#include <string>#include <sys/stat.h>#include <sys/types.h>#include <time.h>#include <unistd.h>#define GTEST_COUT std::cerr << "[          ] [ INFO ]"struct console_details console;std::string username = "Pseudonym";std::string fullname = "Joe User";int harry_level(void) { return 4; }int randint(int x) { return 1; }int randrange(int x, int y) { return x; }int random_activate(int x) { return 1; }char *repr(const char *) {  static char text[] = "tada!";  return text;}bool replace(std::string &str, const std::string &from, const std::string &to) {  size_t start_pos = str.find(from);  if (start_pos == std::string::npos)    return false;  str.replace(start_pos, from.length(), to);  return true;}const char *logrepr(const char *) {  static char text[] = "repr!";  return text;}namespace {class MangleFixture : public ::testing::Test {public:  time_t start;  int fd;  const char *filename = "mangle.testing";protected:  virtual void SetUp() {    console_init(&console);    start = time(NULL);    // creat : File is WRITE ONLY.    fd = creat(filename, S_IRUSR | S_IWUSR);  }  virtual void TearDown() {    if (fd > 0)      close(fd);    unlink(filename);  }};TEST_F(MangleFixture, TestMangle) {  std::string data("The bear is sticky");  // This tests the tangler code  mangle(fd, data);  int lfd = open(filename, O_RDONLY);  char buffer[100];  int len = read(lfd, buffer, sizeof(buffer));  if (len == -1) {    ASSERT_EQ(errno, 0);  }  buffer[len] = 0;  close(lfd);  GTEST_COUT << "buffer:" << buffer << std::endl;  ASSERT_STREQ(      buffer,      "T \bh \be \b  \bb \be \ba \br \b  \bi \bs \b  \bs \bt \bi \bc \bk \by \b");}/*TEST_F(RenderFixture, ColorTest) {  ASSERT_GT(fd, 0);  std::string colors("^C01One^C02Two^C03Three^C04Four");  render(fd, colors);  int lfd = open(filename, O_RDONLY);  char buffer[100];  int len = read(lfd, buffer, sizeof(buffer));  if (len == -1) {    ASSERT_EQ(errno, 0);  }  buffer[len] = 0;  close(lfd);  GTEST_COUT << "buffer:" << buffer << std::endl;  ASSERT_EQ(len, 43);  ASSERT_STREQ(buffer,               "\x1B[0;34mOne\x1B[0;32mTwo\x1B[0;36mThree\x1B[0;31mFour");  struct console_details cons;  console_init(&cons);  int color_list[4] = {4, 2, 6, 1};  int color = 0;  for (int x = 0; x < len; ++x) {    termchar tc;    tc = console_char(&cons, buffer[x]);    if (tc.ansi == COLOR) {      GTEST_COUT << "Console color:" << cons.fgcolor << std::endl;      ASSERT_EQ(cons.fgcolor, color_list[color]);      color++;    }  }  ASSERT_EQ(color, 4);}TEST_F(RenderFixture, ColorEffectTest) {  std::string colors("^S1^R1\x1b[1;33;44mMEOW!\x1b[0m");  render(fd, colors);  int lfd = open(filename, O_RDONLY);  char buffer[100];  int len = read(lfd, buffer, sizeof(buffer));  if (len == -1) {    ASSERT_EQ(errno, 0);  }  buffer[len] = 0;  close(lfd);  ASSERT_EQ(strstr(buffer, "\x1b[1;33;44m"), buffer);  GTEST_COUT << "buffer:" << buffer << std::endl;  ASSERT_EQ(len, 29);  ASSERT_STREQ(buffer, "\x1b[1;33;44mM \bE \bO \bW \b! \b\x1b[0m");}*/} // namespace
 |