1 module tagion.testbench.dart_insert_remove_stress; 2 3 import std.array; 4 import std.path : buildPath, setExtension; 5 import std.range : take; 6 import std.stdio : writefln; 7 import std.traits : moduleName; 8 import tagion.basic.Types : FileExtension; 9 import tagion.basic.Version; 10 import tagion.behaviour.Behaviour; 11 import tagion.communication.HiRPC : HiRPC; 12 import tagion.crypto.SecureInterfaceNet : HashNet, SecureNet; 13 import tagion.crypto.SecureNet : StdSecureNet; 14 import tagion.dart.DARTFakeNet : DARTFakeNet; 15 import tagion.hibon.HiBONFile : fwrite; 16 import tagion.testbench.dart; 17 import tagion.testbench.dart.dartinfo; 18 import tagion.testbench.tools.Environment; 19 import tagion.testbench.tools.Environment; 20 import tagion.tools.Basic; 21 22 mixin Main!(_main); 23 24 int _main(string[] args) { 25 26 if (env.stage == Stage.performance) { 27 const string module_path = env.bdd_log.buildPath(__MODULE__); 28 const string dartfilename = buildPath(module_path, "dart_insert_remove_stress_test".setExtension(FileExtension 29 .dart)); 30 31 SecureNet net; 32 33 version (REAL_HASHES) { 34 net = new StdSecureNet(); 35 net.generateKeyPair("very secret"); 36 } 37 else { 38 net = new DARTFakeNet("very secret"); 39 } 40 41 const hirpc = HiRPC(net); 42 43 DartInfo dart_info = DartInfo(dartfilename, module_path, net, hirpc); 44 45 auto dart_ADD_REMOVE_stress_feature = automation!(insert_remove_stress)(); 46 dart_ADD_REMOVE_stress_feature.AddRemoveAndReadTheResult(dart_info, env.getSeed, 100_000, 20, 1000); 47 48 auto dart_ADD_REMOVE_stress_context = dart_ADD_REMOVE_stress_feature.run(); 49 50 } 51 52 if (env.stage == Stage.commit) { 53 const string module_path = env.bdd_log.buildPath(__MODULE__); 54 const string dartfilename = buildPath(module_path, "dart_insert_remove_stress_test".setExtension(FileExtension 55 .dart)); 56 57 SecureNet net; 58 59 version (REAL_HASHES) { 60 net = new StdSecureNet(); 61 net.generateKeyPair("very secret"); 62 } 63 else { 64 net = new DARTFakeNet("very secret"); 65 } 66 67 const hirpc = HiRPC(net); 68 69 DartInfo dart_info = DartInfo(dartfilename, module_path, net, hirpc); 70 71 auto dart_ADD_REMOVE_stress_feature = automation!(insert_remove_stress)(); 72 dart_ADD_REMOVE_stress_feature.AddRemoveAndReadTheResult(dart_info, env.getSeed, 100, 5, 5); 73 74 auto dart_ADD_REMOVE_stress_context = dart_ADD_REMOVE_stress_feature.run(); 75 76 } 77 return 0; 78 79 }