Skip to content

Commit

Permalink
fix unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
rdunnington committed May 17, 2024
1 parent 2b17276 commit 9f86dff
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 10 deletions.
8 changes: 4 additions & 4 deletions src/definition.zig
Original file line number Diff line number Diff line change
Expand Up @@ -284,13 +284,13 @@ pub const Limits = struct {
// 0x06 n:u64 ⇒ i64, {min n, max ?}, 1 ;; from threads proposal
// 0x07 n:u64 m:u64 ⇒ i64, {min n, max m}, 1 ;; from threads proposal

const k_max_bytes_i32 = k_max_pages_i32 * MemoryDefinition.k_page_size;
const k_max_pages_i32 = std.math.powi(usize, 2, 16) catch unreachable;
pub const k_max_bytes_i32 = k_max_pages_i32 * MemoryDefinition.k_page_size;
pub const k_max_pages_i32 = std.math.powi(usize, 2, 16) catch unreachable;

// Technically the max bytes should be maxInt(u64), but that is wayyy more memory than PCs have available and
// is just a waste of virtual address space in the implementation. Instead we'll set the upper limit to 128GB.
const k_max_bytes_i64 = (1024 * 1024 * 1024 * 128);
const k_max_pages_i64 = k_max_bytes_i64 / MemoryDefinition.k_page_size;
pub const k_max_bytes_i64 = (1024 * 1024 * 1024 * 128);
pub const k_max_pages_i64 = k_max_bytes_i64 / MemoryDefinition.k_page_size;

fn decode(reader: anytype) !Limits {
const limit_type: u8 = try reader.readByte();
Expand Down
26 changes: 20 additions & 6 deletions src/tests.zig
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,26 @@ test "MemoryInstance.init" {
const limits = Limits{
.min = 0,
.max = null,
.limit_type = 0,
.limit_type = 0, // i32 index type
};
var memory = MemoryInstance.init(limits, null);
defer memory.deinit();
try expectEqual(memory.limits.min, 0);
try expectEqual(memory.limits.max, Limits.k_max_pages_i32);
try expectEqual(memory.size(), 0);
try expectEqual(memory.mem.Internal.items.len, 0);
}

{
const limits = Limits{
.min = 0,
.max = null,
.limit_type = 4, // i64 index type
};
var memory = MemoryInstance.init(limits, null);
defer memory.deinit();
try expectEqual(memory.limits.min, 0);
try expectEqual(memory.limits.max, MemoryInstance.k_max_pages);
try expectEqual(memory.limits.max, Limits.k_max_pages_i64);
try expectEqual(memory.size(), 0);
try expectEqual(memory.mem.Internal.items.len, 0);
}
Expand Down Expand Up @@ -70,8 +84,8 @@ test "MemoryInstance.Internal.grow" {
try expectEqual(memory.size(), 1);
try expectEqual(memory.grow(1), true);
try expectEqual(memory.size(), 2);
try expectEqual(memory.grow(MemoryInstance.k_max_pages - memory.size()), true);
try expectEqual(memory.size(), MemoryInstance.k_max_pages);
try expectEqual(memory.grow(Limits.k_max_pages_i32 - memory.size()), true);
try expectEqual(memory.size(), Limits.k_max_pages_i32);
}

{
Expand Down Expand Up @@ -104,8 +118,8 @@ test "MemoryInstance.Internal.growAbsolute" {
try expectEqual(memory.size(), 1);
try expectEqual(memory.growAbsolute(5), true);
try expectEqual(memory.size(), 5);
try expectEqual(memory.growAbsolute(MemoryInstance.k_max_pages), true);
try expectEqual(memory.size(), MemoryInstance.k_max_pages);
try expectEqual(memory.growAbsolute(Limits.k_max_pages_i32), true);
try expectEqual(memory.size(), Limits.k_max_pages_i32);
}

{
Expand Down

0 comments on commit 9f86dff

Please sign in to comment.