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 }