1 module tests; 2 3 import tagion.betterC.hibon.HiBONBase; 4 5 //import tagion.betterC.hibon.HiBONRecord; 6 import tagion.betterC.hibon.BigNumber; 7 import tagion.betterC.utils.BinBuffer; 8 import tagion.betterC.utils.Memory; 9 import tagion.betterC.utils.RBTree; 10 import tagion.betterC.utils.Stack; 11 import tagion.betterC.utils.sdt; 12 import tagion.betterC.utils.LEB128; 13 import core.stdc.stdio; 14 import tagion.betterC.hibon.Document; 15 import tagion.betterC.hibon.HiBON; 16 import tagion.betterC.mobile.Recycle; 17 import tagion.betterC.mobile.WalletWrapperApi; 18 import Bailout = tagion.betterC.utils.Bailout; 19 import tagion.betterC.utils.Text; 20 import tagion.betterC.wallet.KeyRecover; 21 22 static void callUnittest(string parent, Members...)() { 23 static foreach (i, x; Members) { 24 { 25 enum parentDot = (parent is null) ? "" : parent ~ "."; 26 enum dotMember = parentDot ~ Members[i]; 27 static if (is(mixin(dotMember))) { 28 enum code1 = "alias T1=" ~ parentDot ~ Members[i] ~ ";"; 29 mixin(code1); 30 static if (is(T1 == struct)) { 31 alias SubMembers = __traits(allMembers, T1); 32 printf("\tSub %s\n", T1.stringof.ptr); 33 static foreach (u; __traits(getUnitTests, T1)) { 34 Bailout.clear; 35 printf("\t\t%s\n", u.stringof.ptr); 36 u(); 37 printf("\t\t"); 38 Bailout.dump; 39 } 40 enum SubName = parentDot ~ T1.stringof; 41 callUnittest!(SubName, SubMembers)(); 42 } 43 } 44 } 45 } 46 } 47 48 static void callUnittest(alias Module)() { 49 alias Members = __traits(allMembers, Module); 50 printf("%s\n", Module.stringof.ptr); 51 static foreach (u; __traits(getUnitTests, Module)) { 52 import Bailout = tagion.betterC.utils.Bailout; 53 54 Bailout.clear; 55 printf("\t%s\n", u.stringof.ptr); 56 u(); 57 printf("\t"); 58 Bailout.dump; 59 } 60 callUnittest!(null, Members)(); 61 62 } 63 64 //version (unittest) { 65 static if (!__traits(compiles, main())) { 66 extern (C) int main() { 67 printf("Unittest\n"); 68 import core.stdc.stdlib; 69 70 // callUnittest!(tagion.betterC.utils.Memory)(); 71 // callUnittest!(tagion.betterC.utils.BinBuffer)(); 72 // callUnittest!(tagion.betterC.utils.Text)(); 73 // callUnittest!(tagion.betterC.utils.Stack)(); 74 75 // callUnittest!(tagion.betterC.utils.RBTree)(); 76 // callUnittest!(tagion.betterC.hibon.HiBONBase)(); 77 78 // callUnittest!(tagion.betterC.hibon.Document)(); 79 // callUnittest!(tagion.betterC.hibon.HiBON); 80 // callUnittest!(tagion.betterC.utils.LEB128); 81 82 callUnittest!(tagion.betterC.wallet.KeyRecover); 83 callUnittest!(tagion.betterC.mobile.Recycle); 84 callUnittest!(tagion.betterC.mobile.WalletWrapperApi); 85 printf("Passed\n"); 86 return 0; 87 } 88 } 89 //}