about summary refs log tree commit diff stats
Commit message (Expand)AuthorAgeFilesLines
* 4480Kartik Agaram2018-08-041-0/+0
* 4479Kartik Agaram2018-08-041-0/+1
* 4478Kartik Agaram2018-08-0440-4727/+3421
* 4477Kartik Agaram2018-08-041-1/+3
* 4476Kartik Agaram2018-08-041-0/+2
* 4475Kartik Agaram2018-08-041-26/+0
* 4474Kartik Agaram2018-08-041-8/+1
* 4473Kartik Agaram2018-08-046-24/+27
* 4472 - experiment: help read the long linesKartik Agaram2018-08-042-30/+30
* 4471Kartik Agaram2018-08-041-3/+62
* 4470Kartik Agaram2018-08-031-10/+7
* 4469Kartik Agaram2018-08-0310-3/+1
* 4468Kartik Agaram2018-08-035-0/+0
* 4467Kartik Agaram2018-08-0310-131/+131
* 4466Kartik Agaram2018-08-031-6/+6
* 4465Kartik Agaram2018-07-301-2/+2
* 4464Kartik Agaram2018-07-301-1/+1
* 4463Kartik Agaram2018-07-306-65/+0
* 4462Kartik Agaram2018-07-3025-257/+10
* 4461Kartik Agaram2018-07-301-0/+0
* 4460Kartik Agaram2018-07-301-4/+6
* 4459Kartik Agaram2018-07-301-1/+1
* 4458Kartik Agaram2018-07-301-3/+3
* 4457Kartik Agaram2018-07-302-1/+15
* 4456 - example with function calls: factorialKartik Agaram2018-07-306-1/+105
* 4455 - support displacement in ModR/MKartik Agaram2018-07-302-11/+48
* 4454Kartik Agaram2018-07-301-2/+2
* 4453Kartik Agaram2018-07-301-2/+2
* 4452Kartik Agaram2018-07-301-2/+5
* 4451Kartik Agaram2018-07-301-3/+2
* 4450Kartik Agaram2018-07-302-0/+31
* 4449Kartik Agaram2018-07-284-19/+14
* 4448Kartik Agaram2018-07-271-4/+56
* 4447Kartik Agaram2018-07-27137-16727/+22050
* 4446Kartik Agaram2018-07-277-49/+55
* 4445 - support labelsKartik Agaram2018-07-274-31/+102
* 4444Kartik Agaram2018-07-276-29/+40
* 4443Kartik Agaram2018-07-271-5/+9
* 4442Kartik Agaram2018-07-2711-93/+93
* 4441Kartik Agaram2018-07-271-4/+4
* 4440Kartik Agaram2018-07-271-0/+2
* 4439Kartik Agaram2018-07-271-8/+5
* 4438Kartik Agaram2018-07-271-1/+1
* 4437 - support for labels is half-doneKartik Agaram2018-07-272-0/+97
* 4436Kartik Agaram2018-07-271-2/+8
* 4435 - make instruction packing less strictKartik Agaram2018-07-272-1/+26
* 4434Kartik Agaram2018-07-2711-197/+209
* 4433Kartik Agaram2018-07-271-3/+3
* 4432Kartik Agaram2018-07-263-9/+9
* 4431 - operate exclusively in hexKartik Agaram2018-07-267-15/+13
itter James Booth <boothj5@gmail.com> 2015-01-06 21:56:14 +0000 Fixed tests' href='/danisanti/profani-tty/commit/tests/helpers.c?id=36790dc26bbd4d00702a75469980e7c9fbf1282d'>36790dc2 ^
f7843def ^





36790dc2 ^
f7843def ^

2cdbfc7e ^

















3d7d070b ^










































1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133


                   

                   


                   

                   
                    
                               
                              
 
                                    

                                                                  
                                                                      

                           










                                                              
                                                                    

                           
 
 








                                                   

                                                                             
                         
     
              

 
                                    
 

                                                             
                             
                           
 
 

                                     
                           





                                      
                            

 

















                                                     










































                                                                      
#include <setjmp.h>
#include <stdarg.h>
#include <stddef.h>
#include <stdlib.h>
#include <cmocka.h>
#include <glib.h>
#include <stdio.h>
#include <unistd.h>

#include "common.h"
#include "helpers.h"
#include "config/preferences.h"
#include "xmpp/chat_session.h"

void create_config_dir(void **state)
{
    setenv("XDG_CONFIG_HOME", "./tests/files/xdg_config_home", 1);
    if (!mkdir_recursive("./tests/files/xdg_config_home/profanity")) {
        assert_true(FALSE);
    }
}

void remove_config_dir(void **state)
{
    rmdir("./tests/files/xdg_config_home/profanity");
    rmdir("./tests/files/xdg_config_home");
}

void create_data_dir(void **state)
{
    setenv("XDG_DATA_HOME", "./tests/files/xdg_data_home", 1);
    if (!mkdir_recursive("./tests/files/xdg_data_home/profanity")) {
        assert_true(FALSE);
    }
}

void remove_data_dir(void **state)
{
    rmdir("./tests/files/xdg_data_home/profanity");
    rmdir("./tests/files/xdg_data_home");
}

void load_preferences(void **state)
{
    create_config_dir(state);
    FILE *f = fopen("./tests/files/xdg_config_home/profanity/profrc", "ab+");
    if (f) {
        prefs_load(NULL);
    }
    fclose(f);
}

void close_preferences(void **state)
{
    prefs_close();
    remove("./tests/files/xdg_config_home/profanity/profrc");
    remove_config_dir(state);
    rmdir("./tests/files");
}

void init_chat_sessions(void **state)
{
    load_preferences(NULL);
    chat_sessions_init();
}

void close_chat_sessions(void **state)
{
    chat_sessions_clear();
    close_preferences(NULL);
}

int
utf8_pos_to_col(char *str, int utf8_pos)
{
    int col = 0;

    int i = 0;
    for (i = 0; i<utf8_pos; i++) {
        col++;
        gchar *ch = g_utf8_offset_to_pointer(str, i);
        gunichar uni = g_utf8_get_char(ch);
        if (g_unichar_iswide(uni)) {
            col++;
        }
    }

    return col;
}

static GCompareFunc cmp_func;

void
glist_set_cmp(GCompareFunc func)
{
    cmp_func = func;
}

int
glist_contents_equal(const void *actual, const void *expected)
{
    GList *ac = (GList *)actual;
    GList *ex = (GList *)expected;

    GList *p = ex;
    printf("\nExpected\n");
    while(ex) {
        printf("\n\n%s\n", (char*)p->data);
        ex = g_list_next(ex);
    }
    printf("\n\n");
    p = ac;
    printf("\nActual\n");
    while(ac) {
        printf("\n\n%s\n", (char *)p->data);
        ac = g_list_next(ac);
    }
    printf("\n\n");

    if (g_list_length(ex) != g_list_length(ac)) {
        return 0;
    }

    GList *ex_curr = ex;
    while (ex_curr != NULL) {
        if (g_list_find_custom(ac, ex_curr->data, cmp_func) == NULL) {
            return 0;
        }
        ex_curr = g_list_next(ex_curr);
    }

    return 1;
}