summary refs log tree commit diff stats
path: root/compiler/transf.nim
Commit message (Expand)AuthorAgeFilesLines
* remove unused stuffJacek Sieka2016-08-091-7/+0
* remove sfFakeConstJacek Sieka2016-07-301-8/+2
* fixes #4110Andreas Rumpf2016-05-111-1/+1
* fix type used for chckRange node boundariesJacek Sieka2016-04-041-2/+2
* SpellcheckFederico Ceratto2016-02-291-1/+1
* fixes #3730Araq2016-01-181-1/+3
* nkEmpty is cleaner than nkCommentStmtAndreas Rumpf2016-01-171-1/+1
* fixes iterator codegen regressionAndreas Rumpf2016-01-141-1/+9
* fixes more regressionsAndreas Rumpf2016-01-131-20/+29
* fixes regressionsAndreas Rumpf2016-01-081-0/+2
* fixes all known regressionsAndreas Rumpf2016-01-061-18/+16
* fixes #2604, fixes #1527Andreas Rumpf2016-01-051-3/+11
* fixes #2659Andreas Rumpf2016-01-041-0/+3
* fixes another regressionAndreas Rumpf2016-01-041-0/+2
* further progress on closure iterators; tforum still failingAndreas Rumpf2016-01-031-1/+3
* next steps to produce working closure iteratorsAndreas Rumpf2016-01-031-4/+5
* made closure iterators tests green, updated docsAndreas Rumpf2015-12-311-4/+6
* compute LL before the other transformations as that should produce more effic...Andreas Rumpf2015-12-281-5/+5
* first implementation of the new lambda-lifting pass; barely anything worksAndreas Rumpf2015-12-261-0/+18
* removes 'x is iterator' special casing in the languageAraq2015-12-031-4/+2
* mitigates unclear nimsuggest problemAraq2015-10-221-0/+1
* fixes tunittest crashAraq2015-10-131-1/+3
* minor bugfix for transf pass after lambda-liftingAraq2015-09-211-17/+20
* first implementation of write tracking and escape analysis; still disabledAraq2015-08-311-1/+1
* fix regressionsAraq2015-08-051-1/+1
* destructors now work with overloaded assignment operators; fixes #2811; fixes...Araq2015-08-051-4/+79
* fixes #3054Araq2015-07-051-3/+2
* fixes #3053Araq2015-07-051-1/+5
* minor bugfixes to the new 'len(nil)==0' featureAraq2015-05-031-2/+1
* fixes #2470, fixes #1354Araq2015-04-281-0/+3
* 'constructor' pragma for C++ supportAraq2015-03-181-2/+1
* fixes #794 properlyAraq2015-03-121-2/+2
* fixes #2287Araq2015-03-121-0/+1
* GC: get rid of pathological behaviour for stack markingAraq2015-03-081-132/+132
* fixes #2051Araq2015-02-201-1/+2
* lots of C++ codegen improvementsAraq2015-02-071-0/+1
* Happy new year!Guillaume Gelin2015-01-061-1/+1
* implemented procCall builtinAraq2014-11-281-5/+9
* Merge branch 'devel' into bigbreakAraq2014-11-031-0/+3
|\
| * Fix dispatcher creation for method prototypes.Reimer Behrends2014-11-021-4/+3
| * Fix method recursion bug.Reimer Behrends2014-10-311-1/+5
* | Nimrod renamed to NimAraq2014-08-281-1/+1
* | the big renamefest: first stepsAraq2014-08-221-2/+2
|/
* fixes recently introduced regressionAraq2014-08-211-14/+43
* fixes #1418Araq2014-08-201-29/+44
* fixes #1319Araq2014-06-301-1/+4
* fixes #866Araq2014-04-061-0/+1
* fixes #404Araq2014-03-231-11/+1
* implements higher-order inline iterators and return type inference for iteratorsZahary Karadjov2014-03-081-5/+7
* split the inline and closure iterators into different symbol kinds for easier...Zahary Karadjov2014-03-061-4/+3
r Michael Vetter <jubalh@iodoru.org> 2019-10-06 17:07:00 +0200 committer Michael Vetter <jubalh@iodoru.org> 2019-10-06 17:07:00 +0200 Fix test_jid unittest memleak' href='/danisanti/profani-tty/commit/tests/unittests/test_jid.c?id=ae9ef75babdf1e6e2147e8d30dc307ef7a9f0636'>ae9ef75b ^
94bcf188 ^

07308673 ^
94bcf188 ^
1cc33cc4 ^
07308673 ^
ae9ef75b ^
94bcf188 ^

07308673 ^
94bcf188 ^
1cc33cc4 ^
07308673 ^
ae9ef75b ^
94bcf188 ^

07308673 ^
94bcf188 ^
1cc33cc4 ^
07308673 ^
ae9ef75b ^
94bcf188 ^

07308673 ^
94bcf188 ^
1cc33cc4 ^
07308673 ^
ae9ef75b ^
94bcf188 ^

07308673 ^
94bcf188 ^
1cc33cc4 ^
07308673 ^
ae9ef75b ^
94bcf188 ^

07308673 ^
94bcf188 ^
1cc33cc4 ^
07308673 ^
ae9ef75b ^
94bcf188 ^

07308673 ^
94bcf188 ^
1cc33cc4 ^
07308673 ^
ae9ef75b ^
94bcf188 ^

07308673 ^
94bcf188 ^
1cc33cc4 ^
07308673 ^
ae9ef75b ^
94bcf188 ^

07308673 ^
94bcf188 ^
1cc33cc4 ^
07308673 ^
ae9ef75b ^
94bcf188 ^

07308673 ^
94bcf188 ^
1cc33cc4 ^
07308673 ^
ae9ef75b ^
94bcf188 ^

07308673 ^
94bcf188 ^
1cc33cc4 ^
07308673 ^
ae9ef75b ^
94bcf188 ^

07308673 ^
3a22719b ^
8bdab23e ^
3a22719b ^
07308673 ^
ae9ef75b ^
3a22719b ^

07308673 ^
3a22719b ^
8bdab23e ^
3a22719b ^
07308673 ^
ae9ef75b ^
3a22719b ^

07308673 ^
d239a127 ^


07308673 ^




ae9ef75b ^

d239a127 ^

07308673 ^
d239a127 ^


07308673 ^




ae9ef75b ^

d239a127 ^

07308673 ^
d239a127 ^


07308673 ^




ae9ef75b ^

d239a127 ^

07308673 ^
d239a127 ^


07308673 ^




ae9ef75b ^

94bcf188 ^
e263e00a ^







ae9ef75b ^

e263e00a ^








ae9ef75b ^

1c5efaeb ^
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214



                   
                   
 
                     
 
                                                    
 
                                   
                        

 
                                                            
 
                                 
                        

 
                                                    
 
                                                       
                                                                   
                        

 
                                                    
 
                                                       
                                                            
                        

 
                                                            
 
                                                       
                                                        
                        

 
                                                         
 
                                                       
                                                     
                        

 
                                                          
 
                                                       
                                                        
                        

 
                                                            
 
                                                
                                                            
                        

 
                                                            
 
                                                
                                                     
                        

 
                                                                    
 
                                                
                                                        
                        

 
                                                                  
 
                                                
                                                        
                        

 
                                                                      
 
                                                
                                   
                        

 
                                                         
 
                                                
                                 
                        

 
                                                             
 
                                                
                                      
                        

 
                                                    
 
                                                
                                                            
                        

 
                                                         
 
                                                
                                                     
                        

 
                                                          
 
                                                
                                                        
                        

 
                                               
 
                                                                                            
 
                                                                       
                        

 
                                               
 
                                                                                            
 
                                                        
                        

 
                                                


                                                                   




                                                                               

                        

 
                                             


                                                                   




                                                                               

                        

 
                                                       


                                                                             




                                                                                         

                        

 
                                                  


                                                                 




                                                                             

                        
 







                                                                     

                     








                                                          

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

#include "xmpp/jid.h"

void create_jid_from_null_returns_null(void **state)
{
    Jid *result = jid_create(NULL);
    assert_null(result);
}

void create_jid_from_empty_string_returns_null(void **state)
{
    Jid *result = jid_create("");
    assert_null(result);
}

void create_jid_from_full_returns_full(void **state)
{
    Jid *result = jid_create("myuser@mydomain/laptop");
    assert_string_equal("myuser@mydomain/laptop", result->fulljid);
    jid_destroy(result);
}

void create_jid_from_full_returns_bare(void **state)
{
    Jid *result = jid_create("myuser@mydomain/laptop");
    assert_string_equal("myuser@mydomain", result->barejid);
    jid_destroy(result);
}

void create_jid_from_full_returns_resourcepart(void **state)
{
    Jid *result = jid_create("myuser@mydomain/laptop");
    assert_string_equal("laptop", result->resourcepart);
    jid_destroy(result);
}

void create_jid_from_full_returns_localpart(void **state)
{
    Jid *result = jid_create("myuser@mydomain/laptop");
    assert_string_equal("myuser", result->localpart);
    jid_destroy(result);
}

void create_jid_from_full_returns_domainpart(void **state)
{
    Jid *result = jid_create("myuser@mydomain/laptop");
    assert_string_equal("mydomain", result->domainpart);
    jid_destroy(result);
}

void create_jid_from_full_nolocal_returns_full(void **state)
{
    Jid *result = jid_create("mydomain/laptop");
    assert_string_equal("mydomain/laptop", result->fulljid);
    jid_destroy(result);
}

void create_jid_from_full_nolocal_returns_bare(void **state)
{
    Jid *result = jid_create("mydomain/laptop");
    assert_string_equal("mydomain", result->barejid);
    jid_destroy(result);
}

void create_jid_from_full_nolocal_returns_resourcepart(void **state)
{
    Jid *result = jid_create("mydomain/laptop");
    assert_string_equal("laptop", result->resourcepart);
    jid_destroy(result);
}

void create_jid_from_full_nolocal_returns_domainpart(void **state)
{
    Jid *result = jid_create("mydomain/laptop");
    assert_string_equal("mydomain", result->domainpart);
    jid_destroy(result);
}

void create_jid_from_full_nolocal_returns_null_localpart(void **state)
{
    Jid *result = jid_create("mydomain/laptop");
    assert_null(result->localpart);
    jid_destroy(result);
}

void create_jid_from_bare_returns_null_full(void **state)
{
    Jid *result = jid_create("myuser@mydomain");
    assert_null(result->fulljid);
    jid_destroy(result);
}

void create_jid_from_bare_returns_null_resource(void **state)
{
    Jid *result = jid_create("myuser@mydomain");
    assert_null(result->resourcepart);
    jid_destroy(result);
}

void create_jid_from_bare_returns_bare(void **state)
{
    Jid *result = jid_create("myuser@mydomain");
    assert_string_equal("myuser@mydomain", result->barejid);
    jid_destroy(result);
}

void create_jid_from_bare_returns_localpart(void **state)
{
    Jid *result = jid_create("myuser@mydomain");
    assert_string_equal("myuser", result->localpart);
    jid_destroy(result);
}

void create_jid_from_bare_returns_domainpart(void **state)
{
    Jid *result = jid_create("myuser@mydomain");
    assert_string_equal("mydomain", result->domainpart);
    jid_destroy(result);
}

void create_room_jid_returns_room(void **state)
{
    Jid *result = jid_create_from_bare_and_resource("room@conference.domain.org", "myname");

    assert_string_equal("room@conference.domain.org", result->barejid);
    jid_destroy(result);
}

void create_room_jid_returns_nick(void **state)
{
    Jid *result = jid_create_from_bare_and_resource("room@conference.domain.org", "myname");

    assert_string_equal("myname", result->resourcepart);
    jid_destroy(result);
}

void create_with_slash_in_resource(void **state)
{
    Jid *result = jid_create("room@conference.domain.org/my/nick");

    assert_string_equal("room", result->localpart);
    assert_string_equal("conference.domain.org", result->domainpart);
    assert_string_equal("my/nick", result->resourcepart);
    assert_string_equal("room@conference.domain.org", result->barejid);
    assert_string_equal("room@conference.domain.org/my/nick", result->fulljid);

    jid_destroy(result);
}

void create_with_at_in_resource(void **state)
{
    Jid *result = jid_create("room@conference.domain.org/my@nick");

    assert_string_equal("room", result->localpart);
    assert_string_equal("conference.domain.org", result->domainpart);
    assert_string_equal("my@nick", result->resourcepart);
    assert_string_equal("room@conference.domain.org", result->barejid);
    assert_string_equal("room@conference.domain.org/my@nick", result->fulljid);

    jid_destroy(result);
}

void create_with_at_and_slash_in_resource(void **state)
{
    Jid *result = jid_create("room@conference.domain.org/my@nick/something");

    assert_string_equal("room", result->localpart);
    assert_string_equal("conference.domain.org", result->domainpart);
    assert_string_equal("my@nick/something", result->resourcepart);
    assert_string_equal("room@conference.domain.org", result->barejid);
    assert_string_equal("room@conference.domain.org/my@nick/something", result->fulljid);

    jid_destroy(result);
}

void create_full_with_trailing_slash(void **state)
{
    Jid *result = jid_create("room@conference.domain.org/nick/");

    assert_string_equal("room", result->localpart);
    assert_string_equal("conference.domain.org", result->domainpart);
    assert_string_equal("nick/", result->resourcepart);
    assert_string_equal("room@conference.domain.org", result->barejid);
    assert_string_equal("room@conference.domain.org/nick/", result->fulljid);

    jid_destroy(result);
}

void returns_fulljid_when_exists(void **state)
{
    Jid *jid = jid_create("localpart@domainpart/resourcepart");

    char *result = jid_fulljid_or_barejid(jid);

    assert_string_equal("localpart@domainpart/resourcepart", result);

    jid_destroy(jid);
}

void returns_barejid_when_fulljid_not_exists(void **state)
{
    Jid *jid = jid_create("localpart@domainpart");

    char *result = jid_fulljid_or_barejid(jid);

    assert_string_equal("localpart@domainpart", result);

    jid_destroy(jid);
}