github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/app/utils/sanity/start_test.go (about) 1 package sanity 2 3 import ( 4 apptype "github.com/fibonacci-chain/fbc/app/types" 5 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/server" 6 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/store/types" 7 "github.com/fibonacci-chain/fbc/libs/tendermint/consensus" 8 "github.com/fibonacci-chain/fbc/libs/tendermint/state" 9 sm "github.com/fibonacci-chain/fbc/libs/tendermint/state" 10 ttypes "github.com/fibonacci-chain/fbc/libs/tendermint/types" 11 "github.com/fibonacci-chain/fbc/x/evm/watcher" 12 "github.com/spf13/cobra" 13 "testing" 14 ) 15 16 func getCommandNodeModeRpcPruningNothing() *cobra.Command { 17 return getCommand([]universeFlag{ 18 &stringFlag{ 19 Name: apptype.FlagNodeMode, 20 Default: "", 21 Changed: true, 22 Value: string(apptype.RpcNode), 23 }, 24 &stringFlag{ 25 Name: server.FlagPruning, 26 Default: types.PruningOptionDefault, 27 Changed: true, 28 Value: types.PruningOptionNothing, 29 }, 30 }) 31 } 32 33 func getCommandFastQueryPruningNothing() *cobra.Command { 34 return getCommand([]universeFlag{ 35 &boolFlag{ 36 Name: watcher.FlagFastQuery, 37 Default: false, 38 Changed: true, 39 Value: true, 40 }, 41 &stringFlag{ 42 Name: server.FlagPruning, 43 Default: "", 44 Changed: true, 45 Value: types.PruningOptionNothing, 46 }, 47 }) 48 } 49 50 func getCommandEnablePreruntxDownloadDelta() *cobra.Command { 51 return getCommand([]universeFlag{ 52 &boolFlag{ 53 Name: consensus.EnablePrerunTx, 54 Default: false, 55 Changed: true, 56 Value: true, 57 }, 58 &boolFlag{ 59 Name: ttypes.FlagDownloadDDS, 60 Default: false, 61 Changed: true, 62 Value: true, 63 }, 64 }) 65 } 66 67 func getCommandDeliverTxsExecModeSerial(v int) *cobra.Command { 68 return getCommand([]universeFlag{ 69 &intFlag{ 70 Name: sm.FlagDeliverTxsExecMode, 71 Default: 0, 72 Changed: true, 73 Value: v, 74 }, 75 }) 76 } 77 78 func TestCheckStart(t *testing.T) { 79 tests := []struct { 80 name string 81 cmdFunc func() 82 wantErr bool 83 }{ 84 {name: "range-TxsExecModeSerial 0", cmdFunc: func() { getCommandDeliverTxsExecModeSerial(int(state.DeliverTxsExecModeSerial)) }, wantErr: false}, 85 {name: "range-TxsExecModeSerial 1", cmdFunc: func() { getCommandDeliverTxsExecModeSerial(1) }, wantErr: true}, 86 {name: "range-TxsExecModeSerial 2", cmdFunc: func() { getCommandDeliverTxsExecModeSerial(state.DeliverTxsExecModeParallel) }, wantErr: false}, 87 {name: "range-TxsExecModeSerial 3", cmdFunc: func() { getCommandDeliverTxsExecModeSerial(3) }, wantErr: true}, 88 {name: "1. conflicts --fast-query and --pruning=nothing", cmdFunc: func() { getCommandFastQueryPruningNothing() }, wantErr: true}, 89 {name: "2. conflicts --enable-preruntx and --download-delta", cmdFunc: func() { getCommandEnablePreruntxDownloadDelta() }, wantErr: true}, 90 {name: "3. conflicts --node-mod=rpc and --pruning=nothing", cmdFunc: func() { getCommandNodeModeRpcPruningNothing() }, wantErr: true}, 91 } 92 for _, tt := range tests { 93 t.Run(tt.name, func(t *testing.T) { 94 var err error 95 tt.cmdFunc() 96 if err = CheckStart(); (err != nil) != tt.wantErr { 97 t.Errorf("CheckStart() error = %v, wantErr %v", err, tt.wantErr) 98 } 99 t.Log(err) 100 }) 101 } 102 } 103 104 func getCommandNodeModeArchiveFastQuery() *cobra.Command { 105 return getCommand([]universeFlag{ 106 &stringFlag{ 107 Name: apptype.FlagNodeMode, 108 Default: "", 109 Changed: true, 110 Value: string(apptype.ArchiveNode), 111 }, 112 &boolFlag{ 113 Name: watcher.FlagFastQuery, 114 Default: false, 115 Changed: true, 116 Value: true, 117 }, 118 }) 119 } 120 121 func TestCheckStartArchive(t *testing.T) { 122 type args struct { 123 cmd *cobra.Command 124 } 125 tests := []struct { 126 name string 127 args args 128 wantErr bool 129 }{ 130 {name: "1. conflicts --node-mod=archive and --fast-query", args: args{cmd: getCommandNodeModeArchiveFastQuery()}, wantErr: true}, 131 } 132 for _, tt := range tests { 133 t.Run(tt.name, func(t *testing.T) { 134 var err error 135 if err = CheckStart(); (err != nil) != tt.wantErr { 136 t.Errorf("CheckStart() error = %v, wantErr %v", err, tt.wantErr) 137 } 138 t.Log(err) 139 }) 140 } 141 }