1
1
const std = @import ("std" );
2
- const ArenaAllocator = std .heap .ArenaAllocator ;
3
2
const expect = std .testing .expect ;
4
3
const expectEqual = std .testing .expectEqual ;
5
4
const expectEqualStrings = std .testing .expectEqualStrings ;
@@ -8,12 +7,8 @@ const zig_string = @import("./zig-string.zig");
8
7
const String = zig_string .String ;
9
8
10
9
test "Basic Usage" {
11
- // Use your favorite allocator
12
- var arena = ArenaAllocator .init (std .heap .page_allocator );
13
- defer arena .deinit ();
14
-
15
10
// Create your String
16
- var myString = String .init (arena . allocator () );
11
+ var myString = String .init (std . testing . allocator );
17
12
defer myString .deinit ();
18
13
19
14
// Use functions provided
@@ -26,13 +21,8 @@ test "Basic Usage" {
26
21
}
27
22
28
23
test "String Tests" {
29
- // Allocator for the String
30
- const page_allocator = std .heap .page_allocator ;
31
- var arena = std .heap .ArenaAllocator .init (page_allocator );
32
- defer arena .deinit ();
33
-
34
24
// This is how we create the String
35
- var myStr = String .init (arena . allocator () );
25
+ var myStr = String .init (std . testing . allocator );
36
26
defer myStr .deinit ();
37
27
38
28
// allocate & capacity
@@ -123,15 +113,16 @@ test "String Tests" {
123
113
try expectEqualStrings (myStr .split ("💯" , 5 ).? , "Hello" );
124
114
try expectEqualStrings (myStr .split ("💯" , 6 ).? , "" );
125
115
126
- var splitStr = String .init (arena . allocator () );
116
+ var splitStr = String .init (std . testing . allocator );
127
117
defer splitStr .deinit ();
128
118
129
119
try splitStr .concat ("variable='value'" );
130
120
try expectEqualStrings (splitStr .split ("=" , 0 ).? , "variable" );
131
121
try expectEqualStrings (splitStr .split ("=" , 1 ).? , "'value'" );
132
122
133
123
// splitAll
134
- const splitAllStr = try String .init_with_contents (arena .allocator (), "THIS IS A TEST" );
124
+ var splitAllStr = try String .init_with_contents (std .testing .allocator , "THIS IS A TEST" );
125
+ defer splitAllStr .deinit ();
135
126
const splitAllSlices = try splitAllStr .splitAll (" " );
136
127
137
128
try expectEqual (splitAllSlices .len , 5 );
@@ -149,7 +140,10 @@ test "String Tests" {
149
140
try expectEqualStrings (newSplit .? .str (), "variable" );
150
141
151
142
// splitAllToStrings
152
- const splitAllStrings = try splitAllStr .splitAllToStrings (" " );
143
+ var splitAllStrings = try splitAllStr .splitAllToStrings (" " );
144
+ defer for (splitAllStrings ) | * str | {
145
+ str .deinit ();
146
+ };
153
147
154
148
try expectEqual (splitAllStrings .len , 5 );
155
149
try expectEqualStrings (splitAllStrings [0 ].str (), "THIS" );
@@ -161,8 +155,12 @@ test "String Tests" {
161
155
// lines
162
156
const lineSlice = "Line0\r \n Line1\n Line2" ;
163
157
164
- var lineStr = try String .init_with_contents (arena .allocator (), lineSlice );
158
+ var lineStr = try String .init_with_contents (std .testing .allocator , lineSlice );
159
+ defer lineStr .deinit ();
165
160
var linesSlice = try lineStr .lines ();
161
+ defer for (linesSlice ) | * str | {
162
+ str .deinit ();
163
+ };
166
164
167
165
try expectEqual (linesSlice .len , 3 );
168
166
try expect (linesSlice [0 ].cmp ("Line0" ));
@@ -193,7 +191,7 @@ test "String Tests" {
193
191
// owned
194
192
const mySlice = try myStr .toOwned ();
195
193
try expectEqualStrings (mySlice .? , "This is a Test!" );
196
- arena . allocator () .free (mySlice .? );
194
+ std . testing . allocator .free (mySlice .? );
197
195
198
196
// StringIterator
199
197
var i : usize = 0 ;
@@ -217,23 +215,16 @@ test "String Tests" {
217
215
}
218
216
219
217
test "init with contents" {
220
- // Allocator for the String
221
- const page_allocator = std .heap .page_allocator ;
222
- var arena = std .heap .ArenaAllocator .init (page_allocator );
223
- defer arena .deinit ();
224
-
225
218
const initial_contents = "String with initial contents!" ;
226
219
227
220
// This is how we create the String with contents at the start
228
- var myStr = try String .init_with_contents (arena .allocator (), initial_contents );
221
+ var myStr = try String .init_with_contents (std .testing .allocator , initial_contents );
222
+ defer myStr .deinit ();
229
223
try expectEqualStrings (myStr .str (), initial_contents );
230
224
}
231
225
232
226
test "startsWith Tests" {
233
- var arena = ArenaAllocator .init (std .heap .page_allocator );
234
- defer arena .deinit ();
235
-
236
- var myString = String .init (arena .allocator ());
227
+ var myString = String .init (std .testing .allocator );
237
228
defer myString .deinit ();
238
229
239
230
try myString .concat ("bananas" );
@@ -242,10 +233,7 @@ test "startsWith Tests" {
242
233
}
243
234
244
235
test "endsWith Tests" {
245
- var arena = ArenaAllocator .init (std .heap .page_allocator );
246
- defer arena .deinit ();
247
-
248
- var myString = String .init (arena .allocator ());
236
+ var myString = String .init (std .testing .allocator );
249
237
defer myString .deinit ();
250
238
251
239
try myString .concat ("asbananas" );
@@ -259,11 +247,8 @@ test "endsWith Tests" {
259
247
}
260
248
261
249
test "replace Tests" {
262
- var arena = ArenaAllocator .init (std .heap .page_allocator );
263
- defer arena .deinit ();
264
-
265
250
// Create your String
266
- var myString = String .init (arena . allocator () );
251
+ var myString = String .init (std . testing . allocator );
267
252
defer myString .deinit ();
268
253
269
254
try myString .concat ("hi,how are you" );
@@ -281,20 +266,14 @@ test "replace Tests" {
281
266
}
282
267
283
268
test "rfind Tests" {
284
- var arena = ArenaAllocator .init (std .heap .page_allocator );
285
- defer arena .deinit ();
286
-
287
- var myString = try String .init_with_contents (arena .allocator (), "💯hi💯💯hi💯💯hi💯" );
269
+ var myString = try String .init_with_contents (std .testing .allocator , "💯hi💯💯hi💯💯hi💯" );
288
270
defer myString .deinit ();
289
271
290
272
try expectEqual (myString .rfind ("hi" ), 9 );
291
273
}
292
274
293
275
test "toCapitalized Tests" {
294
- var arena = ArenaAllocator .init (std .heap .page_allocator );
295
- defer arena .deinit ();
296
-
297
- var myString = try String .init_with_contents (arena .allocator (), "love and be loved" );
276
+ var myString = try String .init_with_contents (std .testing .allocator , "love and be loved" );
298
277
defer myString .deinit ();
299
278
300
279
myString .toCapitalized ();
0 commit comments