aboutsummaryrefslogtreecommitdiff
path: root/lesstest/lesstest.h
diff options
context:
space:
mode:
Diffstat (limited to 'lesstest/lesstest.h')
-rw-r--r--lesstest/lesstest.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/lesstest/lesstest.h b/lesstest/lesstest.h
new file mode 100644
index 000000000000..93bbed33b829
--- /dev/null
+++ b/lesstest/lesstest.h
@@ -0,0 +1,84 @@
+#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
+#include <errno.h>
+#include "lt_types.h"
+#include "wchar.h"
+
+#define ENVBUF_SIZE 4096
+typedef struct EnvBuf {
+ char** env_list;
+ char* env_estr;
+ char* env_buf[ENVBUF_SIZE/sizeof(char*)];
+} EnvBuf;
+
+typedef struct TestSetup {
+ char* setup_name;
+ char* textfile;
+ char** argv;
+ int argc;
+ EnvBuf env;
+} TestSetup;
+
+typedef struct LessPipeline {
+ int less_in;
+ int screen_out;
+ int screen_width;
+ int screen_height;
+ pid_t less_pid;
+ pid_t screen_pid;
+ const char* tempfile;
+ int less_in_pipe[2];
+ int screen_in_pipe[2];
+ int screen_out_pipe[2];
+} LessPipeline;
+
+typedef struct TermInfo {
+ char backspace_key;
+ char* enter_underline;
+ char* exit_underline;
+ char* enter_bold;
+ char* exit_bold;
+ char* enter_blink;
+ char* exit_blink;
+ char* enter_standout;
+ char* exit_standout;
+ char* clear_screen;
+ char* cursor_move;
+ char* key_right;
+ char* key_left;
+ char* key_up;
+ char* key_down;
+ char* key_home;
+ char* key_end;
+ char* enter_keypad;
+ char* exit_keypad;
+ char* init_term;
+ char* deinit_term;
+} TermInfo;
+
+int log_open(char const* logfile);
+void log_close(void);
+int log_file_header(void);
+int log_test_header(char* const* argv, int argc, const char* textfile);
+int log_test_footer(void);
+int log_env(const char* name, int namelen, const char* value);
+int log_tty_char(wchar ch);
+int log_screen(byte const* img, int len);
+LessPipeline* create_less_pipeline(char* const* argv, int argc, char* const* envp);
+void destroy_less_pipeline(LessPipeline* pipeline);
+void print_strings(const char* title, char* const* strings);
+void free_test_setup(TestSetup* setup);
+TestSetup* read_test_setup(FILE* fd, char const* less);
+int read_zline(FILE* fd, char* line, int line_len);
+void raw_mode(int tty, int on);
+int setup_term(void);
+void display_screen(const byte* img, int imglen, int screen_width, int screen_height);
+void display_screen_debug(const byte* img, int imglen, int screen_width, int screen_height);
+const char* get_envp(char* const* envp, const char* name);
+int run_interactive(char* const* argv, int argc, char* const* envp);
+int run_testfile(const char* testfile, const char* less);
+void env_init(EnvBuf* env);
+void env_addpair(EnvBuf* env, const char* name, const char* value);
+char* const* less_envp(char* const* envp, int interactive);