diff --git a/conformance/src/utils.zig b/conformance/src/utils.zig index 4d1cb1cfaf..cf1189cd5e 100644 --- a/conformance/src/utils.zig +++ b/conformance/src/utils.zig @@ -122,7 +122,7 @@ pub fn createTransactionContext( .return_data = .{}, .accounts_resize_delta = 0, .compute_meter = instr_ctx.cu_avail, - .compute_budget = sig.runtime.ComputeBudget.default(instr_ctx.cu_avail), + .compute_budget = .init(instr_ctx.cu_avail), .custom_error = null, .log_collector = sig.runtime.LogCollector.default(), .rent = sysvar_cache.get(sysvar.Rent) catch sysvar.Rent.DEFAULT, diff --git a/src/accountsdb/db.zig b/src/accountsdb/db.zig index 481cbe7491..ffca2f4323 100644 --- a/src/accountsdb/db.zig +++ b/src/accountsdb/db.zig @@ -3512,7 +3512,7 @@ test "write and read an account - basic" { defer accounts_db.deinit(); defer dir.cleanup(); - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const pubkey = Pubkey.initRandom(prng.random()); var data = [_]u8{ 1, 2, 3 }; const test_account = Account{ @@ -3547,7 +3547,7 @@ test "write and read an account (write single + read with ancestors)" { defer accounts_db.deinit(); defer dir.cleanup(); - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const pubkey = Pubkey.initRandom(prng.random()); var data = [_]u8{ 1, 2, 3 }; @@ -3836,7 +3836,7 @@ test "generate snapshot & update gossip snapshot hashes" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(123); // TODO: use `std.testing.random_seed` when we update + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var tmp_dir_root = std.testing.tmpDir(.{}); @@ -4300,7 +4300,7 @@ pub const BenchmarkAccountsDB = struct { std.math.ceilPowerOfTwo(usize, total_n_accounts) catch total_n_accounts, ); - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var pubkeys = try allocator.alloc(Pubkey, n_accounts); @@ -4497,7 +4497,7 @@ test "read/write benchmark disk" { test "insert multiple accounts on same slot" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // Initialize empty accounts db @@ -4578,7 +4578,7 @@ fn expectedAccountSharedDataEqualsAccount( test "insert multiple accounts on multiple slots" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var accounts_db, var tmp_dir = try AccountsDB.initForTest(allocator); @@ -4617,7 +4617,7 @@ test "insert multiple accounts on multiple slots" { test "insert account on multiple slots" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var accounts_db, var tmp_dir = try AccountsDB.initForTest(allocator); @@ -4666,7 +4666,7 @@ test "insert account on multiple slots" { test "missing ancestor returns null" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var accounts_db, var tmp_dir = try AccountsDB.initForTest(allocator); @@ -4688,7 +4688,7 @@ test "missing ancestor returns null" { test "overwrite account in same slot" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var accounts_db, var tmp_dir = try AccountsDB.initForTest(allocator); @@ -4721,7 +4721,7 @@ test "overwrite account in same slot" { test "insert many duplicate individual accounts, get latest with ancestors" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var accounts_db, var tmp_dir = try AccountsDB.initForTest(allocator); defer tmp_dir.cleanup(); diff --git a/src/accountsdb/manager.zig b/src/accountsdb/manager.zig index 10af278ed5..41e648f3c5 100644 --- a/src/accountsdb/manager.zig +++ b/src/accountsdb/manager.zig @@ -132,7 +132,7 @@ pub fn onSlotRooted( // TODO: get rid of this once `generateFullSnapshot` can actually // derive this data correctly by itdb. - var prng = std.Random.DefaultPrng.init(1234); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var tmp_bank_fields = try BankFields.initRandom(allocator, prng.random(), 128); defer tmp_bank_fields.deinit(allocator); @@ -944,7 +944,7 @@ test "flushing slots works" { }); defer accounts_db.deinit(); - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const n_accounts = 3; @@ -1005,7 +1005,7 @@ test "purge accounts in cache works" { }); defer accounts_db.deinit(); - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const n_accounts = 3; @@ -1063,7 +1063,7 @@ test "clean to shrink account file works with zero-lamports" { defer accounts_db.deinit(); defer dir.cleanup(); - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const n_accounts = 10; @@ -1139,7 +1139,7 @@ test "clean to shrink account file works - basic" { defer accounts_db.deinit(); defer dir.cleanup(); - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const n_accounts = 10; @@ -1219,7 +1219,7 @@ test "full clean account file works" { }); defer accounts_db.deinit(); - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const n_accounts = 3; @@ -1337,7 +1337,7 @@ test "shrink account file works" { }); defer accounts_db.deinit(); - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const n_accounts = 10; @@ -1481,7 +1481,7 @@ test "shrink account file works" { test "onSlotRooted basic" { const allocator = std.testing.allocator; const logger: Logger = .noop; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var tmp_dir_root = std.testing.tmpDir(.{}); @@ -1543,7 +1543,7 @@ test "onSlotRooted basic" { test "onSlotRooted zero_lamports" { const allocator = std.testing.allocator; const logger: Logger = .noop; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var tmp_dir_root = std.testing.tmpDir(.{}); @@ -1580,7 +1580,7 @@ test "onSlotRooted zero_lamports" { test "onSlotRooted shrink and delete" { const allocator = std.testing.allocator; const logger: Logger = .noop; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var tmp_dir_root = std.testing.tmpDir(.{}); @@ -1661,7 +1661,7 @@ test "onSlotRooted shrink and delete" { test "snapshot generation happens without error" { const allocator = std.testing.allocator; const logger: Logger = .noop; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var tmp_dir_root = std.testing.tmpDir(.{ .iterate = true }); diff --git a/src/accountsdb/snapshot/download.zig b/src/accountsdb/snapshot/download.zig index b9e5f2653f..88828448c3 100644 --- a/src/accountsdb/snapshot/download.zig +++ b/src/accountsdb/snapshot/download.zig @@ -664,7 +664,7 @@ test "accounts_db.download: test remove untrusted peers" { var table = try GossipTable.init(allocator, allocator); defer table.deinit(); - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const my_shred_version: usize = 19; @@ -740,7 +740,7 @@ test "accounts_db.download: test finding peers" { var table = try GossipTable.init(allocator, allocator); defer table.deinit(); - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const my_shred_version: usize = 19; diff --git a/src/accountsdb/swiss_map.zig b/src/accountsdb/swiss_map.zig index 79897ea13e..fc06054609 100644 --- a/src/accountsdb/swiss_map.zig +++ b/src/accountsdb/swiss_map.zig @@ -181,10 +181,10 @@ pub fn SwissMapUnmanaged( memory.len / (@sizeOf([GROUP_SIZE]KeyValue) + @sizeOf([GROUP_SIZE]State)); const group_size = n_groups * @sizeOf([GROUP_SIZE]KeyValue); - const group_ptr: [*][GROUP_SIZE]KeyValue = @alignCast(@ptrCast(memory.ptr)); + const group_ptr: [*][GROUP_SIZE]KeyValue = @ptrCast(@alignCast(memory.ptr)); const groups = group_ptr[0..n_groups]; const states_ptr: [*]@Vector(GROUP_SIZE, u8) = - @alignCast(@ptrCast(memory.ptr + group_size)); + @ptrCast(@alignCast(memory.ptr + group_size)); const states = states_ptr[0..n_groups]; self._capacity = n_groups * GROUP_SIZE; @@ -226,10 +226,10 @@ pub fn SwissMapUnmanaged( errdefer comptime unreachable; @memset(memory, 0); - const group_ptr: [*][GROUP_SIZE]KeyValue = @alignCast(@ptrCast(memory.ptr)); + const group_ptr: [*][GROUP_SIZE]KeyValue = @ptrCast(@alignCast(memory.ptr)); const groups = group_ptr[0..n_groups]; const states_ptr: [*]@Vector(GROUP_SIZE, u8) = - @alignCast(@ptrCast(memory.ptr + group_size)); + @ptrCast(@alignCast(memory.ptr + group_size)); const states = states_ptr[0..n_groups]; self._capacity = n_groups * GROUP_SIZE; @@ -250,10 +250,10 @@ pub fn SwissMapUnmanaged( errdefer comptime unreachable; @memset(memory, 0); - const group_ptr: [*][GROUP_SIZE]KeyValue = @alignCast(@ptrCast(memory.ptr)); + const group_ptr: [*][GROUP_SIZE]KeyValue = @ptrCast(@alignCast(memory.ptr)); const groups = group_ptr[0..n_groups]; const states_ptr: [*]@Vector(GROUP_SIZE, u8) = - @alignCast(@ptrCast(memory.ptr + group_size)); + @ptrCast(@alignCast(memory.ptr + group_size)); const states = states_ptr[0..n_groups]; var new_self = Self{ @@ -740,7 +740,7 @@ fn generateData(allocator: std.mem.Allocator, n_accounts: usize) !struct { []accounts_db.index.AccountRef, []sig.core.Pubkey, } { - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const account_refs = try allocator.alloc(accounts_db.index.AccountRef, n_accounts); diff --git a/src/cmd.zig b/src/cmd.zig index 2e851bb176..44e9d008d2 100644 --- a/src/cmd.zig +++ b/src/cmd.zig @@ -1509,10 +1509,7 @@ fn createSnapshot(allocator: std.mem.Allocator, cfg: config.Cmd) !void { _ = try accounts_db.generateFullSnapshot(.{ .target_slot = slot, .bank_fields = &loaded_snapshot.combined_manifest.full.bank_fields, - .lamports_per_signature = lps: { - var prng = std.Random.DefaultPrng.init(1234); - break :lps prng.random().int(u64); - }, + .lamports_per_signature = 123_456_567, // TODO: make this a real number .old_snapshot_action = .delete_old, }); } diff --git a/src/consensus/fork_choice.zig b/src/consensus/fork_choice.zig index 6a1dd51bc9..611e45486f 100644 --- a/src/consensus/fork_choice.zig +++ b/src/consensus/fork_choice.zig @@ -2104,7 +2104,7 @@ test "HeaviestSubtreeForkChoice.propagateNewLeaf" { try std.testing.expectEqual(9, fork_choice.deepestSlot(&item).?.slot); } - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const stake: u64 = 100; const vote_pubkeys = [_]Pubkey{ @@ -2246,7 +2246,7 @@ test "HeaviestSubtreeForkChoice.propagateNewLeaf2" { try std.testing.expectEqual(2, fork_choice.heaviestOverallSlot().slot); // Add a vote for slot 4, so leaf 6 should be the best again - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const stake: u64 = 100; const vote_pubkeys = [_]Pubkey{ @@ -2292,7 +2292,7 @@ test "HeaviestSubtreeForkChoice.setRootAndAddOutdatedVotes" { var fork_choice = try forkChoiceForTest(test_allocator, fork_tuples[0..]); defer fork_choice.deinit(); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const stake: u64 = 100; const vote_pubkeys = [_]Pubkey{ @@ -2648,7 +2648,7 @@ test "HeaviestSubtreeForkChoice.isHeaviestChild" { // [Agave] https://github.com/anza-xyz/agave/blob/92b11cd2eef1d3f5434d6af702f7d7a85ffcfca9/core/src/consensus/heaviest_subtree_fork_choice.rs#L1871 test "HeaviestSubtreeForkChoice.addNewLeafSlot_duplicate" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const duplicate_fork = try setupDuplicateForks(); @@ -2977,7 +2977,7 @@ test "HeaviestSubtreeForkChoice.heaviestSlotOnSameVotedFork_missing_candidate" { // Analogous to [test_generate_update_operations](https://github.com/anza-xyz/agave/blob/fac7555c94030ee08820261bfd53f4b3b4d0112e/core/src/consensus/heaviest_subtree_fork_choice.rs#L2312) test "HeaviestSubtreeForkChoice.generateUpdateOperations" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const stake = 100; const vote_pubkeys = [_]Pubkey{ @@ -3220,7 +3220,7 @@ test "HeaviestSubtreeForkChoice.generateUpdateOperations" { // Analogous to [add_root_parent](https://github.com/anza-xyz/agave/blob/fac7555c94030ee08820261bfd53f4b3b4d0112e/core/src/consensus/heaviest_subtree_fork_choice.rs#L426) test "HeaviestSubtreeForkChoice.addRootParent" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const vote_pubkeys = [_]Pubkey{Pubkey.initRandom(random)}; // Build fork structure: @@ -3314,7 +3314,7 @@ test "HeaviestSubtreeForkChoice.addRootParent" { // Analogous to [test_add_votes](https://github.com/anza-xyz/agave/blob/fac7555c94030ee08820261bfd53f4b3b4d0112e/core/src/consensus/heaviest_subtree_fork_choice.rs#L2493) test "HeaviestSubtreeForkChoice.addVotes" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const stake: u64 = 100; const vote_pubkeys = [_]Pubkey{ @@ -3365,7 +3365,7 @@ test "HeaviestSubtreeForkChoice.addVotes" { // Analogous to [test_add_votes_duplicate_greater_hash_ignored](https://github.com/anza-xyz/agave/blob/fac7555c94030ee08820261bfd53f4b3b4d0112e/core/src/consensus/heaviest_subtree_fork_choice.rs#L2616) test "HeaviestSubtreeForkChoice.addVotesDuplicateGreaterHashIgnored" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const vote_pubkeys = [_]Pubkey{ Pubkey.initRandom(random), @@ -3462,7 +3462,7 @@ test "HeaviestSubtreeForkChoice.addVotesDuplicateGreaterHashIgnored" { // Analogous to [test_add_votes_duplicate_smaller_hash_prioritized](https://github.com/anza-xyz/agave/blob/fac7555c94030ee08820261bfd53f4b3b4d0112e/core/src/consensus/heaviest_subtree_fork_choice.rs#L2704) test "HeaviestSubtreeForkChoice.addVotesDuplicateSmallerHashPrioritized" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const vote_pubkeys = [_]Pubkey{ Pubkey.initRandom(random), @@ -3580,7 +3580,7 @@ test "HeaviestSubtreeForkChoice.addVotesDuplicateSmallerHashPrioritized" { // Analogous to [test_add_votes_duplicate_then_outdated](https://github.com/anza-xyz/agave/blob/fac7555c94030ee08820261bfd53f4b3b4d0112e/core/src/consensus/heaviest_subtree_fork_choice.rs#L2821) test "HeaviestSubtreeForkChoice.addVotesDuplicateThenOutdated" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const vote_pubkeys = [_]Pubkey{ Pubkey.initRandom(random), @@ -3719,7 +3719,7 @@ test "HeaviestSubtreeForkChoice.addVotesDuplicateThenOutdated" { // Analogous to [test_add_votes_duplicate_tie](https://github.com/anza-xyz/agave/blob/fac7555c94030ee08820261bfd53f4b3b4d0112e/core/src/consensus/heaviest_subtree_fork_choice.rs#L2518) test "HeaviestSubtreeForkChoice.addVotesDuplicateTie" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const vote_pubkeys = [_]Pubkey{ Pubkey.initRandom(random), @@ -3823,7 +3823,7 @@ test "HeaviestSubtreeForkChoice.addVotesDuplicateTie" { // Analogous to [test_add_votes_duplicate_zero_stake](https://github.com/anza-xyz/agave/blob/fac7555c94030ee08820261bfd53f4b3b4d0112e/core/src/consensus/heaviest_subtree_fork_choice.rs#L2947) test "HeaviestSubtreeForkChoice.addVotesDuplicateZeroStake" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const vote_pubkeys = [_]Pubkey{ Pubkey.initRandom(random), @@ -3903,7 +3903,7 @@ test "HeaviestSubtreeForkChoice.addVotesDuplicateZeroStake" { // Analogous to [test_is_best_child](https://github.com/anza-xyz/agave/blob/fac7555c94030ee08820261bfd53f4b3b4d0112e/core/src/consensus/heaviest_subtree_fork_choice.rs#L3015) test "HeaviestSubtreeForkChoice.isBestChild" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const vote_pubkeys = [_]Pubkey{ Pubkey.initRandom(random), @@ -4013,7 +4013,7 @@ test "HeaviestSubtreeForkChoice.isBestChild" { // Analogous to [test_mark_invalid_then_add_new_heavier_duplicate_slot](https://github.com/anza-xyz/agave/blob/fac7555c94030ee08820261bfd53f4b3b4d0112e/core/src/consensus/heaviest_subtree_fork_choice.rs#L3589) test "HeaviestSubtreeForkChoice.markInvalidThenAddNewHeavierDuplicateSlot" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const vote_pubkeys = [_]Pubkey{ Pubkey.initRandom(random), @@ -4079,7 +4079,7 @@ test "HeaviestSubtreeForkChoice.markInvalidThenAddNewHeavierDuplicateSlot" { // Analogous to [test_mark_valid_invalid_forks](https://github.com/anza-xyz/agave/blob/fac7555c94030ee08820261bfd53f4b3b4d0112e/core/src/consensus/heaviest_subtree_fork_choice.rs#L3383) test "HeaviestSubtreeForkChoice.markValidInvalidForks" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const vote_pubkeys = [_]Pubkey{ Pubkey.initRandom(random), @@ -4226,7 +4226,7 @@ test "HeaviestSubtreeForkChoice.setRootAndAddVotes" { var fork_choice = try forkChoiceForTest(test_allocator, fork_tuples[0..]); defer fork_choice.deinit(); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const stake: u64 = 100; const vote_pubkeys = [_]Pubkey{ @@ -4308,7 +4308,7 @@ test "HeaviestSubtreeForkChoice.splitOffOnBestPath" { var fork_choice = try forkChoiceForTest(test_allocator, fork_tuples[0..]); defer fork_choice.deinit(); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const stake: u64 = 100; @@ -4393,7 +4393,7 @@ test "HeaviestSubtreeForkChoice.splitOffSimple" { var fork_choice = try forkChoiceForTest(test_allocator, fork_tuples[0..]); defer fork_choice.deinit(); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const stake: u64 = 100; @@ -4477,7 +4477,7 @@ test "HeaviestSubtreeForkChoice.splitOffSimple" { // Analogous to [test_split_off_subtree_with_dups](https://github.com/anza-xyz/agave/blob/fac7555c94030ee08820261bfd53f4b3b4d0112e/core/src/consensus/heaviest_subtree_fork_choice.rs#L4173) test "HeaviestSubtreeForkChoice.splitOffSubtreeWithDups" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const vote_pubkeys = [_]Pubkey{ Pubkey.initRandom(random), @@ -4575,7 +4575,7 @@ test "HeaviestSubtreeForkChoice.splitOffUnvoted" { var fork_choice = try forkChoiceForTest(test_allocator, fork_tuples[0..]); defer fork_choice.deinit(); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const stake: u64 = 100; @@ -4650,7 +4650,7 @@ test "HeaviestSubtreeForkChoice.splitOffUnvoted" { // Analogous to [test_split_off_with_dups](https://github.com/anza-xyz/agave/blob/fac7555c94030ee08820261bfd53f4b3b4d0112e/core/src/consensus/heaviest_subtree_fork_choice.rs#L4118) test "HeaviestSubtreeForkChoice.splitOffWithDups" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const vote_pubkeys = [_]Pubkey{ Pubkey.initRandom(random), @@ -4744,7 +4744,7 @@ test "HeaviestSubtreeForkChoice.gossipVoteDoesntAffectForkChoice" { var fork_choice = try forkChoiceForTest(test_allocator, fork_tuples[0..]); defer fork_choice.deinit(); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const stake: u64 = 100; @@ -4958,7 +4958,7 @@ pub fn setupDuplicateForks() !struct { // │ └── (10) // ├── (10) // └── (10) - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // Build fork structure var fork_choice = try test_allocator.create(ForkChoice); diff --git a/src/consensus/latest_validator_votes.zig b/src/consensus/latest_validator_votes.zig index 6e796d5193..1fcbfc913e 100644 --- a/src/consensus/latest_validator_votes.zig +++ b/src/consensus/latest_validator_votes.zig @@ -186,7 +186,7 @@ fn runFrozenBanksCheckAddVoteIsReplayTest( @compileError("runFrozenBanksCheckAddVoteIsReplayTest should only be called in test mode"); } const testing = std.testing; - var prng = std.Random.DefaultPrng.init(608159); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var latest_validator_votes: LatestValidatorVotes = .empty; @@ -433,7 +433,7 @@ fn runFrozenBanksTakeVotesDirtySet( if (!@import("builtin").is_test) { @compileError("runFrozenBanksTakeVotesDirtySet should only be called in test mode"); } - var prng = std.Random.DefaultPrng.init(608159); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var latest_validator_votes = LatestValidatorVotes.empty; @@ -559,7 +559,7 @@ test "latest validator votes take votes dirty set is not replay" { test "latest validator votes for frozen banks add replay and gossip vote" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(608159); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var latest_validator_votes = LatestValidatorVotes.empty; diff --git a/src/consensus/replay_tower.zig b/src/consensus/replay_tower.zig index cd6bbf17ac..a1f40b7847 100644 --- a/src/consensus/replay_tower.zig +++ b/src/consensus/replay_tower.zig @@ -1939,7 +1939,7 @@ test "is slot duplicate confirmed pass" { test "check_vote_threshold_forks" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // Create the ancestor relationships var ancestors = std.AutoArrayHashMapUnmanaged(u64, Ancestors).empty; @@ -2075,7 +2075,7 @@ test "check_vote_threshold_forks" { test "collect vote lockouts root" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const votes = try allocator.alloc(u64, MAX_LOCKOUT_HISTORY); for (votes, 0..) |*slot, i| { @@ -2202,7 +2202,7 @@ test "collect vote lockouts root" { test "collect vote lockouts sums" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(42); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // two accounts voting for slot 0 with 1 token staked @@ -2769,7 +2769,7 @@ test "default thresholds" { const allocator = std.testing.allocator; // Build a minimal fork with just the root slot present - var prng = std.Random.DefaultPrng.init(12345); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ .slot = 0, .hash = Hash.initRandom(random) }; @@ -3803,7 +3803,7 @@ const Stakes = sig.core.Stakes; test "unconfirmed duplicate slots and lockouts for non heaviest fork" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ .slot = 0, .hash = Hash.initRandom(random) }; diff --git a/src/consensus/vote_listener.zig b/src/consensus/vote_listener.zig index 6981316dff..ebeae75fc0 100644 --- a/src/consensus/vote_listener.zig +++ b/src/consensus/vote_listener.zig @@ -1625,14 +1625,14 @@ fn newTowerSyncTransaction( // TODO: port applicable tests from https://github.com/anza-xyz/agave/blob/182823ee353ee64fde230dbad96d8e24b6cd065a/core/src/cluster_info_vote_listener.rs test "vote_parser.parseVoteTransaction" { - var prng = std.Random.DefaultPrng.init(42); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); try vote_parser.testParseVoteTransaction(null, random); try vote_parser.testParseVoteTransaction(Hash.generateSha256(&[_]u8{42}), random); } test "vote_parser.parseSanitizedVoteTransaction" { - var prng = std.Random.DefaultPrng.init(43); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); try vote_parser.testParseSanitizedVoteTransaction(null, random); try vote_parser.testParseSanitizedVoteTransaction(Hash.generateSha256(&[_]u8{43}), random); @@ -1772,7 +1772,7 @@ test "simple usage" { test "check trackers" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(123); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const node_keypair: sig.identity.KeyPair = try .generateDeterministic(@splat(1)); diff --git a/src/consensus/vote_tracker.zig b/src/consensus/vote_tracker.zig index 87ce314394..ef659dca86 100644 --- a/src/consensus/vote_tracker.zig +++ b/src/consensus/vote_tracker.zig @@ -378,7 +378,7 @@ pub const VoteStakeTracker = struct { test "VoteStakeTracker.addVotePubkey" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(21410); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const total_epoch_stake = 10; diff --git a/src/core/blockhash_queue.zig b/src/core/blockhash_queue.zig index 931ab4e3c3..f53b8ea036 100644 --- a/src/core/blockhash_queue.zig +++ b/src/core/blockhash_queue.zig @@ -187,7 +187,7 @@ pub const BlockhashQueue = struct { test "insert hash" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const max_age = 100; const last_hash = Hash.initRandom(prng.random()); @@ -227,7 +227,7 @@ test "reject old last hash" { test "queue init blockhash" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const last_hash = Hash.initRandom(prng.random()); @@ -242,7 +242,7 @@ test "queue init blockhash" { test "len" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const max_age = 10; @@ -266,7 +266,7 @@ test "len" { test "get hash age" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const max_age = 10; @@ -298,7 +298,7 @@ test "get hash age" { test "is hash valid for age" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const max_age = 10; @@ -327,7 +327,7 @@ test "is hash valid for age" { test "get hash info if valid" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const max_age = 10; @@ -365,7 +365,7 @@ test "get hash info if valid" { test "initialise with genesis hash" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const max_age = 2; const genesis_hash = Hash.initRandom(prng.random()); diff --git a/src/core/features.zig b/src/core/features.zig index 6a9c715ae8..9512a069a9 100644 --- a/src/core/features.zig +++ b/src/core/features.zig @@ -10,7 +10,7 @@ const ZonInfo = struct { activated_on_all_clusters: bool = false, reverted: bool = false, }; -pub const features: []const ZonInfo = @import("features.zon"); +const features: []const ZonInfo = @import("features.zon"); pub const NUM_FEATURES = features.len; pub const Feature = @Type(.{ .@"enum" = .{ diff --git a/src/core/hash.zig b/src/core/hash.zig index 8354429af1..991c8f2b4e 100644 --- a/src/core/hash.zig +++ b/src/core/hash.zig @@ -223,7 +223,7 @@ const expectEqual = std.testing.expectEqual; // Ensure that if you mix-in or mix-out with the identity, you get the original value test "identity" { - var rng = std.Random.DefaultPrng.init(0); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); const a = LtHash.initRandom(rng.random()); try expectEqual(a, a.add(LtHash.IDENTITY)); try expectEqual(a, a.sub(LtHash.IDENTITY)); @@ -231,7 +231,7 @@ test "identity" { // Ensure that if you mix-in then mix-out a hash, you get the original value test "inverse" { - var rng = std.Random.DefaultPrng.init(1); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); const a = LtHash.initRandom(rng.random()); const b = LtHash.initRandom(rng.random()); try expectEqual(a, a.add(b).sub(b)); @@ -240,7 +240,7 @@ test "inverse" { // Ensure that mixing is commutative test "commutative" { - var rng = std.Random.DefaultPrng.init(2); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); const a = LtHash.initRandom(rng.random()); const b = LtHash.initRandom(rng.random()); try expectEqual(a.add(b), b.add(a)); @@ -248,7 +248,7 @@ test "commutative" { // Ensure that mixing is associative test "associative" { - var rng = std.Random.DefaultPrng.init(3); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); const a = LtHash.initRandom(rng.random()); const b = LtHash.initRandom(rng.random()); const c = LtHash.initRandom(rng.random()); @@ -257,7 +257,7 @@ test "associative" { // Ensure that mixing out respects distribution test "distribute" { - var rng = std.Random.DefaultPrng.init(4); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); const a = LtHash.initRandom(rng.random()); const b = LtHash.initRandom(rng.random()); const c = LtHash.initRandom(rng.random()); diff --git a/src/core/poh.zig b/src/core/poh.zig index a92a9554ed..64fc5bd1b8 100644 --- a/src/core/poh.zig +++ b/src/core/poh.zig @@ -121,7 +121,7 @@ pub fn testPoh(valid_signatures: bool) !struct { Poh, std.BoundedArray(sig.core. const Transaction = sig.core.Transaction; const hashTransactions = sig.core.entry.hashTransactions; - var rng = std.Random.DefaultPrng.init(0); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); var a_transaction = try Transaction.initRandom(allocator, rng.random()); if (!valid_signatures) { diff --git a/src/core/stake.zig b/src/core/stake.zig index 89a0073bd2..38176bf68f 100644 --- a/src/core/stake.zig +++ b/src/core/stake.zig @@ -838,7 +838,7 @@ const TestStakedNodeAccounts = struct { test "stakes basic" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); inline for (.{ StakesType.delegation, @@ -940,7 +940,7 @@ test "stakes vote account disappear reappear" { const VoteState = sig.runtime.program.vote.state.VoteState; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); inline for (.{ @@ -1055,7 +1055,7 @@ test "stakes vote account disappear reappear" { test "get stake effective and activating" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const delegation = Delegation{ @@ -1089,7 +1089,7 @@ test "get stake effective and activating" { test "get stake state" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const delegation = Delegation{ diff --git a/src/core/status_cache.zig b/src/core/status_cache.zig index 3e655885b9..c3bd8f4eba 100644 --- a/src/core/status_cache.zig +++ b/src/core/status_cache.zig @@ -259,7 +259,7 @@ test "status cache empty" { test "status cache find with ancestor fork" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const signature = sig.core.Signature.ZEROES; @@ -283,7 +283,7 @@ test "status cache find with ancestor fork" { test "status cache find without ancestor fork" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const signature = sig.core.Signature.ZEROES; @@ -304,7 +304,7 @@ test "status cache find without ancestor fork" { test "status cache find with root ancestor fork" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const signature = sig.core.Signature.ZEROES; @@ -326,7 +326,7 @@ test "status cache find with root ancestor fork" { test "status cache insert picks latest blockhash fork" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const signature = sig.core.Signature.ZEROES; @@ -352,7 +352,7 @@ test "status cache insert picks latest blockhash fork" { test "status cache root expires" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const signature = sig.core.Signature.ZEROES; diff --git a/src/core/vote_accounts.zig b/src/core/vote_accounts.zig index b5524f0e47..78ba760ba1 100644 --- a/src/core/vote_accounts.zig +++ b/src/core/vote_accounts.zig @@ -507,7 +507,7 @@ pub fn calculateStakedNodes( test "vote account from account" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var account = try createRandomVoteAccount(allocator, random, Pubkey.initRandom(random)); @@ -568,7 +568,7 @@ test "vote account from account" { test "vote account serialize and deserialize" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var account = try createRandomVoteAccount(allocator, random, Pubkey.initRandom(random)); @@ -602,7 +602,7 @@ test "vote accounts serialize and deserialize" { const Stakes = sig.core.Stakes; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var vote_accounts = VoteAccounts{}; @@ -685,7 +685,7 @@ test "staked nodes" { const Stakes = sig.core.Stakes; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var accounts = try createRandomVoteAccounts( @@ -799,7 +799,7 @@ test "staked nodes update" { const Stakes = sig.core.Stakes; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var stakes = try Stakes(.delegation).init(allocator); @@ -920,7 +920,7 @@ test "staked nodes zero stake" { const Stakes = sig.core.Stakes; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var stakes = try Stakes(.delegation).init(allocator); diff --git a/src/geyser/benchmark.zig b/src/geyser/benchmark.zig index 1bea27e8aa..2b1e701d97 100644 --- a/src/geyser/benchmark.zig +++ b/src/geyser/benchmark.zig @@ -18,7 +18,7 @@ pub fn streamWriter(allocator: std.mem.Allocator, exit: *std.atomic.Value(bool)) try geyser_writer.spawnIOLoop(); - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // PERF: one allocation slice diff --git a/src/geyser/core.zig b/src/geyser/core.zig index 1dffbd1363..ad9e84a495 100644 --- a/src/geyser/core.zig +++ b/src/geyser/core.zig @@ -525,7 +525,7 @@ test "streaming accounts" { const allocator = std.testing.allocator; const batch_len = 2; - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // generate some data @@ -624,7 +624,7 @@ test "buf resizing" { const allocator = std.testing.allocator; const batch_len = 2; - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // generate some data diff --git a/src/gossip/active_set.zig b/src/gossip/active_set.zig index e20e7cac6c..2682386705 100644 --- a/src/gossip/active_set.zig +++ b/src/gossip/active_set.zig @@ -27,16 +27,14 @@ pub const ActiveSet = struct { peers: std.AutoHashMap(Pubkey, Bloom), allocator: std.mem.Allocator, - const Self = @This(); - - pub fn init(allocator: std.mem.Allocator) Self { - return Self{ + pub fn init(allocator: std.mem.Allocator) ActiveSet { + return .{ .peers = std.AutoHashMap(Pubkey, Bloom).init(allocator), .allocator = allocator, }; } - pub fn deinit(self: *Self) void { + pub fn deinit(self: *ActiveSet) void { var iter = self.peers.iterator(); while (iter.next()) |entry| { entry.value_ptr.deinit(); @@ -44,12 +42,12 @@ pub const ActiveSet = struct { self.peers.deinit(); } - pub fn len(self: *const Self) u32 { + pub fn len(self: *const ActiveSet) u32 { return self.peers.count(); } pub fn initRotate( - self: *Self, + self: *ActiveSet, random: std.Random, peers: []ThreadSafeContactInfo, ) error{OutOfMemory}!void { @@ -60,9 +58,7 @@ pub const ActiveSet = struct { } self.peers.clearRetainingCapacity(); - if (peers.len == 0) { - return; - } + if (peers.len == 0) return; const size = @min(peers.len, NUM_ACTIVE_SET_ENTRIES); sig.rand.shuffleFocusedRange(random, ThreadSafeContactInfo, peers, 0, size); @@ -83,7 +79,7 @@ pub const ActiveSet = struct { } } - pub fn prune(self: *Self, from: Pubkey, origin: Pubkey) void { + pub fn prune(self: *ActiveSet, from: Pubkey, origin: Pubkey) void { // we only prune peers which we are sending push messages to if (self.peers.getEntry(from)) |entry| { const origin_bytes = origin.data; @@ -95,7 +91,7 @@ pub const ActiveSet = struct { /// while accounting for peers that have been pruned from /// the given origin Pubkey pub fn getFanoutPeers( - self: *const Self, + self: *const ActiveSet, allocator: std.mem.Allocator, origin: Pubkey, table: *const GossipTable, @@ -137,7 +133,7 @@ test "init/denit" { defer table.deinit(); // insert some contacts - var prng = std.Random.DefaultPrng.init(100); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var gossip_peers = try std.ArrayList(ThreadSafeContactInfo).initCapacity(alloc, 10); defer gossip_peers.deinit(); @@ -177,7 +173,7 @@ test "init/denit" { test "gracefully rotates with duplicate contact ids" { const alloc = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(100); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var gossip_peers = try std.ArrayList(ThreadSafeContactInfo).initCapacity(alloc, 10); defer gossip_peers.deinit(); diff --git a/src/gossip/data.zig b/src/gossip/data.zig index 6b33561cee..cf91812dc9 100644 --- a/src/gossip/data.zig +++ b/src/gossip/data.zig @@ -1663,7 +1663,7 @@ const RawOffsets = struct { }; test "new contact info" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var ci = ContactInfo.init(testing.allocator, Pubkey.initRandom(random), @as(u64, @intCast(std.time.microTimestamp())), 0); @@ -1691,7 +1691,7 @@ test "socketaddr bincode serialize matches rust" { } test "set & get socket on contact info" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var ci = ContactInfo.init(testing.allocator, Pubkey.initRandom(random), @as(u64, @intCast(std.time.microTimestamp())), 0); @@ -1876,7 +1876,7 @@ test "SocketEntry serializer works" { test "sig verify duplicateShreds" { var keypair = try KeyPair.generateDeterministic([_]u8{1} ** 32); const pubkey = Pubkey.fromPublicKey(&keypair.public_key); - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var data = DuplicateShred.initRandom(prng.random()); data.from = pubkey; @@ -1885,7 +1885,7 @@ test "sig verify duplicateShreds" { } test "sanitize GossipData" { - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); for (0..4) |i| { @@ -2035,7 +2035,7 @@ test "gossip data serialization matches rust" { } test "random gossip data" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var buf: [1000]u8 = undefined; @@ -2068,7 +2068,7 @@ test "random gossip data" { } test "LegacyContactInfo <-> ContactInfo roundtrip" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const start = LegacyContactInfo.initRandom(random); @@ -2080,7 +2080,7 @@ test "LegacyContactInfo <-> ContactInfo roundtrip" { } test "sanitize valid ContactInfo works" { - var prng = std.Random.DefaultPrng.init(871329); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const info = try ContactInfo.initRandom(std.testing.allocator, random, Pubkey.initRandom(random), 100, 123, 246); defer info.deinit(); @@ -2089,7 +2089,7 @@ test "sanitize valid ContactInfo works" { } test "sanitize invalid ContactInfo has error" { - var prng = std.Random.DefaultPrng.init(3414214); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const info = try ContactInfo.initRandom(std.testing.allocator, random, Pubkey.initRandom(random), 1_000_000_000_000_000, 123, 246); defer info.deinit(); @@ -2098,7 +2098,7 @@ test "sanitize invalid ContactInfo has error" { } test "sanitize valid NodeInstance works" { - var prng = std.Random.DefaultPrng.init(23523413); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const instance = NodeInstance.initRandom(random); const data = GossipData{ .NodeInstance = instance }; @@ -2106,7 +2106,7 @@ test "sanitize valid NodeInstance works" { } test "sanitize invalid NodeInstance has error" { - var prng = std.Random.DefaultPrng.init(524145234); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var instance = NodeInstance.initRandom(random); instance.wallclock = 1_000_000_000_487_283; @@ -2115,7 +2115,7 @@ test "sanitize invalid NodeInstance has error" { } test "sanitize valid SnapshotHashes works" { - var prng = std.Random.DefaultPrng.init(23523413); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var instance = SnapshotHashes.initRandom(random); instance.full.slot = 1000; @@ -2124,7 +2124,7 @@ test "sanitize valid SnapshotHashes works" { } test "sanitize invalid SnapshotHashes full slot has error" { - var prng = std.Random.DefaultPrng.init(524145234); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var instance = SnapshotHashes.initRandom(random); instance.full.slot = 1_000_000_000_487_283; @@ -2133,7 +2133,7 @@ test "sanitize invalid SnapshotHashes full slot has error" { } test "sanitize invalid SnapshotHashes incremental slot has error" { - var prng = std.Random.DefaultPrng.init(524145234); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var instance = SnapshotHashes.initRandom(random); instance.incremental = SnapshotHashes.IncrementalSnapshotsList.initSingle(.{ .slot = 1_000_000_000_487_283, .hash = Hash.ZEROES }); @@ -2142,7 +2142,7 @@ test "sanitize invalid SnapshotHashes incremental slot has error" { } test "sanitize SnapshotHashes full > incremental has error" { - var prng = std.Random.DefaultPrng.init(524145234); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var instance = SnapshotHashes.initRandom(random); instance.full.slot = 2; diff --git a/src/gossip/map.zig b/src/gossip/map.zig index 3c9b996d76..58aa9d6267 100644 --- a/src/gossip/map.zig +++ b/src/gossip/map.zig @@ -236,7 +236,7 @@ pub const Entry = struct { test "put and get" { const keypair = try std.crypto.sign.Ed25519.KeyPair.generateDeterministic([_]u8{1} ** 32); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var map = GossipMap{}; defer map.deinit(std.testing.allocator); @@ -267,7 +267,7 @@ test "put and get" { test "put, remove, and get" { const keypair = try std.crypto.sign.Ed25519.KeyPair.generateDeterministic([_]u8{1} ** 32); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var map = GossipMap{}; defer map.deinit(std.testing.allocator); @@ -312,7 +312,7 @@ test "put, remove, and get" { test "repeat add+remove" { const keypair = try std.crypto.sign.Ed25519.KeyPair.generateDeterministic([_]u8{1} ** 32); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var map = GossipMap{}; diff --git a/src/gossip/message.zig b/src/gossip/message.zig index 2c0464471d..3e544d4a82 100644 --- a/src/gossip/message.zig +++ b/src/gossip/message.zig @@ -102,7 +102,7 @@ pub fn sanitizeWallclock(wallclock: u64) !void { } test "push message serialization is predictable" { - var prng = DefaultPrng.init(0); + var prng = DefaultPrng.init(std.testing.random_seed); const pubkey = Pubkey.initRandom(prng.random()); var values = std.ArrayList(SignedGossipData).init(std.testing.allocator); defer values.deinit(); @@ -124,7 +124,7 @@ test "push message serialization is predictable" { test "ping message serializes and deserializes correctly" { var keypair = KeyPair.generate(); - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var original = GossipMessage{ .PingMessage = try Ping.initRandom(prng.random(), &keypair) }; var buf = [_]u8{0} ** 1232; @@ -141,7 +141,7 @@ test "ping message serializes and deserializes correctly" { test "test ping pong sig verify" { var keypair = KeyPair.generate(); - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var ping = try Ping.initRandom(prng.random(), &keypair); var msg = GossipMessage{ .PingMessage = ping }; try msg.verifySignature(); diff --git a/src/gossip/ping_pong.zig b/src/gossip/ping_pong.zig index 8a1e41b859..b8fb2764c0 100644 --- a/src/gossip/ping_pong.zig +++ b/src/gossip/ping_pong.zig @@ -169,7 +169,7 @@ pub const PingCache = struct { return null; } } - var prng = DefaultPrng.init(0); + var prng = DefaultPrng.init(std.testing.random_seed); const ping = Ping.initRandom(prng.random(), keypair) catch return null; var token_with_prefix = PING_PONG_HASH_PREFIX ++ ping.token; const hash = Hash.generateSha256(token_with_prefix[0..]); @@ -247,7 +247,7 @@ test "PingCache works" { ); defer ping_cache.deinit(); - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const the_node = PubkeyAndSocketAddr{ .pubkey = Pubkey.initRandom(random), .socket_addr = SocketAddr.UNSPECIFIED }; diff --git a/src/gossip/prune.zig b/src/gossip/prune.zig index edb318db24..1cf6bbdd3e 100644 --- a/src/gossip/prune.zig +++ b/src/gossip/prune.zig @@ -190,7 +190,7 @@ test "PruneData sig verify" { 121, 12, 227, 248, 199, 156, 253, 144, 175, 67, })); - var prng = DefaultPrng.init(0); + var prng = DefaultPrng.init(std.testing.random_seed); var prune = try PruneData.initRandom(prng.random(), &keypair); try prune.verify(); diff --git a/src/gossip/pull_request.zig b/src/gossip/pull_request.zig index 6bc214acb5..17bbb0921f 100644 --- a/src/gossip/pull_request.zig +++ b/src/gossip/pull_request.zig @@ -265,7 +265,7 @@ test "building pull filters" { // insert a some value const kp = try KeyPair.generateDeterministic([_]u8{1} ** 32); - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); for (0..64) |_| { diff --git a/src/gossip/pull_response.zig b/src/gossip/pull_response.zig index 2833a96d33..9ed44b8a2b 100644 --- a/src/gossip/pull_response.zig +++ b/src/gossip/pull_response.zig @@ -86,7 +86,7 @@ test "gossip.pull_response: test filtering values works" { // insert a some value const kp = try KeyPair.generateDeterministic([_]u8{1} ** 32); - var prng = std.Random.DefaultPrng.init(18); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var lg = gossip_table_rw.write(); diff --git a/src/gossip/service.zig b/src/gossip/service.zig index 08e5ec8740..b417232b8a 100644 --- a/src/gossip/service.zig +++ b/src/gossip/service.zig @@ -2427,7 +2427,7 @@ test "build messages startup and shutdown" { } test "handling prune messages" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const allocator = std.testing.allocator; var my_keypair = try KeyPair.generateDeterministic(@splat(1)); @@ -2503,7 +2503,7 @@ test "handling prune messages" { test "handling pull responses" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var my_keypair = try KeyPair.generateDeterministic(@splat(1)); var my_pubkey = Pubkey.fromPublicKey(&my_keypair.public_key); const contact_info = try localhostTestContactInfo(my_pubkey); @@ -2565,7 +2565,7 @@ test "handling pull responses" { test "handle old prune & pull request message" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var my_keypair = try KeyPair.generateDeterministic(@splat(1)); @@ -2663,7 +2663,7 @@ test "handle pull request" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var my_keypair = try KeyPair.generateDeterministic(@splat(1)); const my_pubkey = Pubkey.fromPublicKey(&my_keypair.public_key); var contact_info = try localhostTestContactInfo(my_pubkey); @@ -2774,7 +2774,7 @@ test "handle pull request" { test "test build prune messages and handle push messages" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var my_keypair = try KeyPair.generateDeterministic(@splat(1)); const my_pubkey = Pubkey.fromPublicKey(&my_keypair.public_key); const contact_info = try localhostTestContactInfo(my_pubkey); @@ -2853,7 +2853,7 @@ test "test build prune messages and handle push messages" { } test testBuildPullRequests { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const my_keypair = try KeyPair.generateDeterministic(.{1} ** 32); const my_pubkey = Pubkey.fromPublicKey(&my_keypair.public_key); @@ -2936,7 +2936,7 @@ fn testBuildPullRequests( test "test build push messages" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var my_keypair = try KeyPair.generateDeterministic(@splat(1)); const my_pubkey = Pubkey.fromPublicKey(&my_keypair.public_key); const contact_info = try localhostTestContactInfo(my_pubkey); @@ -3011,13 +3011,11 @@ test "test build push messages" { test "large push messages" { const allocator = std.testing.allocator; var prng = std.Random.DefaultPrng.init(91); - var my_keypair = try KeyPair.generateDeterministic(@splat(1)); - const my_pubkey = Pubkey.fromPublicKey(&my_keypair.public_key); - const contact_info = try localhostTestContactInfo(my_pubkey); - var test_logger = TestingLogger.init(std.testing.allocator, Logger.TEST_DEFAULT_LEVEL); + const my_keypair = KeyPair.generate(); + const my_pubkey = Pubkey.fromPublicKey(&my_keypair.public_key); - const logger = test_logger.logger("gossip.test"); + const contact_info = try localhostTestContactInfo(my_pubkey); var gossip_service = try GossipService.create( allocator, @@ -3025,7 +3023,7 @@ test "large push messages" { contact_info, my_keypair, null, - .from(logger), + .noop, ); defer { gossip_service.shutdown(); @@ -3034,19 +3032,18 @@ test "large push messages" { } // add some peers - var peers = ArrayList(ThreadSafeContactInfo).init(allocator); - defer { - peers.deinit(); - } + var peers: std.ArrayListUnmanaged(ThreadSafeContactInfo) = .empty; + defer peers.deinit(allocator); { var lock_guard = gossip_service.gossip_table_rw.write(); defer lock_guard.unlock(); + const count = if (sig.build_options.long_tests) 2_000 else 20; for (0..count) |_| { var keypair = KeyPair.generate(); const value = try SignedGossipData.randomWithIndex(prng.random(), &keypair, 0); // contact info _ = try lock_guard.mut().insert(value, getWallclockMs()); - try peers.append(ThreadSafeContactInfo.fromLegacyContactInfo(value.data.LegacyContactInfo)); + try peers.append(allocator, .fromLegacyContactInfo(value.data.LegacyContactInfo)); } } @@ -3099,7 +3096,7 @@ test "test packet verification" { packet_verifier_handle.join(); } - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var data = GossipData.randomFromIndex(prng.random(), 0); data.LegacyContactInfo.id = id; data.LegacyContactInfo.wallclock = 0; @@ -3293,7 +3290,7 @@ test "process contact info push packet" { test "init, exit, and deinit" { const gossip_address = SocketAddr.initIpv4(.{ 127, 0, 0, 1 }, 0); const my_keypair = KeyPair.generate(); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var contact_info = try LegacyContactInfo.initRandom(prng.random()).toContactInfo(std.testing.allocator); try contact_info.setSocket(.gossip, gossip_address); @@ -3402,7 +3399,7 @@ pub const BenchmarkGossipServiceGeneral = struct { const outgoing_channel = gossip_service.packet_incoming_channel; // generate messages - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var msg_sent: usize = 0; @@ -3521,7 +3518,7 @@ pub const BenchmarkGossipServicePullRequests = struct { }); const now = getWallclockMs(); - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); { @@ -3574,7 +3571,7 @@ pub const BenchmarkGossipServicePullRequests = struct { }; fn localhostTestContactInfo(id: Pubkey) !ContactInfo { - comptime std.debug.assert(@import("builtin").is_test); // should only be used for testin + if (!@import("builtin").is_test) @compileError("only for testing"); var contact_info = try LegacyContactInfo.default(id).toContactInfo(std.testing.allocator); try contact_info.setSocket(.gossip, SocketAddr.initIpv4(.{ 127, 0, 0, 1 }, 0)); return contact_info; diff --git a/src/gossip/shards.zig b/src/gossip/shards.zig index 7bb1526c85..40459afd1b 100644 --- a/src/gossip/shards.zig +++ b/src/gossip/shards.zig @@ -108,7 +108,7 @@ test "GossipTableShards" { var shards = try GossipTableShards.init(std.testing.allocator); defer shards.deinit(); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const v = Hash.initRandom(random); @@ -158,7 +158,7 @@ test "gossip.gossip_shards: test shard find" { var values = try std.ArrayList(GossipVersionedData).initCapacity(std.testing.allocator, 1000); defer values.deinit(); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); while (values.items.len < 50) { diff --git a/src/gossip/table.zig b/src/gossip/table.zig index 60cbab9a6b..e0f6d7e9f6 100644 --- a/src/gossip/table.zig +++ b/src/gossip/table.zig @@ -979,7 +979,7 @@ pub const HashTimeQueue = struct { test "remove old values" { const keypair = try KeyPair.generateDeterministic(@splat(1)); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var table = try GossipTable.init(std.testing.allocator, std.testing.allocator); defer table.deinit(); @@ -1008,7 +1008,7 @@ test "remove old values" { test "insert and remove value" { const keypair = try KeyPair.generateDeterministic(@splat(1)); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var table = try GossipTable.init(std.testing.allocator, std.testing.allocator); defer table.deinit(); @@ -1026,7 +1026,7 @@ test "insert and remove value" { test "trim pruned values" { const keypair = try KeyPair.generateDeterministic(@splat(1)); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var table = try GossipTable.init(std.testing.allocator, std.testing.allocator); defer table.deinit(); @@ -1068,7 +1068,7 @@ test "gossip.HashTimeQueue: insert multiple values" { var htq = HashTimeQueue.init(std.testing.allocator); defer htq.deinit(); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); try htq.insert(Hash.initRandom(random), 100); @@ -1089,7 +1089,7 @@ test "gossip.HashTimeQueue: insert multiple values" { test "gossip.HashTimeQueue: trim pruned values" { const keypair = try KeyPair.generateDeterministic(@splat(1)); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const data = GossipData{ .LegacyContactInfo = LegacyContactInfo.initRandom(random), @@ -1123,7 +1123,7 @@ test "gossip.HashTimeQueue: trim pruned values" { test "insert and get" { const keypair = try KeyPair.generateDeterministic(@splat(1)); - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var value = SignedGossipData.initRandom(random, &keypair); diff --git a/src/ledger/benchmarks.zig b/src/ledger/benchmarks.zig index 2fdb44c6ee..627d0d29b4 100644 --- a/src/ledger/benchmarks.zig +++ b/src/ledger/benchmarks.zig @@ -14,7 +14,7 @@ const deinitShreds = ledger_tests.deinitShreds; const testShreds = ledger_tests.testShreds; fn createRewards(allocator: std.mem.Allocator, count: usize) !Rewards { - var rng = std.Random.DefaultPrng.init(100); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); const rand = rng.random(); var rewards: Rewards = Rewards.init(allocator); for (0..count) |i| { @@ -120,7 +120,7 @@ pub const BenchmarkLedger = struct { const slot: u32 = 0; const num_reads = total_shreds / 15; - var rng = std.Random.DefaultPrng.init(100); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); var timer = try sig.time.Timer.start(); const start_index = rng.random().intRangeAtMost(u32, 0, @intCast(total_shreds)); @@ -151,7 +151,7 @@ pub const BenchmarkLedger = struct { const slot: u32 = 0; - var rng = std.Random.DefaultPrng.init(100); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); var indices = try std.ArrayList(u32).initCapacity(inserter.allocator, num_reads); defer indices.deinit(); @@ -225,7 +225,7 @@ pub const BenchmarkLedger = struct { const slot: u32 = 1; - var rng = std.Random.DefaultPrng.init(100); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); var indices = try std.ArrayList(u32).initCapacity(inserter.allocator, total_shreds); defer indices.deinit(); @@ -275,7 +275,7 @@ pub const BenchmarkLedger = struct { const state = try TestState.init(std.heap.c_allocator, @src(), .noop); defer state.deinit(); var writer = try state.writer(); - var rng = std.Random.DefaultPrng.init(100); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); var signatures: std.ArrayList(Signature) = try std.ArrayList(Signature).initCapacity(state.allocator, 64); diff --git a/src/ledger/shred.zig b/src/ledger/shred.zig index 106ced32a2..5bd1327ada 100644 --- a/src/ledger/shred.zig +++ b/src/ledger/shred.zig @@ -1341,7 +1341,7 @@ test "merkleProof" { test "merkle tree round trip" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(123); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const size = 100; diff --git a/src/ledger/tests.zig b/src/ledger/tests.zig index 58b0690c60..1a4e939492 100644 --- a/src/ledger/tests.zig +++ b/src/ledger/tests.zig @@ -21,7 +21,7 @@ const insertShredsForTest = ledger.shred_inserter.shred_inserter.insertShredsFor const schema = ledger.schema.schema; test "put/get data consistency for merkle root" { - var prng = std.Random.DefaultPrng.init(100); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var db = try TestDB.init(@src()); diff --git a/src/net/net.zig b/src/net/net.zig index 2189c016ca..eb9c5fc9d4 100644 --- a/src/net/net.zig +++ b/src/net/net.zig @@ -616,7 +616,7 @@ test "valid ipv4 socket parsing" { } test "SocketAddr.initRandom" { - var prng = std.Random.DefaultPrng.init(100); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const addr = SocketAddr.initRandom(prng.random()); _ = addr; } diff --git a/src/net/socket_utils.zig b/src/net/socket_utils.zig index 97a7ee47d1..baac8960b0 100644 --- a/src/net/socket_utils.zig +++ b/src/net/socket_utils.zig @@ -570,7 +570,7 @@ pub const BenchmarkPacketProcessing = struct { fn sender(channel: *Channel(Packet), addr: network.EndPoint, e: ExitCondition) !void { var i: usize = 0; var packet: Packet = undefined; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var timer = try std.time.Timer.start(); while (e.shouldRun()) { diff --git a/src/rand/weighted_shuffle.zig b/src/rand/weighted_shuffle.zig index 7dcd7c39a4..d3059cf925 100644 --- a/src/rand/weighted_shuffle.zig +++ b/src/rand/weighted_shuffle.zig @@ -404,7 +404,7 @@ test "agave: get tree size" { test "agave: empty weights" { const weights = [_]u64{}; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var shuffle = try WeightedShuffle(u64).init(std.testing.allocator, &weights); @@ -603,7 +603,7 @@ test "agave: hard coded" { test "agave: match slow" { // Initialise random weights - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var weights = try std.ArrayList(u64).initCapacity(std.testing.allocator, 997); defer weights.deinit(); @@ -646,7 +646,7 @@ test "agave: match slow" { test "agave: paranoid" { // Default rng - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const end = if (sig.build_options.long_tests) 1351 else 3; diff --git a/src/replay/consensus/core.zig b/src/replay/consensus/core.zig index 6085e32086..8e9145dd43 100644 --- a/src/replay/consensus/core.zig +++ b/src/replay/consensus/core.zig @@ -1151,7 +1151,7 @@ test "processResult and handleDuplicateConfirmedFork" { } test "cacheTowerStats - missing ancestor" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ .slot = 0, .hash = Hash.initRandom(random) }; @@ -1187,7 +1187,7 @@ test "cacheTowerStats - missing ancestor" { } test "cacheTowerStats - missing slot" { - var prng = std.Random.DefaultPrng.init(92); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ .slot = 0, .hash = Hash.initRandom(random) }; @@ -1213,7 +1213,7 @@ test "cacheTowerStats - missing slot" { } test "cacheTowerStats - success sets flags and empty thresholds" { - var prng = std.Random.DefaultPrng.init(93); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ .slot = 0, .hash = Hash.initRandom(random) }; @@ -1248,7 +1248,7 @@ test "cacheTowerStats - success sets flags and empty thresholds" { } test "cacheTowerStats - records failed threshold at depth 0" { - var prng = std.Random.DefaultPrng.init(94); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ .slot = 0, .hash = Hash.initRandom(random) }; @@ -1288,7 +1288,7 @@ test "cacheTowerStats - records failed threshold at depth 0" { } test "maybeRefreshLastVote - no heaviest slot on same fork" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ .slot = 0, .hash = Hash.initRandom(random) }; @@ -1319,7 +1319,7 @@ test "maybeRefreshLastVote - no heaviest slot on same fork" { } test "maybeRefreshLastVote - no landed vote" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ @@ -1355,7 +1355,7 @@ test "maybeRefreshLastVote - no landed vote" { } test "maybeRefreshLastVote - latest landed vote newer than last vote" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ @@ -1433,7 +1433,7 @@ test "maybeRefreshLastVote - latest landed vote newer than last vote" { } test "maybeRefreshLastVote - non voting validator" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ @@ -1513,7 +1513,7 @@ test "maybeRefreshLastVote - non voting validator" { } test "maybeRefreshLastVote - hotspare validator" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ @@ -1593,7 +1593,7 @@ test "maybeRefreshLastVote - hotspare validator" { } test "maybeRefreshLastVote - refresh interval not elapsed" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ @@ -1676,7 +1676,7 @@ test "maybeRefreshLastVote - refresh interval not elapsed" { } test "maybeRefreshLastVote - successfully refreshed and mark last_vote_tx_blockhash as non voting" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const hash3 = SlotAndHash{ @@ -1758,7 +1758,7 @@ test "maybeRefreshLastVote - successfully refreshed and mark last_vote_tx_blockh } test "checkAndHandleNewRoot - missing slot" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ @@ -1826,7 +1826,7 @@ test "checkAndHandleNewRoot - missing slot" { } test "checkAndHandleNewRoot - missing hash" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ @@ -1892,7 +1892,7 @@ test "checkAndHandleNewRoot - missing hash" { } test "checkAndHandleNewRoot - empty slot tracker" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const root = SlotAndHash{ @@ -1945,7 +1945,7 @@ test "checkAndHandleNewRoot - empty slot tracker" { } test "checkAndHandleNewRoot - success" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const hash3 = SlotAndHash{ @@ -2060,7 +2060,7 @@ test "checkAndHandleNewRoot - success" { } test "computeBankStats - child bank heavier" { - var prng = std.Random.DefaultPrng.init(91); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // Set up slots and hashes for the fork tree: 0 -> 1 -> 2 @@ -2182,7 +2182,7 @@ test "computeBankStats - child bank heavier" { } test "computeBankStats - same weight selects lower slot" { - var prng = std.Random.DefaultPrng.init(42); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // Set up slots and hashes for the fork tree: 0 -> 1, 0 -> 2 diff --git a/src/replay/consensus/edge_cases.zig b/src/replay/consensus/edge_cases.zig index b8103f361b..841129d446 100644 --- a/src/replay/consensus/edge_cases.zig +++ b/src/replay/consensus/edge_cases.zig @@ -1577,7 +1577,7 @@ fn testLedgerRw( test "apply state changes" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(7353); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var test_data: TestData = try .init(allocator, .noop, random); @@ -1637,7 +1637,7 @@ test "apply state changes" { test "apply state changes slot frozen" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(7353); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var test_data: TestData = try .init(allocator, .noop, random); @@ -1712,7 +1712,7 @@ test "apply state changes slot frozen" { test "apply state changes duplicate confirmed matches frozen" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(7353); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var test_data: TestData = try .init(allocator, .noop, random); @@ -1793,7 +1793,7 @@ test "apply state changes duplicate confirmed matches frozen" { test "apply state changes slot frozen and duplicate confirmed matches frozen" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(7353); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var test_data: TestData = try .init(allocator, .noop, random); @@ -1884,7 +1884,7 @@ test "apply state changes slot frozen and duplicate confirmed matches frozen" { test "check slot agrees with cluster dead duplicate confirmed" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(13633); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var test_data: TestData = try .init(allocator, .noop, random); @@ -1946,7 +1946,7 @@ test "check slot agrees with cluster dead duplicate confirmed" { fn testStateDuplicateThenSlotFrozen(initial_slot_hash: ?Hash) !void { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(7353); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var test_data: TestData = try .init(allocator, .noop, random); @@ -2060,7 +2060,7 @@ test "state unreplayed slot duplicate then slot frozen" { test "state ancestor confirmed descendant duplicate" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(7353); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var test_data: TestData = try .init(allocator, .noop, random); @@ -2209,7 +2209,7 @@ test "state ancestor confirmed descendant duplicate" { test "state ancestor duplicate descendant confirmed" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(7353); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var test_data: TestData = try .init(allocator, .noop, random); @@ -2358,7 +2358,7 @@ fn verifyAllSlotsDuplicateConfirmed( test "state descendant confirmed ancestor duplicate" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(7353); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var test_data: TestData = try .init(allocator, .noop, random); @@ -2456,7 +2456,7 @@ test "state descendant confirmed ancestor duplicate" { test "duplicate confirmed and epoch slots frozen" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(7353); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var test_data: TestData = try .init(allocator, .noop, random); @@ -2567,7 +2567,7 @@ test "duplicate confirmed and epoch slots frozen" { test "duplicate confirmed and epoch slots frozen mismatched" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(7353); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var test_data: TestData = try .init(allocator, .noop, random); diff --git a/src/replay/consensus/process_result.zig b/src/replay/consensus/process_result.zig index 7ae750d142..92ee1b848c 100644 --- a/src/replay/consensus/process_result.zig +++ b/src/replay/consensus/process_result.zig @@ -523,7 +523,7 @@ test "processResult: confirm status with done poll and slot complete - success p }), ); - var rng = std.Random.DefaultPrng.init(0); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = rng.random(); const last_entry_hash = sig.core.Hash.initRandom(random); @@ -651,7 +651,7 @@ test "markDeadSlot: when duplicate proof exists, duplicate tracker records slot" // Provide a minimal slot in the slot tracker so markDeadSlot can read a hash var slot_state = try sig.core.SlotState.genesis(allocator); - var rng = std.Random.DefaultPrng.init(0); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); slot_state.hash.set(sig.core.Hash.initRandom(rng.random())); const slot_consts = sig.core.SlotConstants{ .parent_slot = 0, diff --git a/src/replay/exec_async.zig b/src/replay/exec_async.zig index 2e19075f55..4d618965f7 100644 --- a/src/replay/exec_async.zig +++ b/src/replay/exec_async.zig @@ -444,7 +444,7 @@ const ReplayBatchTask = struct { test "TransactionScheduler: happy path" { const allocator = std.testing.allocator; - var rng = std.Random.DefaultPrng.init(123); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); var state = try replay.execution.TestState.init(allocator); defer state.deinit(allocator); @@ -517,7 +517,7 @@ test "TransactionScheduler: happy path" { test "TransactionScheduler: duplicate batch passes through to svm" { const allocator = std.testing.allocator; - var rng = std.Random.DefaultPrng.init(123); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); var state = try replay.execution.TestState.init(allocator); defer state.deinit(allocator); @@ -596,7 +596,7 @@ test "TransactionScheduler: duplicate batch passes through to svm" { test "TransactionScheduler: failed account locks" { const allocator = std.testing.allocator; - var rng = std.Random.DefaultPrng.init(0); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); var state = try replay.execution.TestState.init(allocator); defer state.deinit(allocator); @@ -653,7 +653,7 @@ test "TransactionScheduler: failed account locks" { test "TransactionScheduler: signature verification failure" { const allocator = std.testing.allocator; - var rng = std.Random.DefaultPrng.init(0); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); var state = try replay.execution.TestState.init(allocator); defer state.deinit(allocator); @@ -736,7 +736,7 @@ test "TransactionScheduler: does not send replay vote for failed execution" { const vote_program = sig.runtime.program.vote; const vote_instruction = vote_program.vote_instruction; - var rng = std.Random.DefaultPrng.init(7); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); var state = try replay.execution.TestState.init(allocator); defer state.deinit(allocator); @@ -832,7 +832,7 @@ test "TransactionScheduler: sends replay vote after successful execution" { const vote_program = sig.runtime.program.vote; const vote_instruction = vote_program.vote_instruction; - var rng = std.Random.DefaultPrng.init(9); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); var state = try replay.execution.TestState.init(allocator); defer state.deinit(allocator); diff --git a/src/replay/freeze.zig b/src/replay/freeze.zig index 49e43a5f10..dcad4ca895 100644 --- a/src/replay/freeze.zig +++ b/src/replay/freeze.zig @@ -385,7 +385,7 @@ test "deltaLtHash is identity for 0 accounts" { test "deltaMerkleHash for 0 accounts" { try std.testing.expectEqual( - try Hash.parseRuntime("GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"), + Hash.parse("GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"), try deltaMerkleHash(.noop, sig.utils.allocators.failing.allocator(.{}), 0), ); } @@ -424,7 +424,7 @@ test "freezeSlot: trivial e2e merkle hash test" { ); try std.testing.expectEqual( - try Hash.parseRuntime("8C4gpDhMz9RfajteNCf9nFb5pyj3SkFcpTs6uXAzYKoF"), + Hash.parse("8C4gpDhMz9RfajteNCf9nFb5pyj3SkFcpTs6uXAzYKoF"), state.hash.readCopy().?, ); } @@ -592,10 +592,9 @@ test "delta hashes with many accounts" { // sig fmt: off const expected_lt_hash = [1024]u16{ 59065, 31437, 27738, 25731, 11852, 64853, 24563, 65217, 2574, 28248, 48973, 54236, 31227, 34672, 10334, 50851, 9755, 50155, 23973, 3940, 46299, 59334, 3457, 19944, 31013, 51016, 61238, 11264, 52234, 22371, 63359, 40808, 29506, 38480, 61126, 32981, 18656, 55133, 43826, 64915, 12868, 48590, 64092, 16948, 39842, 10881, 3830, 33824, 51862, 19124, 37113, 14987, 13612, 16481, 40416, 43673, 30160, 46125, 48490, 39628, 60561, 45886, 13100, 28846, 51252, 38464, 2505, 32562, 34168, 36883, 19013, 57338, 58461, 5218, 46768, 63917, 41703, 3042, 20008, 3608, 28577, 41909, 61434, 34322, 31777, 31041, 54259, 47319, 30155, 33980, 26006, 17180, 64163, 39087, 40260, 17840, 36897, 20227, 63721, 51310, 29573, 3365, 5730, 57531, 16551, 32529, 20345, 19295, 18450, 62905, 10600, 7070, 52747, 25234, 52965, 13951, 38929, 31482, 11625, 50608, 3925, 12545, 43693, 9078, 13244, 29024, 55139, 55296, 55435, 34308, 26996, 48018, 20965, 18205, 5945, 37920, 57243, 14696, 22051, 41949, 53453, 48681, 5615, 24213, 46972, 4848, 43171, 62006, 50184, 56064, 3555, 18000, 62438, 56680, 7137, 18579, 138, 6178, 24954, 62903, 6707, 56264, 8280, 8280, 63937, 42183, 37978, 45639, 23623, 48966, 19467, 60555, 57924, 10198, 16645, 26871, 59831, 26174, 12177, 38670, 54038, 29452, 52523, 3457, 7517, 10164, 30787, 45521, 32339, 20763, 35856, 35375, 38305, 41385, 49951, 41024, 39503, 46163, 37759, 45719, 28505, 48987, 21224, 14807, 35594, 24356, 30613, 2738, 25063, 52612, 45966, 222, 47797, 18695, 60179, 13144, 9478, 8121, 55327, 24676, 63089, 58411, 11029, 41621, 5605, 11322, 13503, 10187, 65179, 22480, 4600, 4797, 29310, 32464, 61964, 61964, 43522, 10495, 8813, 7186, 17535, 5007, 64426, 24399, 55013, 41527, 42771, 28010, 60343, 8810, 34518, 29266, 44028, 44094, 7435, 54675, 21580, 9424, 46419, 40613, 33550, 50606, 30195, 25772, 58279, 23830, 417, 44227, 19590, 51019, 612, 29431, 17578, 41313, 35100, 63770, 12748, 9207, 63238, 50622, 54747, 33913, 34255, 43959, 1732, 14108, 58596, 25137, 29570, 56648, 57962, 58946, 5583, 26218, 14917, 51851, 10485, 33038, 62769, 41900, 56273, 10180, 18256, 65333, 23741, 51749, 49225, 37910, 18587, 15792, 14317, 44510, 29121, 23232, 42910, 47527, 1301, 6046, 11068, 1827, 23556, 49209, 56843, 32030, 43751, 40384, 33830, 45745, 63379, 62215, 58986, 5590, 14630, 27329, 57986, 52077, 9857, 39940, 2712, 2740, 11150, 50770, 60261, 43521, 53045, 43594, 34498, 19860, 14867, 48661, 43917, 28698, 19644, 43046, 49473, 38570, 19896, 28378, 49872, 60084, 18229, 15017, 9200, 19595, 53653, 35206, 25881, 4558, 10223, 30811, 38137, 25254, 2704, 56696, 13681, 61024, 17725, 27180, 39877, 46091, 61209, 12173, 1384, 63631, 23215, 17754, 59890, 47168, 37438, 16090, 13355, 31571, 51100, 26377, 13184, 50362, 8597, 28365, 39967, 42974, 58412, 40861, 48715, 36626, 47179, 54098, 20544, 14246, 19588, 27748, 5574, 28924, 13351, 29802, 3306, 37287, 21258, 56230, 1014, 44959, 30395, 58494, 30526, 58409, 35800, 60857, 35023, 9108, 19650, 12316, 625, 3233, 50750, 52235, 51060, 29885, 4739, 1864, 37056, 1366, 63984, 6923, 12014, 35755, 23021, 44125, 13262, 5344, 15813, 37594, 40159, 9989, 23382, 7857, 31989, 50354, 36214, 58655, 4048, 37931, 57661, 43609, 51278, 7184, 8932, 41128, 50754, 34876, 51358, 59205, 49784, 28224, 28203, 42714, 21039, 60966, 24207, 64391, 19213, 15011, 55209, 24006, 1334, 59682, 6719, 59555, 33795, 17464, 22171, 62234, 29529, 23847, 19963, 48354, 42745, 29727, 29970, 20804, 48741, 13071, 64315, 45489, 19931, 45003, 27825, 60542, 63537, 42716, 35135, 40889, 60272, 14696, 63158, 10215, 57136, 48391, 56733, 57446, 48394, 16315, 44222, 16529, 47429, 50394, 30575, 13294, 50785, 20182, 3482, 38564, 60244, 41415, 59601, 37936, 4733, 7463, 6457, 52354, 1795, 21532, 59509, 9280, 50785, 8180, 42067, 43060, 21911, 37184, 55715, 46786, 17730, 22020, 56063, 62284, 18098, 40245, 48577, 34322, 39593, 57784, 1421, 12726, 52871, 22833, 63122, 32883, 49571, 33534, 19170, 7526, 61283, 305, 44504, 52280, 8842, 37533, 190, 889, 51741, 10381, 41083, 18442, 1665, 41590, 12596, 22990, 57601, 15437, 16764, 12929, 29732, 10785, 54742, 11724, 51436, 30716, 27338, 46479, 12500, 56846, 56906, 58684, 40563, 46077, 22072, 20559, 60597, 50599, 14866, 59995, 36667, 51209, 270, 38909, 31227, 40112, 28712, 60589, 2509, 267, 1689, 56152, 41676, 24971, 5462, 35300, 50485, 56245, 43532, 41256, 11787, 42487, 4214, 31585, 18199, 43993, 1647, 15709, 51555, 33851, 34285, 49686, 6959, 53296, 24047, 61028, 64425, 30988, 39035, 30645, 20041, 24550, 47010, 30740, 17729, 56949, 64780, 26802, 3326, 12427, 6173, 35307, 32224, 52771, 45951, 3259, 41573, 52374, 45273, 570, 54564, 28780, 31271, 14463, 22063, 19513, 29156, 50031, 42318, 64715, 63588, 10454, 52484, 10069, 57284, 62228, 20069, 33884, 24649, 10350, 15340, 56253, 31134, 64773, 9671, 35175, 38980, 18241, 28334, 28264, 27217, 30127, 46705, 62484, 20323, 31133, 33159, 55525, 47116, 56564, 4687, 46866, 36245, 35947, 29912, 26583, 20706, 2415, 16334, 3976, 53332, 20942, 32994, 60326, 19863, 64153, 38039, 18386, 1339, 28407, 37464, 8194, 16765, 26072, 47093, 14888, 43530, 58095, 42560, 52430, 50953, 59713, 62680, 55170, 15842, 25149, 15674, 35594, 54668, 48596, 65287, 23308, 49804, 56724, 13502, 35174, 10747, 35154, 59031, 52885, 48047, 44783, 59867, 61387, 61430, 6058, 30823, 56913, 558, 38185, 37941, 15973, 42369, 2000, 5373, 20769, 15408, 35716, 17423, 20667, 59590, 35118, 18561, 34677, 57928, 18010, 24931, 39298, 44419, 3982, 55509, 51154, 53051, 26058, 7655, 9807, 65095, 2669, 56240, 55209, 16162, 62680, 15399, 23612, 15857, 47200, 27388, 2834, 23887, 44069, 26669, 33507, 44804, 50110, 32846, 56502, 53949, 34173, 59701, 47450, 9388, 8557, 28533, 41968, 23786, 17029, 27280, 43382, 60940, 61536, 54980, 25686, 51167, 46778, 34609, 17869, 62315, 64257, 46295, 49357, 57116, 10247, 55706, 29943, 18153, 6143, 21741, 54918, 7660, 39475, 58377, 56028, 3931, 24947, 34404, 1110, 5799, 51499, 11708, 48267, 18523, 53406, 32584, 45269, 32213, 17136, 29926, 22882, 34379, 12992, 46833, 53614, 14152, 12872, 36340, 40665, 35202, 3702, 55356, 65336, 16160, 27084, 25642, 22131, 29682, 28259, 26351, 21859, 44345, 24029, 10345, 55079, 54714, 38143, 18305, 746, 22158, 22886, 14057, 355, 503, 10033, 23884, 38013, 62890, 36164, 48820, 9786, 49871, 51892, 46148, 681, 64689, 21264, 27906, 40353, 2092, 32003, 40026, 65235, 50055, 54960, 3424, 38582, 3939, 44007, 37703, 36481, 33042, 12488, 10149, 24056, 49583, 47324, 24681, 44681, 15888, 56668, 25901, 22561, 43099, 9671, 17307, 1372, 4456, 22270, 36388, 7790, 63731, 38670, 29346, 11580, 42628, 30791, 27510, 54732, 21986, 61471, 41223, 24230, 58361, 5234, 21841, 44141, 4838, 50486, 23208, 39845, 45749, 34085, 4477, 57658, 9073, 60723, 5197, 37631, 7504, 37994, 17225, 11815, 32232, 35221, 51979, 4211, 41423, 9802, 11493, 9399, 32785, 34409, 12252, 62755, 17328, 45301, 16573, 37229, 49948, 48111, 1782, 42920, 63976, 24308, 64581, 33675, 21055, 24960, 12926, 46324, 17052, 15666, 9357, 33232, 1920, 47884, 25427, 20881, 7294, 1718, 24777, 55421, 35855, 63261, 40672, 62018 }; // sig fmt: on - const expected_merkle_hash = - Hash.parseRuntime("5tpzYxp8ghAETjXaXnZvxZov11iNEvSbDZXNAMoJX6ov") catch unreachable; + const expected_merkle_hash: Hash = .parse("5tpzYxp8ghAETjXaXnZvxZov11iNEvSbDZXNAMoJX6ov"); - var parent_ancestors = Ancestors{}; + var parent_ancestors: Ancestors = .{}; defer parent_ancestors.deinit(allocator); try parent_ancestors.ancestors.put(allocator, 0, {}); try parent_ancestors.ancestors.put(allocator, 1, {}); diff --git a/src/replay/preprocess_transaction.zig b/src/replay/preprocess_transaction.zig index 5b3caeedf4..be0d044cd0 100644 --- a/src/replay/preprocess_transaction.zig +++ b/src/replay/preprocess_transaction.zig @@ -67,7 +67,7 @@ test preprocessTransaction { const Signature = sig.core.Signature; const TransactionError = sig.ledger.transaction_status.TransactionError; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); { // Verify succeeds diff --git a/src/replay/resolve_lookup.zig b/src/replay/resolve_lookup.zig index ab4ed51c9c..58a71600b0 100644 --- a/src/replay/resolve_lookup.zig +++ b/src/replay/resolve_lookup.zig @@ -309,7 +309,7 @@ fn getLookupTable( } test resolveBatch { - var rng = std.Random.DefaultPrng.init(0); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); // concisely represents all the expected account metas within an InstructionInfo const ExpectedAccountMetas = struct { @@ -526,7 +526,7 @@ fn put( test getLookupTable { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var map = sig.accounts_db.ThreadSafeAccountMap.init(allocator); diff --git a/src/replay/service.zig b/src/replay/service.zig index 38fb64cddb..78585c7c0f 100644 --- a/src/replay/service.zig +++ b/src/replay/service.zig @@ -616,7 +616,7 @@ test "getActiveFeatures rejects wrong ownership" { test trackNewSlots { const allocator = std.testing.allocator; - var rng = std.Random.DefaultPrng.init(0); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); var ledger_db = try sig.ledger.tests.TestDB.init(@src()); defer ledger_db.deinit(); @@ -1118,7 +1118,7 @@ pub const DependencyStubs = struct { logger: Logger, run_vote_listener: bool, ) !Service { - var rng = std.Random.DefaultPrng.init(0); + var rng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = rng.random(); var deps: Dependencies = deps: { @@ -1263,13 +1263,13 @@ const TestAccount = struct { rent_epoch: u64, data: []u8, - pub fn deinit(self: @This(), allocator: std.mem.Allocator) void { + pub fn deinit(self: TestAccount, allocator: std.mem.Allocator) void { allocator.free(self.pubkey); allocator.free(self.owner); allocator.free(self.data); } - pub fn toAccount(self: @This()) !struct { Slot, Pubkey, sig.runtime.AccountSharedData } { + pub fn toAccount(self: TestAccount) !struct { Slot, Pubkey, sig.runtime.AccountSharedData } { return .{ self.slot, try .parseRuntime(self.pubkey), diff --git a/src/replay/svm_gateway.zig b/src/replay/svm_gateway.zig index cfd588f51a..6a697ee35e 100644 --- a/src/replay/svm_gateway.zig +++ b/src/replay/svm_gateway.zig @@ -114,7 +114,7 @@ pub const SvmGateway = struct { // This does not actually set the compute budget. it's only used to // set that max call depth and stack frame size. the actual compute // budgets are determined per transaction. - &ComputeBudget.default(1_400_000), + &ComputeBudget.DEFAULT, params.slot, false, false, diff --git a/src/replay/update_sysvar.zig b/src/replay/update_sysvar.zig index 85b75772ed..da79fbc85a 100644 --- a/src/replay/update_sysvar.zig +++ b/src/replay/update_sysvar.zig @@ -605,7 +605,7 @@ test fillMissingSysvarCacheEntries { const allocator = std.testing.allocator; const AccountsDB = sig.accounts_db.AccountsDB; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); // Create accounts db var accounts_db, var tmp_dir = try AccountsDB.initForTest(allocator); @@ -828,7 +828,7 @@ test "update all sysvars" { const allocator = std.testing.allocator; const AccountsDB = sig.accounts_db.AccountsDB; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // Create values for update sysvar deps diff --git a/src/rpc/server/server.zig b/src/rpc/server/server.zig index 5e3cccdd11..a992bd07e1 100644 --- a/src/rpc/server/server.zig +++ b/src/rpc/server/server.zig @@ -121,7 +121,7 @@ test "serveSpawn snapshots" { if (sig.build_options.no_network_tests) return error.SkipZigTest; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // const logger_unscoped: Logger = .{ .direct_print = .{ .max_level = .trace } }; @@ -242,7 +242,7 @@ test "serveSpawn getAccountInfo" { if (sig.build_options.no_network_tests) return error.SkipZigTest; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // const logger_unscoped: Logger = .{ .direct_print = .{ .max_level = .trace } }; diff --git a/src/runtime/account_loader.zig b/src/runtime/account_loader.zig index 95255965b2..d15f954bd5 100644 --- a/src/runtime/account_loader.zig +++ b/src/runtime/account_loader.zig @@ -914,7 +914,7 @@ test "accumulated size" { test "load accounts rent paid" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var accountsdb = std.AutoArrayHashMapUnmanaged(Pubkey, sig.core.Account).empty; defer accountsdb.deinit(allocator); var env = newTestingEnv(); @@ -1025,7 +1025,7 @@ test "load accounts rent paid" { test "load accounts with simd 186 and loaderv3 program" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var accountsdb = std.AutoArrayHashMapUnmanaged(Pubkey, sig.core.Account).empty; defer accountsdb.deinit(allocator); var env = newTestingEnv(); @@ -1164,7 +1164,7 @@ test "load accounts with simd 186 and loaderv3 program" { test "constructInstructionsAccount" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var data: [1024]u8 = undefined; prng.fill(&data); @@ -1267,7 +1267,7 @@ test "load tx too large" { var env = newTestingEnv(); env.compute_budget_limits.loaded_accounts_bytes = 1000; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const address = Pubkey.initRandom(random); @@ -1311,7 +1311,7 @@ test "dont double count program owner account data size" { var accountsdb = std.AutoArrayHashMapUnmanaged(Pubkey, sig.core.Account).empty; defer accountsdb.deinit(allocator); const env = newTestingEnv(); - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const data1 = "data1"; // 5 @@ -1411,7 +1411,7 @@ test "dont double count program owner account data size" { test "load, create new account" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const new_account_pk = Pubkey.initRandom(random); var accountsdb = std.AutoArrayHashMapUnmanaged(Pubkey, sig.core.Account).empty; @@ -1444,7 +1444,7 @@ test "load, create new account" { test "invalid program owner owner" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var accountsdb = std.AutoArrayHashMapUnmanaged(Pubkey, sig.core.Account).empty; defer accountsdb.deinit(allocator); @@ -1502,7 +1502,7 @@ test "invalid program owner owner" { test "missing program owner account" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var accountsdb = std.AutoArrayHashMapUnmanaged(Pubkey, sig.core.Account).empty; defer accountsdb.deinit(allocator); @@ -1552,7 +1552,7 @@ test "missing program owner account" { test "deallocate account" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var accountsdb = std.AutoArrayHashMapUnmanaged(Pubkey, sig.core.Account).empty; defer accountsdb.deinit(allocator); @@ -1603,7 +1603,7 @@ test "deallocate account" { test "load v3 program" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var accountsdb = std.AutoArrayHashMapUnmanaged(Pubkey, sig.core.Account).empty; defer accountsdb.deinit(allocator); diff --git a/src/runtime/check_transactions.zig b/src/runtime/check_transactions.zig index 6f81a0fab0..75cd2981db 100644 --- a/src/runtime/check_transactions.zig +++ b/src/runtime/check_transactions.zig @@ -442,7 +442,7 @@ fn getDurableNonce(transaction: *const RuntimeTransaction) ?Pubkey { test checkStatusCache { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var ancestors = Ancestors{}; defer ancestors.deinit(allocator); @@ -480,7 +480,7 @@ test checkStatusCache { test "checkAge: recent blockhash" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const max_age = 5; const recent_blockhash = Hash.initRandom(prng.random()); @@ -539,7 +539,7 @@ test "checkAge: recent blockhash" { test "checkAge: nonce account" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const nonce_key = Pubkey.initRandom(prng.random()); const nonce_authority_key = Pubkey.initRandom(prng.random()); @@ -677,7 +677,7 @@ test "checkAge: nonce account" { test "checkFeePayer: happy path fee payer only" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const recent_blockhash = Hash.initRandom(prng.random()); @@ -731,7 +731,7 @@ test "checkFeePayer: happy path fee payer only" { test "checkFeePayer: happy path with same nonce and fee payer" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const recent_blockhash = Hash.initRandom(prng.random()); @@ -795,7 +795,7 @@ test "checkFeePayer: happy path with same nonce and fee payer" { test "checkFeePayer: happy path with separate nonce and fee payer" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const recent_blockhash = Hash.initRandom(prng.random()); diff --git a/src/runtime/compute_budget.zig b/src/runtime/compute_budget.zig index 9aa0a4fff9..7e95e1d63c 100644 --- a/src/runtime/compute_budget.zig +++ b/src/runtime/compute_budget.zig @@ -96,10 +96,10 @@ pub const ComputeBudget = struct { /// Number of compute units consumed to call secp256k1_recover secp256k1_recover_cost: u64, - pub const DEFAULT: ComputeBudget = ComputeBudget.default(1_400_000); + pub const DEFAULT: ComputeBudget = ComputeBudget.init(1_400_000); /// [agave] https://github.com/anza-xyz/agave/blob/8363752bd5e41aaf8eaf9137711e8d8b11d84be6/program-runtime/src/execution_budget.rs#L162 - pub fn default(compute_unit_limit: u64) ComputeBudget { + pub fn init(compute_unit_limit: u64) ComputeBudget { return .{ .compute_unit_limit = compute_unit_limit, .create_program_address_units = 1500, diff --git a/src/runtime/executor.zig b/src/runtime/executor.zig index 1a4a6a45a5..3184a8cc41 100644 --- a/src/runtime/executor.zig +++ b/src/runtime/executor.zig @@ -319,7 +319,7 @@ test pushInstruction { const system_program = sig.runtime.program.system; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try testing.createTransactionContext( allocator, @@ -396,7 +396,7 @@ test "pushInstruction sysvar account data" { const testing = sig.runtime.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var sysvar_data: [20]u8 = @splat(0); var cache, var tc = try testing.createTransactionContext( @@ -443,7 +443,7 @@ test "pushInstruction sysvar account too small" { const testing = sig.runtime.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var sysvar_data: [1]u8 = @splat(0); // needs to be at least 2 bytes large var cache, var tc = try testing.createTransactionContext( @@ -493,7 +493,7 @@ test "processNextInstruction" { const system_program = sig.runtime.program.system; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try testing.createTransactionContext( allocator, @@ -560,7 +560,7 @@ test popInstruction { const system_program = sig.runtime.program.system; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try testing.createTransactionContext( allocator, @@ -643,7 +643,7 @@ test prepareCpiInstructionInfo { const system_program = sig.runtime.program.system; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try testing.createTransactionContext( allocator, diff --git a/src/runtime/nonce.zig b/src/runtime/nonce.zig index 1d4d8b6559..9c3c60369e 100644 --- a/src/runtime/nonce.zig +++ b/src/runtime/nonce.zig @@ -103,7 +103,7 @@ pub fn initDurableNonceFromHash(blockhash: Hash) Hash { } test "verify_durable_nonce" { - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const blockhash = Hash{ .data = [_]u8{171} ** 32 }; @@ -147,7 +147,7 @@ test "verify_durable_nonce" { } test "upgrade_nonce_version" { - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); { const versions = Versions{ .legacy = .uninitialized }; diff --git a/src/runtime/program/address_lookup_table/execute.zig b/src/runtime/program/address_lookup_table/execute.zig index c01a8b859f..7fb077743b 100644 --- a/src/runtime/program/address_lookup_table/execute.zig +++ b/src/runtime/program/address_lookup_table/execute.zig @@ -625,7 +625,7 @@ test "address-lookup-table missing accounts" { const ExecuteContextsParams = sig.runtime.testing.ExecuteContextsParams; const expectProgramExecuteError = sig.runtime.program.testing.expectProgramExecuteError; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const unsigned_authority_address = Pubkey.initRandom(prng.random()); const recent_slot = std.math.maxInt(Slot); @@ -667,7 +667,7 @@ test "address-lookup-table create" { const expectProgramExecuteResult = sig.runtime.program.testing.expectProgramExecuteResult; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const payer = Pubkey.initRandom(prng.random()); const unsigned_authority_address = Pubkey.initRandom(prng.random()); @@ -780,7 +780,7 @@ test "address-lookup-table freeze" { const expectProgramExecuteResult = sig.runtime.program.testing.expectProgramExecuteResult; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const unsigned_authority_address = Pubkey.initRandom(prng.random()); const first_address = Pubkey.initRandom(prng.random()); @@ -889,7 +889,7 @@ test "address-lookup-table close" { const expectProgramExecuteResult = sig.runtime.program.testing.expectProgramExecuteResult; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const unsigned_authority_address = Pubkey.initRandom(prng.random()); const first_address = Pubkey.initRandom(prng.random()); @@ -1000,7 +1000,7 @@ test "address-lookup-table deactivate" { const expectProgramExecuteResult = sig.runtime.program.testing.expectProgramExecuteResult; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const unsigned_authority_address = Pubkey.initRandom(prng.random()); const first_address = Pubkey.initRandom(prng.random()); @@ -1109,7 +1109,7 @@ test "address-lookup-table extend" { const expectProgramExecuteResult = sig.runtime.program.testing.expectProgramExecuteResult; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const unsigned_authority_address = Pubkey.initRandom(prng.random()); const first_address = Pubkey.initRandom(prng.random()); diff --git a/src/runtime/program/bpf/serialize.zig b/src/runtime/program/bpf/serialize.zig index 04599c1533..8418441d59 100644 --- a/src/runtime/program/bpf/serialize.zig +++ b/src/runtime/program/bpf/serialize.zig @@ -761,7 +761,7 @@ test serializeParameters { // const allocator = std.testing.allocator; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); for ([_]Pubkey{ program.bpf_loader.v1.ID, diff --git a/src/runtime/program/bpf/tests.zig b/src/runtime/program/bpf/tests.zig index 3e985a001a..88042cb039 100644 --- a/src/runtime/program/bpf/tests.zig +++ b/src/runtime/program/bpf/tests.zig @@ -30,7 +30,7 @@ pub fn prepareBpfV3Test( const program_update_authority = null; const feature_set = try sig.runtime.testing.createFeatureSet(feature_params); - var accounts = std.AutoArrayHashMapUnmanaged(Pubkey, AccountSharedData){}; + var accounts: std.AutoArrayHashMapUnmanaged(Pubkey, AccountSharedData) = .{}; defer { for (accounts.values()) |account| allocator.free(account.data); accounts.deinit(allocator); @@ -77,7 +77,7 @@ pub fn prepareBpfV3Test( .rent_epoch = std.math.maxInt(u64), }; - const compute_budget = ComputeBudget.default(1_400_000); + const compute_budget = ComputeBudget.DEFAULT; const environment = try sig.vm.Environment.initV1( allocator, @@ -112,7 +112,7 @@ test "hello_world" { // } const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const elf_bytes = try std.fs.cwd().readFileAlloc( allocator, @@ -173,7 +173,8 @@ test "print_account" { // } const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const elf_bytes = try std.fs.cwd().readFileAlloc( allocator, @@ -200,9 +201,9 @@ test "print_account" { const accounts: []const AccountParams = &.{ program_account, .{ - .pubkey = Pubkey.initRandom(prng.random()), + .pubkey = .parse("2W3R4CDyfdPBsABjBF86kdThsR5s89iX2wbfoGVhZw4M"), .lamports = 1_234_456, - .owner = Pubkey.initRandom(prng.random()), + .owner = .parse("3DTD43NijdpuwzQL6fM19vU5hDZ2u6M7A9hMrJH3dJyD"), .executable = false, .rent_epoch = 25, .data = &[_]u8{ 'm', 'y', ' ', 'd', 'a', 't', 'a', ' ', ':', ')' }, @@ -238,7 +239,7 @@ test "print_account" { // [program source] https://github.com/solana-labs/solana-program-library/tree/master/shared-memory/program test "fast_copy" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const elf_bytes = try std.fs.cwd().readFileAlloc( allocator, @@ -324,7 +325,7 @@ test "set_return_data" { // } const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const elf_bytes = try std.fs.cwd().readFileAlloc( allocator, @@ -373,7 +374,7 @@ test "set_return_data" { test "program_is_not_executable" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const program_id = Pubkey.initRandom(prng.random()); const program_bytes = try std.fs.cwd().readFileAlloc( @@ -413,7 +414,7 @@ test "program_is_not_executable" { test "program_invalid_account_data" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const program_id = Pubkey.initRandom(prng.random()); var program_bytes = try std.fs.cwd().readFileAlloc( @@ -458,7 +459,7 @@ test "program_invalid_account_data" { test "program_init_vm_not_enough_compute" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const elf_bytes = try std.fs.cwd().readFileAlloc( allocator, @@ -482,7 +483,7 @@ test "program_init_vm_not_enough_compute" { environment.deinit(allocator); } - var compute_budget = sig.runtime.ComputeBudget.default(1_400_000); + var compute_budget = sig.runtime.ComputeBudget.DEFAULT; // Set heap size so that heap cost is 8 compute_budget.heap_size = 2 * 32 * 1024; @@ -508,7 +509,7 @@ test "program_init_vm_not_enough_compute" { test "basic direct mapping" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const elf_bytes = try std.fs.cwd().readFileAlloc( allocator, diff --git a/src/runtime/program/bpf_loader/execute.zig b/src/runtime/program/bpf_loader/execute.zig index 0237d30638..e48d10d248 100644 --- a/src/runtime/program/bpf_loader/execute.zig +++ b/src/runtime/program/bpf_loader/execute.zig @@ -1983,7 +1983,7 @@ test executeV3InitializeBuffer { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const buffer_account_key = Pubkey.initRandom(prng.random()); const buffer_authority_key = Pubkey.initRandom(prng.random()); @@ -2053,7 +2053,7 @@ test executeV3Write { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const buffer_account_key = Pubkey.initRandom(prng.random()); const buffer_authority_key = Pubkey.initRandom(prng.random()); @@ -2131,7 +2131,7 @@ test executeV3DeployWithMaxDataLen { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const payer_account_key = Pubkey.initRandom(prng.random()); const program_account_key = Pubkey.initRandom(prng.random()); @@ -2326,7 +2326,7 @@ test executeV3SetAuthority { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const buffer_account_key = Pubkey.initRandom(prng.random()); const buffer_authority_key = Pubkey.initRandom(prng.random()); @@ -2537,7 +2537,7 @@ test executeV3SetAuthorityChecked { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const buffer_account_key = Pubkey.initRandom(prng.random()); const buffer_authority_key = Pubkey.initRandom(prng.random()); @@ -2706,7 +2706,7 @@ test executeV3Close { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const close_account_key = Pubkey.initRandom(prng.random()); const repicient_key = Pubkey.initRandom(prng.random()); @@ -2963,7 +2963,7 @@ test executeV3Upgrade { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const spill_account_key = Pubkey.initRandom(prng.random()); const upgrade_authority_key = Pubkey.initRandom(prng.random()); @@ -3152,7 +3152,7 @@ test executeV3ExtendProgram { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const payer_account_key = Pubkey.initRandom(prng.random()); const upgrade_authority_key = Pubkey.initRandom(prng.random()); @@ -3437,7 +3437,7 @@ test executeV3ExtendProgram { test executeV3Migrate { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); for ([_]enum { use_auth, no_auth, migrate, migrate_zero }{ .use_auth, @@ -3690,7 +3690,7 @@ fn createValidProgramData( test executeV4Write { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const program_key = Pubkey.initRandom(prng.random()); @@ -3759,7 +3759,7 @@ test executeV4Write { test executeV4Retract { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const program_key = Pubkey.initRandom(prng.random()); @@ -3837,7 +3837,7 @@ test executeV4Retract { test executeV4SetProgramLength { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); for ([_]enum { open, grow, shrink, close }{ .open, .grow, .shrink, .close }) |mode| { const program_key = Pubkey.initRandom(prng.random()); @@ -3969,7 +3969,7 @@ test executeV4SetProgramLength { test checkProgramAccount { const testing = sig.runtime.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const program_key = Pubkey.initRandom(prng.random()); var program_data: [@sizeOf(V4State)]u8 = @splat(0); diff --git a/src/runtime/program/compute_budget/lib.zig b/src/runtime/program/compute_budget/lib.zig index 96d8cdd592..82d11772fd 100644 --- a/src/runtime/program/compute_budget/lib.zig +++ b/src/runtime/program/compute_budget/lib.zig @@ -64,7 +64,7 @@ pub const ComputeBudgetLimits = struct { }; pub fn intoComputeBudget(self: ComputeBudgetLimits) sig.runtime.ComputeBudget { - var default = sig.runtime.ComputeBudget.default(self.compute_unit_limit); + var default = sig.runtime.ComputeBudget.init(self.compute_unit_limit); default.heap_size = self.heap_size; return default; } @@ -542,7 +542,7 @@ fn testCreateEmptyInstruction(program_index: u8) sig.core.transaction.Instructio test "compute_budget Instruction" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var tx = try sig.runtime.testing.createTransactionContext( allocator, prng.random(), @@ -575,7 +575,7 @@ test "compute_budget Instruction" { test execute { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // Units diff --git a/src/runtime/program/stake/lib.zig b/src/runtime/program/stake/lib.zig index d2bb46c8b3..b20a0b39a7 100644 --- a/src/runtime/program/stake/lib.zig +++ b/src/runtime/program/stake/lib.zig @@ -1764,7 +1764,7 @@ fn moveLamports( test "stake.initialize" { const allocator = std.testing.allocator; const ExecuteContextsParams = sig.runtime.testing.ExecuteContextsParams; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const sysvar_cache_without_slot_hashes = ExecuteContextsParams.SysvarCacheParams{ @@ -1877,7 +1877,7 @@ test "stake.initialize" { test "stake.authorize" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var sysvar_cache = sig.runtime.testing.ExecuteContextsParams.SysvarCacheParams{ .clock = runtime.sysvar.Clock.DEFAULT, @@ -1974,7 +1974,7 @@ test "stake.authorize" { test "stake.delegate_stake" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const staker_auth = Pubkey.initRandom(prng.random()); const stake_account = Pubkey.initRandom(prng.random()); @@ -2126,7 +2126,7 @@ test "stake.delegate_stake" { test "stake.split" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const stake_lamports = 1_000_000_000; const split_lamports = 1_000_000_000; @@ -2271,7 +2271,7 @@ test "stake.split" { test "stake.withdraw" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var sysvar_cache = sig.runtime.testing.ExecuteContextsParams.SysvarCacheParams{ .clock = runtime.sysvar.Clock.DEFAULT, @@ -2368,7 +2368,7 @@ test "stake.withdraw" { test "stake.deactivate" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const sysvar_cache = sig.runtime.testing.ExecuteContextsParams.SysvarCacheParams{ .clock = runtime.sysvar.Clock.DEFAULT, @@ -2459,7 +2459,7 @@ test "stake.deactivate" { test "stake.set_lockup" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const sysvar_cache = sig.runtime.testing.ExecuteContextsParams.SysvarCacheParams{ .clock = runtime.sysvar.Clock.DEFAULT, @@ -2553,7 +2553,7 @@ test "stake.set_lockup" { test "stake.merge" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const stake_auth = Pubkey.initRandom(prng.random()); const stake_account = Pubkey.initRandom(prng.random()); @@ -2700,7 +2700,7 @@ test "stake.merge" { test "stake.authorize_with_seed" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var sysvar_cache = sig.runtime.testing.ExecuteContextsParams.SysvarCacheParams{ .clock = runtime.sysvar.Clock.DEFAULT, @@ -2816,7 +2816,7 @@ test "stake.authorize_with_seed" { test "stake.initialize_checked" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const sysvar_cache = sig.runtime.testing.ExecuteContextsParams.SysvarCacheParams{ .rent = runtime.sysvar.Rent.DEFAULT, @@ -2889,7 +2889,7 @@ test "stake.initialize_checked" { test "stake.authorize_checked" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var sysvar_cache = sig.runtime.testing.ExecuteContextsParams.SysvarCacheParams{ .clock = runtime.sysvar.Clock.DEFAULT, @@ -2984,7 +2984,7 @@ test "stake.authorize_checked" { test "stake.authorize_checked_with_seed" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var sysvar_cache = sig.runtime.testing.ExecuteContextsParams.SysvarCacheParams{ .clock = runtime.sysvar.Clock.DEFAULT, @@ -3091,7 +3091,7 @@ test "stake.authorize_checked_with_seed" { test "stake.set_lockup_checked" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const sysvar_cache = sig.runtime.testing.ExecuteContextsParams.SysvarCacheParams{ .clock = runtime.sysvar.Clock.DEFAULT, @@ -3211,7 +3211,7 @@ test "stake.get_minimum_delegation" { test "stake.deactivate_delinquent" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const sysvar_cache = sig.runtime.testing.ExecuteContextsParams.SysvarCacheParams{ .clock = .{ @@ -3361,7 +3361,7 @@ test "stake.deactivate_delinquent" { test "stake.move_stake" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const stake_entries = [_]sysvar.StakeHistory.Entry{ .{ @@ -3551,7 +3551,7 @@ test "stake.move_stake" { test "stake.move_lamports" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var sysvar_cache = sig.runtime.testing.ExecuteContextsParams.SysvarCacheParams{ .clock = runtime.sysvar.Clock.DEFAULT, diff --git a/src/runtime/program/system/execute.zig b/src/runtime/program/system/execute.zig index 9c4b3574f9..d45805dc6c 100644 --- a/src/runtime/program/system/execute.zig +++ b/src/runtime/program/system/execute.zig @@ -801,7 +801,7 @@ test "executeCreateAccount" { const ids = sig.runtime.ids; const testing = sig.runtime.program.testing; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const account_0_key = Pubkey.initRandom(prng.random()); const account_1_key = Pubkey.initRandom(prng.random()); @@ -849,7 +849,7 @@ test "executeAssign" { const ids = sig.runtime.ids; const testing = sig.runtime.program.testing; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const account_0_key = Pubkey.initRandom(prng.random()); const new_owner = Pubkey.initRandom(prng.random()); @@ -886,7 +886,7 @@ test "executeTransfer" { const ids = sig.runtime.ids; const testing = sig.runtime.program.testing; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const account_0_key = Pubkey.initRandom(prng.random()); const account_1_key = Pubkey.initRandom(prng.random()); @@ -926,7 +926,7 @@ test "executeCreateAccountWithSeed" { const ids = sig.runtime.ids; const testing = sig.runtime.program.testing; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const base = Pubkey.initRandom(prng.random()); const seed = &[_]u8{0x10} ** 32; @@ -978,7 +978,7 @@ test "executeAdvanceNonceAccount" { const Hash = sig.core.Hash; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); // Last Blockhash is used to compute the next durable nonce const prev_blockhash = Hash.initRandom(prng.random()); @@ -1072,7 +1072,7 @@ test "executeWithdrawNonceAccount" { const Hash = sig.core.Hash; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); // The amount to withdraw const withdraw_lamports = 1_000; @@ -1155,7 +1155,7 @@ test "executeInitializeNonceAccount" { const Hash = sig.core.Hash; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); // Last Blockhash is used to compute the next durable nonce const prev_blockhash = Hash.initRandom(prng.random()); @@ -1247,7 +1247,7 @@ test "executeAuthorizeNonceAccount" { const Hash = sig.core.Hash; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); // Create Initial Nonce State const initial_nonce_authority = Pubkey.initRandom(prng.random()); @@ -1315,7 +1315,7 @@ test "executeAllocate" { const ids = sig.runtime.ids; const testing = sig.runtime.program.testing; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const allocation_size = 1024; @@ -1361,7 +1361,7 @@ test "executeAllocateWithSeed" { const ids = sig.runtime.ids; const testing = sig.runtime.program.testing; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const base = Pubkey.initRandom(prng.random()); const seed = &[_]u8{0x10} ** 32; @@ -1415,7 +1415,7 @@ test "executeAssignWithSeed" { const ids = sig.runtime.ids; const testing = sig.runtime.program.testing; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const base = Pubkey.initRandom(prng.random()); const seed = &[_]u8{0x10} ** 32; @@ -1460,7 +1460,7 @@ test "executeTransferWithSeed" { const ids = sig.runtime.ids; const testing = sig.runtime.program.testing; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const base = Pubkey.initRandom(prng.random()); const seed = &[_]u8{0x10} ** 32; @@ -1511,7 +1511,7 @@ test "executeUpgradeNonceAccount" { const Hash = sig.core.Hash; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); // Create Initial Nonce State const nonce_authority = Pubkey.initRandom(prng.random()); diff --git a/src/runtime/program/testing.zig b/src/runtime/program/testing.zig index 59f4df755c..c5f4f1d604 100644 --- a/src/runtime/program/testing.zig +++ b/src/runtime/program/testing.zig @@ -61,7 +61,7 @@ pub fn expectProgramExecuteResult( } // Create the initial transaction context - var initial_prng = std.Random.DefaultPrng.init(0); + var initial_prng = std.Random.DefaultPrng.init(std.testing.random_seed); var initial_cache, var initial_tc = try createTransactionContext( allocator, @@ -81,7 +81,7 @@ pub fn expectProgramExecuteResult( } // Create the expected transaction context - var expected_prng = std.Random.DefaultPrng.init(0); + var expected_prng = std.Random.DefaultPrng.init(std.testing.random_seed); var expected_cache, const expected_tc = try createTransactionContext( allocator, diff --git a/src/runtime/program/vote/execute.zig b/src/runtime/program/vote/execute.zig index 25aa8ecc55..37f6073ee1 100644 --- a/src/runtime/program/vote/execute.zig +++ b/src/runtime/program/vote/execute.zig @@ -1225,7 +1225,7 @@ test "vote_program: executeIntializeAccount" { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const rent = Rent.DEFAULT; const clock = Clock{ @@ -1317,7 +1317,7 @@ test "vote_program: executeAuthorize withdrawer signed by current withdrawer" { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 0, @@ -1419,7 +1419,7 @@ test "vote_program: executeAuthorize voter signed by current withdrawer" { const PriorVote = sig.runtime.program.vote.state.PriorVote; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 0, @@ -1527,7 +1527,7 @@ test "vote_program: authorizeWithSeed withdrawer" { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 0, @@ -1638,7 +1638,7 @@ test "vote_program: authorizeCheckedWithSeed withdrawer" { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 0, @@ -1750,7 +1750,7 @@ test "vote_program: authorizeChecked withdrawer" { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 0, @@ -1849,7 +1849,7 @@ test "vote_program: update_validator_identity" { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 0, @@ -1939,7 +1939,7 @@ test "vote_program: update_validator_identity new authority did not sign" { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 0, @@ -2032,7 +2032,7 @@ test "vote_program: update_validator_identity current authority did not sign" { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 0, @@ -2125,7 +2125,7 @@ test "vote_program: update_commission increasing commission" { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 0, @@ -2236,7 +2236,7 @@ test "vote_program: update_commission decreasing commission" { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 0, @@ -2347,7 +2347,7 @@ test "vote_program: update_commission commission update too late passes with fea const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 1060, // needed to make isCommissionUpdateAllowed return false @@ -2449,7 +2449,7 @@ test "vote_program: update_commission error commission update too late failure" const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 1060, // needed to make isCommissionUpdateAllowed return false @@ -2564,7 +2564,7 @@ test "vote_program: update_commission missing signature" { const testing = sig.runtime.program.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 0, @@ -2680,7 +2680,7 @@ test "vote_program: widthdraw no changes" { // Do in a clean up PR after all instructions has been added. const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const rent = Rent.DEFAULT; const clock = Clock.DEFAULT; @@ -2764,7 +2764,7 @@ test "vote_program: widthdraw some amount below with balance above rent exempt" // Do in a clean up PR after all instructions has been added. const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const rent = Rent.DEFAULT; const clock = Clock.DEFAULT; @@ -2849,7 +2849,7 @@ test "vote_program: widthdraw all and close account with active vote account" { // Do in a clean up PR after all instructions has been added. const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const rent = Rent.DEFAULT; const clock = Clock{ @@ -2957,7 +2957,7 @@ test "vote_program: widthdraw some amount below with balance below rent exempt" // Do in a clean up PR after all instructions has been added. const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const rent = Rent.DEFAULT; const clock = Clock.DEFAULT; @@ -3044,7 +3044,7 @@ test "vote_program: widthdraw insufficient funds" { // Do in a clean up PR after all instructions has been added. const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const rent = Rent.DEFAULT; const clock = Clock.DEFAULT; @@ -3129,7 +3129,7 @@ test "vote_program: widthdraw with missing signature" { // Do in a clean up PR after all instructions has been added. const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const rent = Rent.DEFAULT; const clock = Clock.DEFAULT; @@ -3215,7 +3215,7 @@ test "vote_program: vote" { const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; @@ -3331,7 +3331,7 @@ test "vote_program: vote switch" { const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; @@ -3447,7 +3447,7 @@ test "vote_program: vote missing signature" { const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; @@ -3566,7 +3566,7 @@ test "vote_program: empty vote" { const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; @@ -3687,7 +3687,7 @@ test "vote_program: vote state update" { const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; @@ -3826,7 +3826,7 @@ test "vote_program: vote state update switch" { const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; @@ -3966,7 +3966,7 @@ test "vote_program: compact vote state update" { const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; @@ -4105,7 +4105,7 @@ test "vote_program: compact vote state update switch" { const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; @@ -4245,7 +4245,7 @@ test "vote_program: tower sync" { const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; @@ -4391,7 +4391,7 @@ test "vote_program: tower sync switch" { const RENT_EXEMPT_THRESHOLD = 27074400; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; diff --git a/src/runtime/program/vote/instruction.zig b/src/runtime/program/vote/instruction.zig index 4a5c14f58a..0001b7ca86 100644 --- a/src/runtime/program/vote/instruction.zig +++ b/src/runtime/program/vote/instruction.zig @@ -763,7 +763,7 @@ fn executeRoundTrip( test "InitializeAccount: roundtrip" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const pre, const post = try executeRoundTrip( allocator, @@ -800,7 +800,7 @@ test "InitializeAccount: roundtrip" { test "Authorize: roundtrip" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const pre, const post = try executeRoundTrip( allocator, @@ -825,7 +825,7 @@ test "Authorize: roundtrip" { test "VoteAuthorizeWithSeedArgs: roundtrip" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const pre, const post = try executeRoundTrip( allocator, @@ -1084,7 +1084,7 @@ test "TowerSyncSwitch.serialize" { test createInitializeAccount { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createInitializeAccount( allocator, @@ -1110,7 +1110,7 @@ test createInitializeAccount { test createAuthorize { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createAuthorize( allocator, @@ -1135,7 +1135,7 @@ test createAuthorize { test createVote { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createVote( allocator, @@ -1161,7 +1161,7 @@ test createVote { test createWithdraw { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createWithdraw( allocator, @@ -1184,7 +1184,7 @@ test createWithdraw { test createUpdateValidatorIdentity { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createUpdateValidatorIdentity( allocator, @@ -1206,7 +1206,7 @@ test createUpdateValidatorIdentity { test createUpdateCommission { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createUpdateCommission( allocator, @@ -1228,7 +1228,7 @@ test createUpdateCommission { test createVoteSwitch { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createVoteSwitch( allocator, @@ -1257,7 +1257,7 @@ test createVoteSwitch { test createAuthorizeChecked { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createAuthorizeChecked( allocator, @@ -1280,7 +1280,7 @@ test createAuthorizeChecked { test createUpdateVoteState { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createUpdateVoteState( allocator, @@ -1307,7 +1307,7 @@ test createUpdateVoteState { test createUpdateVoteStateSwitch { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createUpdateVoteStateSwitch( allocator, @@ -1337,7 +1337,7 @@ test createUpdateVoteStateSwitch { test createAuthorizeWithSeed { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createAuthorizeWithSeed( allocator, @@ -1362,7 +1362,7 @@ test createAuthorizeWithSeed { test createAuthorizeCheckedWithSeed { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createAuthorizeCheckedWithSeed( allocator, @@ -1387,7 +1387,7 @@ test createAuthorizeCheckedWithSeed { test createCompactUpdateVoteState { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createCompactUpdateVoteState( allocator, @@ -1414,7 +1414,7 @@ test createCompactUpdateVoteState { test createCompactUpdateVoteStateSwitch { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createCompactUpdateVoteStateSwitch( allocator, @@ -1444,7 +1444,7 @@ test createCompactUpdateVoteStateSwitch { test createTowerSync { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createTowerSync( allocator, @@ -1474,7 +1474,7 @@ test createTowerSync { test createTowerSyncSwitch { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const instruction = try createTowerSyncSwitch( allocator, diff --git a/src/runtime/program/vote/state.zig b/src/runtime/program/vote/state.zig index f74668d501..a34410a823 100644 --- a/src/runtime/program/vote/state.zig +++ b/src/runtime/program/vote/state.zig @@ -2272,7 +2272,7 @@ test "state.VoteState.convertToCurrent" { test "state.VoteState.setNewAuthorizedVoter: success" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const node_publey = Pubkey.initRandom(prng.random()); const authorized_voter = Pubkey.initRandom(prng.random()); const new_voter = Pubkey.initRandom(prng.random()); @@ -2306,7 +2306,7 @@ test "state.VoteState.setNewAuthorizedVoter: success" { test "state.VoteState.setNewAuthorizedVoter: too soon to reauthorize" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const node_publey = Pubkey.initRandom(prng.random()); const authorized_voter = Pubkey.initRandom(prng.random()); const new_voter = Pubkey.initRandom(prng.random()); @@ -2343,7 +2343,7 @@ test "state.VoteState.setNewAuthorizedVoter: too soon to reauthorize" { test "state.VoteState.setNewAuthorizedVoter: invalid account data" { // Test attempt to set a voter with an invalid target epoch const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const node_publey = Pubkey.initRandom(prng.random()); const authorized_voter = Pubkey.initRandom(prng.random()); const new_voter = Pubkey.initRandom(prng.random()); @@ -2378,7 +2378,7 @@ test "state.VoteState.setNewAuthorizedVoter: invalid account data" { test "state.VoteState.isUninitialized: VoteState0_23_5 invalid account data" { // Test attempt to set a voter with an invalid target epoch const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const node_publey = Pubkey.initRandom(prng.random()); const authorized_voter = Pubkey.initRandom(prng.random()); const withdrawer = Pubkey.initRandom(prng.random()); @@ -2420,7 +2420,7 @@ test "state.VoteState.isUninitialized: VoteState0_23_5 invalid account data" { test "state.VoteState.isUninitialized: VoteStatev1_14_11 invalid account data" { // Test attempt to set a voter with an invalid target epoch const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const node_publey = Pubkey.initRandom(prng.random()); const authorized_voter = Pubkey.initRandom(prng.random()); const withdrawer = Pubkey.initRandom(prng.random()); @@ -2462,7 +2462,7 @@ test "state.VoteState.isUninitialized: VoteStatev1_14_11 invalid account data" { test "state.VoteState.isUninitialized: current invalid account data" { // Test attempt to set a voter with an invalid target epoch const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const node_publey = Pubkey.initRandom(prng.random()); const authorized_voter = Pubkey.initRandom(prng.random()); const withdrawer = Pubkey.initRandom(prng.random()); @@ -2503,7 +2503,7 @@ test "state.VoteState.isUninitialized: current invalid account data" { test "state.AuthorizedVoters.init" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const voter_pubkey = Pubkey.initRandom(prng.random()); var authorized_voters = try AuthorizedVoters.init(allocator, 10, voter_pubkey); defer authorized_voters.deinit(); @@ -2512,7 +2512,7 @@ test "state.AuthorizedVoters.init" { test "state.AuthorizedVoters.getAuthorizedVoter" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const voter_pubkey = Pubkey.initRandom(prng.random()); const new_pubkey = Pubkey.initRandom(prng.random()); @@ -2527,7 +2527,7 @@ test "state.AuthorizedVoters.getAuthorizedVoter" { test "state.AuthorizedVoters.purgeAuthorizedVoters" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const voter_pubkey = Pubkey.initRandom(prng.random()); var authorized_voters = try AuthorizedVoters.init(allocator, 5, voter_pubkey); @@ -2544,7 +2544,7 @@ test "state.AuthorizedVoters.purgeAuthorizedVoters" { test "state.AuthorizedVoters.first" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const voter_pubkey = Pubkey.initRandom(prng.random()); var authorized_voters = try AuthorizedVoters.init(allocator, 5, voter_pubkey); @@ -2560,7 +2560,7 @@ test "state.AuthorizedVoters.first" { test "state.AuthorizedVoters.last" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const voter_pubkey = Pubkey.initRandom(prng.random()); var authorized_voters = try AuthorizedVoters.init( @@ -2580,7 +2580,7 @@ test "state.AuthorizedVoters.last" { test "state.AuthorizedVoters.isEmpty" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var authorized_voters = try AuthorizedVoters.init( allocator, @@ -2593,7 +2593,7 @@ test "state.AuthorizedVoters.isEmpty" { test "state.AuthorizedVoters.len" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const voter_pubkey = Pubkey.initRandom(prng.random()); var authorized_voters = try AuthorizedVoters.init(allocator, 5, voter_pubkey); @@ -2609,7 +2609,7 @@ test "state.AuthorizedVoters.len" { test "state.AuthorizedVoters.contains" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const voter_pubkey = Pubkey.initRandom(prng.random()); var authorized_voters = try AuthorizedVoters.init(allocator, 5, voter_pubkey); @@ -2621,7 +2621,7 @@ test "state.AuthorizedVoters.contains" { test "state.VoteState.lastLockout" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 0, @@ -2672,7 +2672,7 @@ test "state.VoteState.lastLockout" { test "state.VoteState.lastVotedSlot" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 0, @@ -2716,7 +2716,7 @@ test "state.VoteState.lastVotedSlot" { // [agave] https://github.com/anza-xyz/agave/blob/6679ac4f38640496c64d234fffa61729f1572ce1/programs/vote/src/vote_state/mod.rs#L1275 test "state.VoteState.lastLockout extended" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock{ .slot = 0, @@ -2758,7 +2758,7 @@ test "state.VoteState.lastLockout extended" { // [agave] https://github.com/anza-xyz/agave/blob/6679ac4f38640496c64d234fffa61729f1572ce1/programs/vote/src/vote_state/mod.rs#L1499 test "state.VoteState.lockout double lockout after expiration" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; @@ -2797,7 +2797,7 @@ test "state.VoteState.lockout double lockout after expiration" { // [agave] https://github.com/anza-xyz/agave/blob/6679ac4f38640496c64d234fffa61729f1572ce1/programs/vote/src/vote_state/mod.rs#L1527 test "state.VoteState.lockout expire multiple votes" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; @@ -2843,7 +2843,7 @@ test "state.VoteState.lockout expire multiple votes" { // [agave] https://github.com/anza-xyz/agave/blob/6679ac4f38640496c64d234fffa61729f1572ce1/programs/vote/src/vote_state/mod.rs#L1558 test "state.VoteState.getCredits" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; @@ -2874,7 +2874,7 @@ test "state.VoteState.getCredits" { // [agave] https://github.com/anza-xyz/agave/blob/6679ac4f38640496c64d234fffa61729f1572ce1/programs/vote/src/vote_state/mod.rs#L1577 test "state.VoteState duplicate vote" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; @@ -2900,7 +2900,7 @@ test "state.VoteState duplicate vote" { // [agave] https://github.com/anza-xyz/agave/blob/6679ac4f38640496c64d234fffa61729f1572ce1/programs/vote/src/vote_state/mod.rs#L1589 test "state.VoteState nth recent lockout" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const clock = Clock.DEFAULT; @@ -2933,7 +2933,7 @@ test "state.VoteState nth recent lockout" { // [agave] https://github.com/anza-xyz/agave/blob/bdba5c5f93eeb6b981d41ea3c14173eb36879d3c/programs/vote/src/vote_state/mod.rs#L1632 test "state.VoteState.processVote process missed votes" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const account_a = Pubkey.initRandom(prng.random()); var vote_state_a = try createTestVoteState( @@ -3051,7 +3051,7 @@ test "state.VoteState.processVote skips old vote" { // [agave] https://github.com/anza-xyz/agave/blob/6679ac4f38640496c64d234fffa61729f1572ce1/programs/vote/src/vote_state/mod.rs#L2856 test "state.VoteState filter old votes" { - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const allocator = std.testing.allocator; @@ -4078,7 +4078,7 @@ test "state.VoteState process new vote current state contains bigger slots" { // [agave] https://github.com/anza-xyz/agave/blob/bdba5c5f93eeb6b981d41ea3c14173eb36879d3c/programs/vote/src/vote_state/mod.rs#L2916 test "state.VoteState.checkAndFilterProposedVoteState empty" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const empty_slot_hashes = try buildSlotHashes(allocator, random, &[_]Slot{}); defer empty_slot_hashes.deinit(allocator); @@ -4130,7 +4130,7 @@ test "state.VoteState.checkAndFilterProposedVoteState empty" { // [agave] https://github.com/anza-xyz/agave/blob/bdba5c5f93eeb6b981d41ea3c14173eb36879d3c/programs/vote/src/vote_state/mod.rs#L2948 test "state.VoteState.checkAndFilterProposedVoteState too old" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const latest_vote = 4; const slot_hashes = try buildSlotHashes(allocator, random, &[_]Slot{ 1, 2, 3, 4 }); @@ -4197,7 +4197,7 @@ test "state.VoteState.checkAndFilterProposedVoteState too old" { // [agave] https://github.com/anza-xyz/agave/blob/bdba5c5f93eeb6b981d41ea3c14173eb36879d3c/programs/vote/src/vote_state/mod.rs#L3063 test "state.VoteState.checkAndFilterProposedVoteState older than history root" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // Test when `proposed_root` is in `current_vote_state_slots` but it's not the latest // slot @@ -4375,7 +4375,7 @@ test "state.VoteState.checkAndFilterProposedVoteState older than history root" { // [agave] https://github.com/anza-xyz/agave/blob/bdba5c5f93eeb6b981d41ea3c14173eb36879d3c/programs/vote/src/vote_state/mod.rs#L3188 test "state.VoteState.checkAndFilterProposedVoteState slots not ordered" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const slot_hashes = try buildSlotHashes(allocator, random, &[_]Slot{ 1, 2, 3, 4 }); defer slot_hashes.deinit(allocator); @@ -4446,7 +4446,7 @@ test "state.VoteState.checkAndFilterProposedVoteState slots not ordered" { // [agave] https://github.com/anza-xyz/agave/blob/bdba5c5f93eeb6b981d41ea3c14173eb36879d3c/programs/vote/src/vote_state/mod.rs#L3228 test "state.VoteState.checkAndFilterProposedVoteState older than history slots filtered" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const init_slot_hashes = try buildSlotHashes(allocator, random, &[_]Slot{ 1, 2, 3, 4 }); defer init_slot_hashes.deinit(allocator); @@ -4525,7 +4525,7 @@ test "state.VoteState.checkAndFilterProposedVoteState older than history slots f // [agave] https://github.com/anza-xyz/agave/blob/bdba5c5f93eeb6b981d41ea3c14173eb36879d3c/programs/vote/src/vote_state/mod.rs#L3284 test "state.VoteState.checkAndFilterProposedVoteState older than history slots not filtered" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const init_slot_hashes = try buildSlotHashes(allocator, random, &[_]Slot{4}); defer init_slot_hashes.deinit(allocator); @@ -4605,7 +4605,7 @@ test "state.VoteState.checkAndFilterProposedVoteState older than history slots n // [agave] https://github.com/anza-xyz/agave/blob/bdba5c5f93eeb6b981d41ea3c14173eb36879d3c/programs/vote/src/vote_state/mod.rs#L3337 test "state.VoteState.checkAndFilterProposedVoteState older history slots filtered/not filtered" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const init_slot_hashes = try buildSlotHashes(allocator, random, &[_]Slot{6}); defer init_slot_hashes.deinit(allocator); @@ -4693,7 +4693,7 @@ test "state.VoteState.checkAndFilterProposedVoteState older history slots filter // [agave] https://github.com/anza-xyz/agave/blob/bdba5c5f93eeb6b981d41ea3c14173eb36879d3c/programs/vote/src/vote_state/mod.rs#L3404 test "state.VoteState.checkAndFilterProposedVoteState slot not on fork" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const slot_hashes = try buildSlotHashes(allocator, random, &[_]Slot{ 2, 4, 6, 8 }); defer slot_hashes.deinit(allocator); @@ -4770,7 +4770,7 @@ test "state.VoteState.checkAndFilterProposedVoteState slot not on fork" { // [agave] https://github.com/anza-xyz/agave/blob/bdba5c5f93eeb6b981d41ea3c14173eb36879d3c/programs/vote/src/vote_state/mod.rs#L3459 test "state.VoteState.checkAndFilterProposedVoteState root on different fork" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const slot_hashes = try buildSlotHashes(allocator, random, &[_]Slot{ 2, 4, 6, 8 }); defer slot_hashes.deinit(allocator); @@ -4824,7 +4824,7 @@ test "state.VoteState.checkAndFilterProposedVoteState root on different fork" { // [agave] https://github.com/anza-xyz/agave/blob/bdba5c5f93eeb6b981d41ea3c14173eb36879d3c/programs/vote/src/vote_state/mod.rs#L3495 test "state.VoteState.checkAndFilterProposedVoteState slot newer than slot history" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const slot_hashes = try buildSlotHashes(allocator, random, &[_]Slot{ 2, 4, 6, 8, 10 }); defer slot_hashes.deinit(allocator); @@ -4867,7 +4867,7 @@ test "state.VoteState.checkAndFilterProposedVoteState slot newer than slot histo // [agave] https://github.com/anza-xyz/agave/blob/bdba5c5f93eeb6b981d41ea3c14173eb36879d3c/programs/vote/src/vote_state/mod.rs#L3521 test "state.VoteState.checkAndFilterProposedVoteState slot all slot hases in update ok" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const slot_hashes = try buildSlotHashes(allocator, random, &[_]Slot{ 2, 4, 6, 8 }); defer slot_hashes.deinit(allocator); @@ -4941,7 +4941,7 @@ test "state.VoteState.checkAndFilterProposedVoteState slot all slot hases in upd // [agave] https://github.com/anza-xyz/agave/blob/bdba5c5f93eeb6b981d41ea3c14173eb36879d3c/programs/vote/src/vote_state/mod.rs#L3574 test "state.VoteState.checkAndFilterProposedVoteState some slot hashes in update ok" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const slot_hashes = try buildSlotHashes(allocator, random, &[_]Slot{ 2, 4, 6, 8, 10 }); defer slot_hashes.deinit(allocator); @@ -5014,7 +5014,7 @@ test "state.VoteState.checkAndFilterProposedVoteState some slot hashes in update // [agave] https://github.com/anza-xyz/agave/blob/bdba5c5f93eeb6b981d41ea3c14173eb36879d3c/programs/vote/src/vote_state/mod.rs#L3630 test "state.VoteState.checkAndFilterProposedVoteState slot hashes mismatch" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const slot_hashes = try buildSlotHashes(allocator, random, &[_]Slot{ 2, 4, 6, 8 }); defer slot_hashes.deinit(allocator); diff --git a/src/runtime/program/zk_elgamal/tests.zig b/src/runtime/program/zk_elgamal/tests.zig index a782b35ef4..afd3c40715 100644 --- a/src/runtime/program/zk_elgamal/tests.zig +++ b/src/runtime/program/zk_elgamal/tests.zig @@ -679,7 +679,7 @@ fn testVerifyProofWithoutContext( success_proof_data: Proof, fail_proof_data: Proof, ) !void { - var prng = std.Random.DefaultPrng.init(123); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var success_data: [Proof.BYTE_LEN + 1]u8 = undefined; diff --git a/src/runtime/program_loader.zig b/src/runtime/program_loader.zig index 0cf3345f4b..077f38a2ed 100644 --- a/src/runtime/program_loader.zig +++ b/src/runtime/program_loader.zig @@ -163,7 +163,7 @@ pub fn loadDeploymentSlotAndExecutableBytes( test "loadPrograms: load v1, v2 program" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const program_elf = try std.fs.cwd().readFileAlloc( allocator, @@ -234,7 +234,7 @@ test "loadPrograms: load v1, v2 program" { test "loadPrograms: load v3 program" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const program_key = Pubkey.initRandom(prng.random()); const program_data_key = Pubkey.initRandom(prng.random()); @@ -375,7 +375,7 @@ test "loadPrograms: load v3 program" { test "loadPrograms: load v4 program" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const program_deployment_slot = 0; const program_key = Pubkey.initRandom(prng.random()); @@ -468,7 +468,7 @@ test "loadPrograms: load v4 program" { test "loadPrograms: bad owner" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var accounts = std.AutoArrayHashMapUnmanaged(Pubkey, AccountSharedData){}; defer { diff --git a/src/runtime/pubkey_utils.zig b/src/runtime/pubkey_utils.zig index f35ddf4cb0..d4e714b5ef 100644 --- a/src/runtime/pubkey_utils.zig +++ b/src/runtime/pubkey_utils.zig @@ -123,7 +123,7 @@ test "mapError" { // [agave] https://github.com/anza-xyz/agave/blob/c5ed1663a1218e9e088e30c81677bc88059cc62b/sdk/pubkey/src/lib.rs#L1336 test "findProgramAddress" { - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); for (0..1_000) |_| { const program_id = Pubkey.initRandom(prng.random()); @@ -144,7 +144,7 @@ test "findProgramAddress" { } test "createProgramAddress" { - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); for (0..1_000) |_| { const program_id = Pubkey.initRandom(prng.random()); diff --git a/src/runtime/stable_log.zig b/src/runtime/stable_log.zig index 1985e1f10a..80cbfe0916 100644 --- a/src/runtime/stable_log.zig +++ b/src/runtime/stable_log.zig @@ -161,7 +161,7 @@ test "stable_log" { const createTransactionContext = sig.runtime.testing.createTransactionContext; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try createTransactionContext( allocator, diff --git a/src/runtime/sysvar/instruction.zig b/src/runtime/sysvar/instruction.zig index 5ae08a5948..9762ec6d89 100644 --- a/src/runtime/sysvar/instruction.zig +++ b/src/runtime/sysvar/instruction.zig @@ -72,7 +72,7 @@ pub fn serializeInstructions( // [agave] https://github.com/anza-xyz/agave/blob/a00f1b5cdea9a7d5a70f8d24b86ea3ae66feff11/sdk/program/src/sysvar/instructions.rs#L520 test serializeInstructions { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const program_id0 = Pubkey.initRandom(prng.random()); const program_id1 = Pubkey.initRandom(prng.random()); diff --git a/src/runtime/sysvar/recent_blockhashes.zig b/src/runtime/sysvar/recent_blockhashes.zig index 5074490485..3f8a4dbc9a 100644 --- a/src/runtime/sysvar/recent_blockhashes.zig +++ b/src/runtime/sysvar/recent_blockhashes.zig @@ -112,7 +112,7 @@ pub const RecentBlockhashes = struct { test "from blockhash queue" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const queue = try BlockhashQueue.initRandom(allocator, prng.random(), 1000); defer queue.deinit(allocator); @@ -130,7 +130,7 @@ test "from blockhash queue" { test "serialize and deserialize" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); { diff --git a/src/runtime/sysvar/slot_hashes.zig b/src/runtime/sysvar/slot_hashes.zig index d0e93bd9eb..e5acc0ef16 100644 --- a/src/runtime/sysvar/slot_hashes.zig +++ b/src/runtime/sysvar/slot_hashes.zig @@ -97,7 +97,7 @@ pub const SlotHashes = struct { test "add and get" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var slot_hashes = try SlotHashes.init(allocator); @@ -138,7 +138,7 @@ test "add and get" { test "serialize and deserialize" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); { diff --git a/src/runtime/sysvar/stake_history.zig b/src/runtime/sysvar/stake_history.zig index 80a0ab362d..930240a755 100644 --- a/src/runtime/sysvar/stake_history.zig +++ b/src/runtime/sysvar/stake_history.zig @@ -113,7 +113,7 @@ pub const StakeHistory = struct { test "serialize and deserialize" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); { diff --git a/src/runtime/testing.zig b/src/runtime/testing.zig index d5bfbdec25..9f17a425ed 100644 --- a/src/runtime/testing.zig +++ b/src/runtime/testing.zig @@ -47,7 +47,7 @@ pub const ExecuteContextsParams = struct { return_data: ReturnDataParams = .{}, accounts_resize_delta: i64 = 0, compute_meter: u64 = 0, - compute_budget: ComputeBudget = ComputeBudget.default(1_400_000), + compute_budget: ComputeBudget = ComputeBudget.DEFAULT, custom_error: ?u32 = null, log_collector: ?LogCollector = null, prev_blockhash: Hash = Hash.ZEROES, diff --git a/src/runtime/transaction_execution.zig b/src/runtime/transaction_execution.zig index 56e31b19d6..2af7f4a3d6 100644 --- a/src/runtime/transaction_execution.zig +++ b/src/runtime/transaction_execution.zig @@ -677,7 +677,7 @@ fn getInstructionDatasSliceForPrecompiles( test getInstructionDatasSliceForPrecompiles { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); var feature_set = sig.core.FeatureSet.ALL_DISABLED; @@ -756,7 +756,7 @@ test getInstructionDatasSliceForPrecompiles { test "loadAndExecuteTransactions: no transactions" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const transactions: []RuntimeTransaction = &.{}; var batch_account_cache: account_loader.BatchAccountCache = .{}; @@ -816,7 +816,7 @@ test "loadAndExecuteTransactions: no transactions" { test "loadAndExecuteTransactions: invalid compute budget instruction" { const Signature = sig.core.Signature; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const recent_blockhash = Hash.initRandom(prng.random()); @@ -848,7 +848,7 @@ test "loadAndExecuteTransactions: invalid compute budget instruction" { test "loadAndExecuteTransaction: simple transfer transaction" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const sender_key = Pubkey.initRandom(prng.random()); const receiver_key = Pubkey.initRandom(prng.random()); diff --git a/src/shred_network/repair_message.zig b/src/shred_network/repair_message.zig index e40261d955..e3feb85f65 100644 --- a/src/shred_network/repair_message.zig +++ b/src/shred_network/repair_message.zig @@ -204,7 +204,7 @@ pub const RepairRequestHeader = struct { test "signed/serialized RepairRequest is valid" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(392138); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); inline for (.{ @@ -241,14 +241,12 @@ test "signed/serialized RepairRequest is valid" { } test "RepairRequestHeader serialization round trip" { - var prng = std.Random.DefaultPrng.init(5224); - var signature: [Signature.SIZE]u8 = undefined; - prng.fill(&signature); + const allocator = std.testing.allocator; const header: RepairRequestHeader = .{ - .signature = .{ .data = signature }, - .sender = Pubkey.initRandom(prng.random()), - .recipient = Pubkey.initRandom(prng.random()), + .signature = .ZEROES, + .sender = .parse("2Trk3PpxjMF2AYWr9pVjwzxZ9jXN4HMawCfqscupx4Nq"), + .recipient = .parse("C5bJrseEwRf4ffTr9dP7wsYmWkJKScZX8VqqpzvNNf4S"), .timestamp = 5924, .nonce = 123, }; @@ -257,21 +255,22 @@ test "RepairRequestHeader serialization round trip" { const serialized = try bincode.writeToSlice(&buf, header, .{}); const expected = [_]u8{ - 39, 95, 42, 53, 95, 32, 120, 241, 244, 206, 142, 80, 233, 26, 232, 206, 241, - 24, 226, 101, 183, 172, 170, 201, 42, 127, 121, 127, 213, 234, 180, 0, 226, 0, - 128, 58, 176, 144, 99, 139, 220, 112, 10, 117, 212, 239, 129, 197, 170, 11, 92, - 151, 239, 163, 174, 85, 172, 227, 75, 115, 1, 143, 134, 9, 21, 189, 8, 17, - 240, 55, 159, 41, 45, 133, 143, 153, 57, 113, 39, 28, 86, 183, 182, 76, 41, - 19, 160, 55, 54, 41, 126, 184, 144, 195, 245, 38, 164, 157, 171, 233, 18, 178, - 15, 2, 196, 46, 124, 59, 178, 108, 95, 194, 39, 18, 119, 16, 226, 118, 112, - 26, 255, 82, 27, 175, 162, 144, 207, 151, 36, 23, 0, 0, 0, 0, 0, 0, - 123, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 21, 189, 8, 17, 240, 55, 159, 41, 45, 133, 143, + 153, 57, 113, 39, 28, 86, 183, 182, 76, 41, 19, 160, 55, 54, 41, + 126, 184, 144, 195, 245, 38, 164, 157, 171, 233, 18, 178, 15, 2, 196, + 46, 124, 59, 178, 108, 95, 194, 39, 18, 119, 16, 226, 118, 112, 26, + 255, 82, 27, 175, 162, 144, 207, 151, 36, 23, 0, 0, 0, 0, 0, + 0, 123, 0, 0, 0, }; - try std.testing.expect(std.mem.eql(u8, &expected, serialized)); + try std.testing.expectEqualSlices(u8, &expected, serialized); const roundtripped = try bincode.readFromSlice( - std.testing.allocator, + allocator, RepairRequestHeader, serialized, .{}, @@ -351,7 +350,7 @@ test "RepairProtocolMessage.AncestorHashes serialization round trip" { } test "RepairProtocolMessage serializes to size <= MAX_SERIALIZED_SIZE" { - var prng = std.Random.DefaultPrng.init(184837); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); for (0..10) |_| { inline for (@typeInfo(RepairMessage.Tag).@"enum".fields) |enum_field| { const tag = @field(RepairMessage.Tag, enum_field.name); diff --git a/src/shred_network/repair_service.zig b/src/shred_network/repair_service.zig index ce6522d7b5..9493fcb153 100644 --- a/src/shred_network/repair_service.zig +++ b/src/shred_network/repair_service.zig @@ -117,7 +117,7 @@ pub const RepairService = struct { .report = MultiSlotReport.init(allocator), .thread_pool = try RequestBatchThreadPool.init(allocator, n_threads, n_threads), .metrics = try registry.initStruct(Metrics), - .prng = std.Random.DefaultPrng.init(0), + .prng = std.Random.DefaultPrng.init(std.testing.random_seed), }; } @@ -600,7 +600,7 @@ test "RepairService sends repair request to gossip peer" { const allocator = std.testing.allocator; var registry = sig.prometheus.Registry(.{}).init(allocator); defer registry.deinit(); - var prng = std.Random.DefaultPrng.init(4328095); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // my details @@ -681,7 +681,7 @@ test "RepairService sends repair request to gossip peer" { test "RepairPeerProvider selects correct peers" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(4328095); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); // my details diff --git a/src/shred_network/service.zig b/src/shred_network/service.zig index bc60f761df..a6341a9128 100644 --- a/src/shred_network/service.zig +++ b/src/shred_network/service.zig @@ -253,7 +253,7 @@ test "start and stop gracefully" { var exit = Atomic(bool).init(false); - var rng = Random.DefaultPrng.init(0); + var rng = Random.DefaultPrng.init(std.testing.random_seed); var registry = Registry(.{}).init(allocator); defer registry.deinit(); diff --git a/src/shred_network/turbine_tree.zig b/src/shred_network/turbine_tree.zig index ca16e1c1c5..327583073e 100644 --- a/src/shred_network/turbine_tree.zig +++ b/src/shred_network/turbine_tree.zig @@ -619,7 +619,7 @@ fn testCheckRetransmitNodesRoundTrip( fanout: usize, size: comptime_int, ) !void { - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const rand = prng.random(); var nodes = testGetRandomNodes(size, rand); @@ -677,7 +677,7 @@ fn testCheckRetransmitNodesRoundTrip( test "agave: cluster nodes retransmit" { const allocator = std.testing.allocator; - var xrng = std.Random.DefaultPrng.init(0); + var xrng = std.Random.DefaultPrng.init(std.testing.random_seed); const rng = xrng.random(); // Setup Environment @@ -727,7 +727,7 @@ test "agave: cluster nodes retransmit" { test "agave: get retransmit nodes" { { // 20 nodes, 2 fanout - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const nds = testGetRandomNodes(20, prng.random()); const nodes: []const TurbineTree.Node = &.{ nds[7], // root @@ -760,7 +760,7 @@ test "agave: get retransmit nodes" { try testCheckRetransmitNodes(std.testing.allocator, 2, nodes, peers); } { // 36 nodes, 3 fanout - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const nds = testGetRandomNodes(36, prng.random()); const nodes: []const TurbineTree.Node = &.{ nds[19], // root diff --git a/src/time/stake_weighted_timestamp.zig b/src/time/stake_weighted_timestamp.zig index 3327081dce..93208f8f6a 100644 --- a/src/time/stake_weighted_timestamp.zig +++ b/src/time/stake_weighted_timestamp.zig @@ -108,7 +108,7 @@ test "uses median: low-staked outliers" { const LAMPORTS_PER_SOL: u64 = 1_000_000_000; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const recent_timestamp: i64 = 1_578_909_061; @@ -244,7 +244,7 @@ test "uses median: high-staked outliers" { const LAMPORTS_PER_SOL: u64 = 1_000_000_000; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const recent_timestamp: i64 = 1_578_909_061; @@ -331,7 +331,7 @@ test "poh" { const LAMPORTS_PER_SOL: u64 = 1_000_000_000; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const epoch_start_timestamp: i64 = 1_578_909_061; @@ -456,7 +456,7 @@ test "levels" { const LAMPORTS_PER_SOL: u64 = 1_000_000_000; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const epoch_start_timestamp: i64 = 1_578_909_061; @@ -574,7 +574,7 @@ test "fast slow" { const LAMPORTS_PER_SOL: u64 = 1_000_000_000; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const epoch_start_timestamp: i64 = 1_578_909_061; @@ -682,7 +682,7 @@ test "early" { const LAMPORTS_PER_SOL: u64 = 1_000_000_000; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); const epoch_start_timestamp: i64 = 1_578_909_061; diff --git a/src/transaction_sender/mock_transfer_generator.zig b/src/transaction_sender/mock_transfer_generator.zig index 376ed86341..69d98cde5f 100644 --- a/src/transaction_sender/mock_transfer_generator.zig +++ b/src/transaction_sender/mock_transfer_generator.zig @@ -84,7 +84,7 @@ pub const MockTransferService = struct { pub fn run(self: *MockTransferService, n_transactions: u64, n_lamports_per_tx: u64) !void { errdefer self.exit.store(true, .monotonic); - var prng = std.Random.DefaultPrng.init(19); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const random = prng.random(); if (n_lamports_per_tx < MIN_LAMPORTS_FOR_RENT) { diff --git a/src/utils/deduper.zig b/src/utils/deduper.zig index fbdb5caef6..08f2ff1128 100644 --- a/src/utils/deduper.zig +++ b/src/utils/deduper.zig @@ -110,7 +110,7 @@ fn testGetCapacity(comptime K: usize, num_bits: u64, false_positive_rate: f64) u /// Checks that the deduper with a specific number of bits and false positive rate /// has the correct capacity. fn testDedupCapacity(num_bits: u64, false_positive_rate: f64, capacity: u64) !void { - var xoshiro = std.Random.DefaultPrng.init(0); + var xoshiro = std.Random.DefaultPrng.init(std.testing.random_seed); const rng = xoshiro.random(); try std.testing.expectEqual( diff --git a/src/vm/main.zig b/src/vm/main.zig index c6c2ef6e19..ef0283d5cb 100644 --- a/src/vm/main.zig +++ b/src/vm/main.zig @@ -72,7 +72,7 @@ pub fn main() !void { .compute_meter = cmd.limit, .prev_blockhash = Hash.ZEROES, .prev_lamports_per_signature = 0, - .compute_budget = ComputeBudget.default(1_400_000), + .compute_budget = ComputeBudget.DEFAULT, .slot = 0, }; defer tc.deinit(); diff --git a/src/vm/syscalls/cpi.zig b/src/vm/syscalls/cpi.zig index 0af0cac754..6ca19cbc8a 100644 --- a/src/vm/syscalls/cpi.zig +++ b/src/vm/syscalls/cpi.zig @@ -1349,7 +1349,7 @@ const TestAccount = struct { test "CallerAccount.fromAccountInfoRust" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var ctx = try TestContext.init(allocator, prng.random(), "foobar"); defer ctx.deinit(allocator); @@ -1403,7 +1403,7 @@ test "CallerAccount.fromAccountInfoRust" { test "CallerAccount.fromAccountInfoC" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var ctx = try TestContext.init(allocator, prng.random(), "foobar"); defer ctx.deinit(allocator); @@ -1489,7 +1489,7 @@ test "CallerAccount.fromAccountInfoC" { test "translateAccounts" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var ctx = try TestContext.init(allocator, prng.random(), "foobar"); defer ctx.deinit(allocator); @@ -1632,7 +1632,7 @@ fn intoStableInstruction( fn testTranslateInstruction(comptime AccountInfoType: type) !void { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var ctx = try TestContext.init(allocator, prng.random(), "foo"); defer ctx.deinit(allocator); @@ -1699,7 +1699,7 @@ test "translateInstructionC" { test "translateSigners" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var ctx = try TestContext.init(allocator, prng.random(), "foo"); defer ctx.deinit(allocator); @@ -1865,7 +1865,7 @@ const TestCallerAccount = struct { test "updateCalleeAccount: lamports owner" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); for ([_]bool{ false, true }) |stricter_abi_and_runtime_constraints| { var ctx = try TestContext.init(allocator, prng.random(), &.{}); @@ -1904,7 +1904,7 @@ test "updateCalleeAccount: lamports owner" { test "updateCalleeAccount: data writable" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); for ([_]bool{ false, true }) |stricter_abi_and_runtime_constraints| { var ctx = try TestContext.init(allocator, prng.random(), "foobar"); @@ -2003,7 +2003,7 @@ test "updateCalleeAccount: data writable" { test "updateCalleeAccount: data readonly" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); for ([_]bool{ false, true }) |stricter_abi_and_runtime_constraints| { // Custom TestContext to set readonly account. @@ -2081,7 +2081,7 @@ test "updateCalleeAccount: data readonly" { test "updateCallerAccount: lamports owner" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); for ([_]bool{ false, true }) |stricter_abi_and_runtime_constraints| { var ctx = try TestContext.init(allocator, prng.random(), &.{}); @@ -2119,7 +2119,7 @@ test "updateCallerAccount: lamports owner" { test "updateCallerAccount: data" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var ctx = try TestContext.init(allocator, prng.random(), "foobar"); defer ctx.deinit(allocator); @@ -2233,7 +2233,7 @@ test "cpiCommon (invokeSignedC)" { fn testCpiCommon(comptime AccountInfoType: type) !void { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(5083); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); for ([_]bool{ false, true }) |stricter_abi_and_runtime_constraints| { var ctx = try TestContext.init(allocator, prng.random(), "hello world"); diff --git a/src/vm/syscalls/ecc.zig b/src/vm/syscalls/ecc.zig index 6f3c26bf50..09dce6d6a8 100644 --- a/src/vm/syscalls/ecc.zig +++ b/src/vm/syscalls/ecc.zig @@ -676,7 +676,7 @@ test "edwards curve point validation" { }; const invalid_bytes_addr = 0x200000000; - const compute_budget = sig.runtime.ComputeBudget.default(1_400_000); + const compute_budget = sig.runtime.ComputeBudget.DEFAULT; const total_compute = compute_budget.curve25519_edwards_validate_point_cost * 2; try sig.vm.tests.testSyscall( @@ -713,7 +713,7 @@ test "ristretto curve point validation" { }; const invalid_bytes_addr = 0x200000000; - const compute_budget = sig.runtime.ComputeBudget.default(1_400_000); + const compute_budget = sig.runtime.ComputeBudget.DEFAULT; const total_compute = compute_budget.curve25519_ristretto_validate_point_cost * 2; try sig.vm.tests.testSyscall( @@ -769,7 +769,7 @@ test "edwards curve group operations" { var result_point: [32]u8 = undefined; const result_point_addr = 0x500000000; - const compute_budget = sig.runtime.ComputeBudget.default(1_400_000); + const compute_budget = sig.runtime.ComputeBudget.DEFAULT; const total_compute = (compute_budget.curve25519_edwards_add_cost + compute_budget.curve25519_edwards_subtract_cost + compute_budget.curve25519_edwards_multiply_cost); @@ -797,7 +797,7 @@ test "edwards curve group operations" { .{ .compute_meter = total_compute }, ); - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try sig.runtime.testing.createTransactionContext( allocator, prng.random(), @@ -904,7 +904,7 @@ test "ristretto curve group operations" { var result_point: [32]u8 = undefined; const result_point_addr = 0x500000000; - const compute_budget = sig.runtime.ComputeBudget.default(1_400_000); + const compute_budget = sig.runtime.ComputeBudget.DEFAULT; const total_compute = (compute_budget.curve25519_ristretto_add_cost + compute_budget.curve25519_ristretto_subtract_cost + compute_budget.curve25519_ristretto_multiply_cost) * 2; @@ -931,7 +931,7 @@ test "ristretto curve group operations" { .{ .compute_meter = total_compute }, ); - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try sig.runtime.testing.createTransactionContext( allocator, prng.random(), @@ -1062,13 +1062,13 @@ test "multiscalar multiplication" { }, .v3, .{}); defer memory_map.deinit(allocator); - const compute_budget = sig.runtime.ComputeBudget.default(1_400_000); + const compute_budget = sig.runtime.ComputeBudget.DEFAULT; const total_compute = compute_budget.curve25519_edwards_msm_base_cost + compute_budget.curve25519_edwards_msm_incremental_cost + compute_budget.curve25519_ristretto_msm_base_cost + compute_budget.curve25519_ristretto_msm_incremental_cost; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try sig.runtime.testing.createTransactionContext( allocator, prng.random(), @@ -1163,7 +1163,7 @@ test "multiscalar multiplication large" { }, .v3, .{}); defer memory_map.deinit(allocator); - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try sig.runtime.testing.createTransactionContext( allocator, prng.random(), @@ -1252,7 +1252,7 @@ test "multiscalar multiplication large" { test "alt_bn128 add" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try sig.runtime.testing.createTransactionContext( allocator, prng.random(), @@ -1321,7 +1321,7 @@ test "alt_bn128 add" { test "alt_bn128 mul" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try sig.runtime.testing.createTransactionContext( allocator, prng.random(), @@ -1386,7 +1386,7 @@ test "alt_bn128 mul" { test "alt_bn128 pairing" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try sig.runtime.testing.createTransactionContext( allocator, prng.random(), @@ -1473,7 +1473,7 @@ test "alt_bn128 pairing" { test "alt_bn128 g1 compress/decompress" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try sig.runtime.testing.createTransactionContext( allocator, prng.random(), @@ -1536,7 +1536,7 @@ test "alt_bn128 g1 compress/decompress" { test "alt_bn128 g2 compress/decompress" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try sig.runtime.testing.createTransactionContext( allocator, prng.random(), @@ -1607,7 +1607,7 @@ test "alt_bn128 g2 compress/decompress" { test "alt_bn128 compression failure cases" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try sig.runtime.testing.createTransactionContext( allocator, prng.random(), @@ -1700,7 +1700,7 @@ test "alt_bn128 compression failure cases" { test "alt_bn128 group op failure cases" { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try sig.runtime.testing.createTransactionContext( allocator, prng.random(), diff --git a/src/vm/syscalls/hash.zig b/src/vm/syscalls/hash.zig index 0d2f702d50..1216b4d96f 100644 --- a/src/vm/syscalls/hash.zig +++ b/src/vm/syscalls/hash.zig @@ -194,7 +194,7 @@ test poseidon { } test "poseidon len 0" { - const budget = sig.runtime.ComputeBudget.default(1_400_000); + const budget = sig.runtime.ComputeBudget.DEFAULT; const total_compute = budget.poseidonCost(0); // enough for one call var buffer: [32]u8 = undefined; try sig.vm.tests.testSyscall( @@ -228,7 +228,7 @@ test sha256 { const bytes_to_hash: [2]memory.VmSlice = .{ mock_slice1, mock_slice2 }; var hash_result: [32]u8 = .{0} ** 32; - const compute_budget = sig.runtime.ComputeBudget.default(1_400_000); + const compute_budget = sig.runtime.ComputeBudget.DEFAULT; const total_compute = (compute_budget.sha256_base_cost + @max( compute_budget.mem_op_base_cost, compute_budget.sha256_byte_cost * (bytes1.len + bytes2.len) / 2, diff --git a/src/vm/syscalls/lib.zig b/src/vm/syscalls/lib.zig index b0f755b35a..4e78bee863 100644 --- a/src/vm/syscalls/lib.zig +++ b/src/vm/syscalls/lib.zig @@ -699,7 +699,7 @@ fn callProgramAddressSyscall( test findProgramAddress { const testing = sig.runtime.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try testing.createTransactionContext(allocator, prng.random(), .{ .accounts = &.{ @@ -817,7 +817,7 @@ test findProgramAddress { test createProgramAddress { const testing = sig.runtime.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try testing.createTransactionContext(allocator, prng.random(), .{ .accounts = &.{ @@ -986,7 +986,7 @@ test createProgramAddress { test allocFree { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try sig.runtime.testing.createTransactionContext( allocator, @@ -1034,7 +1034,7 @@ test allocFree { test getProcessedSiblingInstruction { const testing = sig.runtime.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var account_params: [9]testing.ExecuteContextsParams.AccountParams = undefined; for (&account_params) |*a| a.* = .{ @@ -1186,7 +1186,7 @@ test getProcessedSiblingInstruction { test getEpochStake { const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); const target_vote_address = Pubkey.initRandom(prng.random()); const total_epoch_stake = 200_000_000_000_000; @@ -1313,7 +1313,7 @@ test "set and get return data" { var data_buffer: [16]u8 = .{0} ** 16; var id_buffer: [32]u8 = .{0} ** 32; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try sig.runtime.testing.createTransactionContext( allocator, prng.random(), diff --git a/src/vm/syscalls/sysvar.zig b/src/vm/syscalls/sysvar.zig index 4a4090fedc..0a81f6787a 100644 --- a/src/vm/syscalls/sysvar.zig +++ b/src/vm/syscalls/sysvar.zig @@ -161,7 +161,7 @@ test getSysvar { const testing = sig.runtime.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try testing.createTransactionContext(allocator, prng.random(), .{ .accounts = &.{}, @@ -499,7 +499,7 @@ fn testGetStakeHistory(filled: bool) !void { } const testing = sig.runtime.testing; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try testing.createTransactionContext(allocator, prng.random(), .{ .accounts = &.{}, .compute_meter = std.math.maxInt(u64), @@ -577,7 +577,7 @@ fn testGetSlotHashes(filled: bool) !void { } const testing = sig.runtime.testing; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try testing.createTransactionContext(allocator, prng.random(), .{ .accounts = &.{}, .compute_meter = std.math.maxInt(u64), diff --git a/src/vm/tests.zig b/src/vm/tests.zig index fe60a4cf9f..3dbd88169e 100644 --- a/src/vm/tests.zig +++ b/src/vm/tests.zig @@ -69,7 +69,7 @@ fn testAsmWithMemory( config, ); - var prng = std.Random.DefaultPrng.init(10); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try createTransactionContext( allocator, prng.random(), @@ -1912,7 +1912,7 @@ test "pqr" { program[33] = 16; // src = r1 program[40] = @intFromEnum(OpCode.exit_or_syscall); - var prng = std.Random.DefaultPrng.init(10); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try createTransactionContext( allocator, prng.random(), @@ -2059,7 +2059,7 @@ test "pqr divide by zero" { defer executable.deinit(allocator); const map = try MemoryMap.init(allocator, &.{}, .v3, .{}); - var prng = std.Random.DefaultPrng.init(10); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try createTransactionContext( allocator, @@ -2341,7 +2341,7 @@ pub fn testElfWithSyscalls( config, ); - var prng = std.Random.DefaultPrng.init(10); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try createTransactionContext( allocator, prng.random(), @@ -2955,7 +2955,7 @@ pub fn testSyscall( ) !void { const testing = sig.runtime.testing; const allocator = std.testing.allocator; - var prng = std.Random.DefaultPrng.init(0); + var prng = std.Random.DefaultPrng.init(std.testing.random_seed); var cache, var tc = try testing.createTransactionContext(allocator, prng.random(), .{ .accounts = &.{.{