aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-08-23 02:30:52 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-08-23 02:30:52 -0700
commit945cd08931d70ada914d14c4ab886fcc4493eac1 (patch)
treeff6c067ea8c8ab5bdf73bbacfb4eda5ccd73e53b
parentafb6684782ffb35f6c750a57426c79ac762acc7b (diff)
downloadbun-945cd08931d70ada914d14c4ab886fcc4493eac1.tar.gz
bun-945cd08931d70ada914d14c4ab886fcc4493eac1.tar.zst
bun-945cd08931d70ada914d14c4ab886fcc4493eac1.zip
Fix bug with copyLowercase and add a test
Former-commit-id: 87946b9fecd8b3e75a5995f38311053ae54b0424
-rw-r--r--src/string_immutable.zig18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/string_immutable.zig b/src/string_immutable.zig
index 84b72343e..52b7e05ce 100644
--- a/src/string_immutable.zig
+++ b/src/string_immutable.zig
@@ -124,7 +124,7 @@ pub fn copyLowercase(in: string, out: []u8) string {
switch (c) {
'A'...'Z' => {
@setRuntimeSafety(false);
- @memcpy(out.ptr, in_slice.ptr, i);
+ @memcpy(out_slice.ptr, in_slice.ptr, i);
out_slice[i] = std.ascii.toLower(c);
const end = i + 1;
if (end >= out_slice.len) break :begin;
@@ -143,6 +143,22 @@ pub fn copyLowercase(in: string, out: []u8) string {
return out[0..in.len];
}
+test "copyLowercase" {
+ {
+ var in = "Hello, World!";
+ var out = std.mem.zeroes([in.len]u8);
+ var out_ = copyLowercase(in, &out);
+ try std.testing.expectEqualStrings(out_, "hello, world!");
+ }
+
+ {
+ var in = "_ListCache";
+ var out = std.mem.zeroes([in.len]u8);
+ var out_ = copyLowercase(in, &out);
+ try std.testing.expectEqualStrings(out_, "_listcache");
+ }
+}
+
test "StringOrTinyString" {
const correct: string = "helloooooooo";
const big = "wawaweewaverylargeihaveachairwawaweewaverylargeihaveachairwawaweewaverylargeihaveachairwawaweewaverylargeihaveachair";