about summary refs log tree commit diff stats
path: root/apps/mu.subx
Commit message (Expand)AuthorAgeFilesLines
* 7730 - baremetal/shell: boolean valuesKartik K. Agaram2021-02-121-3/+3
* 7692Kartik Agaram2021-02-071-4/+31
* 7689 - permit metadata on Mu literal integersKartik Agaram2021-02-061-0/+33
* 7350 - mu.subx optimization: skip no-op copiesKartik Agaram2020-12-111-0/+141
* 7349Kartik Agaram2020-12-111-12/+12
* 7348 - mu.subx bug with string literalsKartik Agaram2020-12-111-0/+63
* 7300 - bugfix in type-checking float returnsKartik Agaram2020-11-291-0/+69
* 7299 - bug in code-generating float returnsKartik Agaram2020-11-291-54/+122
* 7295Kartik Agaram2020-11-291-12/+11
* 7292 - mu.subx: loosen copy-byte checks a bitKartik Agaram2020-11-271-125/+31
* 7291Kartik Agaram2020-11-271-12/+11
* 7287Kartik Agaram2020-11-271-0/+34
* 7286 - mu.subx: isolate bytes from previous valuesKartik Agaram2020-11-271-13/+66
* 7285Kartik Agaram2020-11-261-12/+1042
* 7284Kartik Agaram2020-11-261-12/+188
* 7283Kartik Agaram2020-11-261-98/+12
* 7282Kartik Agaram2020-11-261-0/+86
* 7281Kartik Agaram2020-11-261-7/+24
* 7280Kartik Agaram2020-11-261-9/+9
* 7279Kartik Agaram2020-11-261-1/+44
* 7278 - typo in mu.subxKartik Agaram2020-11-261-2/+2
* 7267 - mu.subx: type-check 'convert' statementsKartik Agaram2020-11-201-0/+637
* 7261 - mu.subx: array bounds-checking doneKartik Agaram2020-11-171-98/+236
* 7260Kartik Agaram2020-11-171-15/+11
* 7258Kartik Agaram2020-11-171-9/+9
* 7257 - partially undo commit 7253Kartik Agaram2020-11-171-8/+8
* 7256Kartik Agaram2020-11-171-6/+6
* 7253 - mu.subx: starting to bounds-check 'index'Kartik Agaram2020-11-161-50/+51
* 7251Kartik Agaram2020-11-161-2/+2
* 7248 - mu.subx: new primitive 'clear-object'Kartik Agaram2020-11-151-0/+144
* 7241 - mu.subx: check float registersKartik Agaram2020-11-151-0/+148
* 7240Kartik Agaram2020-11-151-20/+34
* 7239Kartik Agaram2020-11-151-7/+114
* 7238 - mu.subx: final restrictions on 'addr'Kartik Agaram2020-11-151-2/+337
* 7232 - mu.subx: more checks for byte typesKartik Agaram2020-11-121-11/+149
* 7230 - mu.subx: some more checks for stmt outputsKartik Agaram2020-11-121-10/+153
* 7217Kartik Agaram2020-11-081-6/+24
* 7216Kartik Agaram2020-11-081-2/+63
* 7192 - more checks around literalsKartik Agaram2020-11-051-22/+318
* 7191Kartik Agaram2020-11-051-35/+55
* 7190Kartik Agaram2020-11-051-5/+5
* 7189 - some validations on function nameKartik Agaram2020-11-051-0/+273
* 7188 - raise error on deref of var on stackKartik Agaram2020-11-051-1/+74
* 7185 - type checks for 'populate-stream'Kartik Agaram2020-11-051-4/+437
* 7184 - type checks for 'populate'Kartik Agaram2020-11-051-7/+447
* 7183 - type checks for 'allocate'Kartik Agaram2020-11-051-1/+347
* 7182 - type checks for 'copy-object'Kartik Agaram2020-11-051-1/+412
* 7181 - type checks for 'address' instructionKartik Agaram2020-11-051-0/+593
* 7180Kartik Agaram2020-11-041-11/+172
* 7179Kartik Agaram2020-11-041-0/+31
eb5b04df ^
a9a860cb ^
f5338158 ^
527e739a ^
eb5b04df ^

3a403046 ^
eb5b04df ^
527e739a ^
545a23e9 ^

954661e5 ^
eb5b04df ^
3a403046 ^
6bad38c2 ^
527e739a ^
eb5b04df ^

3a403046 ^
eb5b04df ^
527e739a ^
545a23e9 ^

954661e5 ^

eb5b04df ^
3a403046 ^
6bad38c2 ^
527e739a ^
eb5b04df ^

3a403046 ^
4be250ae ^
527e739a ^
545a23e9 ^

0b2a1a1b ^
4be250ae ^
3a403046 ^
4be250ae ^
527e739a ^
0b2a1a1b ^
4be250ae ^

3a403046 ^
4be250ae ^
527e739a ^
545a23e9 ^

0b2a1a1b ^
4be250ae ^
3a403046 ^
4be250ae ^
527e739a ^
0b2a1a1b ^
4be250ae ^

3a403046 ^
4be250ae ^
527e739a ^
545a23e9 ^

0b2a1a1b ^
4be250ae ^




3a403046 ^
4be250ae ^
527e739a ^
0b2a1a1b ^
4be250ae ^
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
                 




                   

                    
                               
 
                              
 

                                         

 
                                     
 


                                         

 
                                    
 
                                         
                                             
                           

 
                                                
 
                                         
                                                  
 
                        
 
                           
                                      

 
                                       
 
                                         
                                  
                                                          
 
                                         
 
                           

 
                                                     
 
                                         

                                  
                                                          
 
                                         
 
                           

 
                                                      
 
                                         

                                  

                                                             
 
                                         
 
                           

 
                                   
 
                                         

                                  
                                                  
 
                                                
 
                           
                                      

 
                                        
 
                                         

                                  
                                                  
 
                                                
 
                           
                                      

 
                                       
 
                                         

                                  
                                                  




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

#include "contact.h"
#include "tools/autocomplete.h"

void clear_empty(void **state)
{
    Autocomplete ac = autocomplete_new();
    autocomplete_clear(ac);
}

void reset_after_create(void **state)
{
    Autocomplete ac = autocomplete_new();
    autocomplete_reset(ac);
    autocomplete_clear(ac);
}

void find_after_create(void **state)
{
    Autocomplete ac = autocomplete_new();
    autocomplete_complete(ac, "hello", TRUE);
    autocomplete_clear(ac);
}

void get_after_create_returns_null(void **state)
{
    Autocomplete ac = autocomplete_new();
    GSList *result = autocomplete_create_list(ac);

    assert_null(result);

    autocomplete_clear(ac);
    g_slist_free_full(result, g_free);
}

void add_one_and_complete(void **state)
{
    Autocomplete ac = autocomplete_new();
    autocomplete_add(ac, "Hello");
    char *result = autocomplete_complete(ac, "Hel", TRUE);

    assert_string_equal("Hello", result);

    autocomplete_clear(ac);
}

void add_two_and_complete_returns_first(void **state)
{
    Autocomplete ac = autocomplete_new();
    autocomplete_add(ac, "Hello");
    autocomplete_add(ac, "Help");
    char *result = autocomplete_complete(ac, "Hel", TRUE);

    assert_string_equal("Hello", result);

    autocomplete_clear(ac);
}

void add_two_and_complete_returns_second(void **state)
{
    Autocomplete ac = autocomplete_new();
    autocomplete_add(ac, "Hello");
    autocomplete_add(ac, "Help");
    char *result1 = autocomplete_complete(ac, "Hel", TRUE);
    char *result2 = autocomplete_complete(ac, result1, TRUE);

    assert_string_equal("Help", result2);

    autocomplete_clear(ac);
}

void add_two_adds_two(void **state)
{
    Autocomplete ac = autocomplete_new();
    autocomplete_add(ac, "Hello");
    autocomplete_add(ac, "Help");
    GSList *result = autocomplete_create_list(ac);

    assert_int_equal(2, g_slist_length(result));

    autocomplete_clear(ac);
    g_slist_free_full(result, g_free);
}

void add_two_same_adds_one(void **state)
{
    Autocomplete ac = autocomplete_new();
    autocomplete_add(ac, "Hello");
    autocomplete_add(ac, "Hello");
    GSList *result = autocomplete_create_list(ac);

    assert_int_equal(1, g_slist_length(result));

    autocomplete_clear(ac);
    g_slist_free_full(result, g_free);
}

void add_two_same_updates(void **state)
{
    Autocomplete ac = autocomplete_new();
    autocomplete_add(ac, "Hello");
    autocomplete_add(ac, "Hello");
    GSList *result = autocomplete_create_list(ac);

    GSList *first = g_slist_nth(result, 0);

    char *str = first->data;

    assert_string_equal("Hello", str);

    autocomplete_clear(ac);
    g_slist_free_full(result, g_free);
}