github.com/igggame/nebulas-go@v2.1.0+incompatible/nebtestkit/cases/command/optition.test.js (about) 1 'use strict'; 2 3 var sleep = require("system-sleep"); 4 var process = require('child_process'); 5 var expect = require('chai').expect; 6 var FS = require('fs'); 7 var rpc_client = require('../rpc/rpc_client/rpc_client.js'); 8 var neb = './neb'; 9 var server_address = '127.0.0.1:8684'; 10 var newAccount; 11 12 function countSubstr(str, substr) { 13 var reg = new RegExp(substr, "g"); 14 return str.match(reg) ? str.match(reg).length : 0;//若match返回不为null,则结果为true,输出match返回的数组(["test","test"])的长度 15 } 16 17 describe('neb options', () => { 18 before('create dir.tmp', (done) => { 19 process.exec('mv keydir keydir.tmp ', (err, stdout, stderr) => { 20 try { 21 expect(err).to.be.equal(null); 22 expect(stderr).to.be.equal(""); 23 } catch (err) { 24 done(err); 25 return; 26 } 27 done(); 28 }); 29 }); 30 31 before('create network.tmp', (done) => { 32 process.exec('cp conf/network/ed25519key network.tmp', (err, stdout, stderr) => { 33 try { 34 expect(err).to.be.equal(null); 35 expect(stderr).to.be.equal(""); 36 } catch (err) { 37 done(err); 38 return; 39 } 40 done(); 41 }); 42 }); 43 44 it('neb options all', (done) => { 45 var neb_process = process.exec(neb + //app.config 46 ' --app.crashreport=false' + 47 ' --app.logfile logs.tmp' + 48 ' --app.loglevel info' + 49 ' --app.reporturl https://127.0.0.1' + 50 ' --app.pprof.listen 127.0.0.1' + 51 ' --app.pprof.memprofile memprofile.tmp' + 52 ' --app.pprof.cpuprofile cpuprofile.tmp' + 53 //block chain config 54 ' --chain.ciphers cipher' + 55 ' --chain.coinbase 75e4e5a71d647298b88928d8cb5da43d90ab1a6c52d0905f' + 56 ' --chain.gaslimit 1000' + 57 ' --chain.gasprice 1000' + 58 ' --chain.datadir data.tmp' + 59 ' --chain.keydir keydir.tmp' + 60 ' --chain.startmine=false' + 61 //network 62 ' --network.seed /ip4/127.0.0.1/tcp/8680/ipfs/QmP7HDFcYmJL12Ez4ZNVCKjKedfE7f48f1LAkUc3Whz4j1' + 63 ' --network.listen 0.0.0.0:8991' + 64 ' --network.key network.tmp' + 65 //rpc 66 ' --rpc.listen 0.0.0.0:8684' + 67 ' --rpc.http 0.0.0.0:8685' + 68 ' --rpc.module api' + 69 //stats 70 ' --stats.dbhost 127.0.0.1:12345' + 71 ' --stats.dbname test_db_123' + 72 ' --stats.dbuser silent' + 73 ' --stats.dbpassword 123456' + 74 ' --stats.enable=false', 75 76 77 (err, stdout, stderr) => { 78 console.log(stdout); 79 if (err.signal != 'SIGKILL') { 80 console.log("unexpected error"); 81 console.log(err); 82 } 83 }); 84 try { 85 var client = rpc_client.new_client(server_address); 86 } catch (err) { 87 done(err); 88 return; 89 } 90 sleep(1000); 91 try { 92 client.getConfig({}, (err, resp) => { 93 try { 94 expect(err).to.be.equal(null); 95 console.log(resp.config); 96 //app config 97 expect(resp.config.app.log_level).to.be.equal('info'); 98 expect(resp.config.app.log_file).to.be.equal('logs.tmp'); 99 expect(resp.config.app.enable_crash_report).to.be.equal(false);//enable_crash_report = false 100 expect(resp.config.app.crash_report_url).to.be.equal('https://127.0.0.1'); 101 expect(resp.config.app.pprof.http_listen).to.be.equal('127.0.0.1'); 102 expect(resp.config.app.pprof.memprofile).to.be.equal('memprofile.tmp'); 103 expect(resp.config.app.pprof.cpuprofile).to.be.equal('cpuprofile.tmp'); 104 105 //blockChain 106 expect(JSON.stringify(resp.config.chain.signature_ciphers)).equal('["cipher"]'); 107 expect(resp.config.chain.coinbase).equal('75e4e5a71d647298b88928d8cb5da43d90ab1a6c52d0905f'); 108 expect(resp.config.chain.gas_limit).equal('1000'); 109 expect(resp.config.chain.gas_price).equal('1000'); 110 expect(resp.config.chain.datadir).equal('data.tmp'); 111 expect(resp.config.chain.keydir).equal('keydir.tmp'); 112 expect(resp.config.chain.start_mine).equal(false); 113 114 //network 115 expect(JSON.stringify(resp.config.network.seed)).equal('["/ip4/127.0.0.1/tcp/8680/ipfs/QmP7HDFcYmJL12Ez4ZNVCKjKedfE7f48f1LAkUc3Whz4j1"]'); 116 expect(JSON.stringify(resp.config.network.listen)).equal('["0.0.0.0:8991"]'); 117 expect(resp.config.network.private_key).equal('network.tmp'); 118 119 //rpc 120 expect(JSON.stringify(resp.config.rpc.rpc_listen)).equal('["0.0.0.0:8684"]'); 121 expect(JSON.stringify(resp.config.rpc.http_listen)).equal('["0.0.0.0:8685"]'); 122 expect(JSON.stringify(resp.config.rpc.http_module)).equal('["api"]'); 123 124 //stats 125 expect(resp.config.stats.influxdb.host).equal('127.0.0.1:12345'); 126 expect(resp.config.stats.influxdb.db).equal('test_db_123'); 127 expect(resp.config.stats.influxdb.user).equal('silent'); 128 expect(resp.config.stats.influxdb.password).equal('123456'); 129 expect(resp.config.stats.enable_metrics).equal(false); 130 131 132 // 133 134 } catch (err) { 135 done(err); 136 neb_process.kill(9); 137 return; 138 } 139 neb_process.kill(9); 140 done(); 141 }); 142 } catch (err) { 143 neb_process.kill(9); 144 done(err); 145 } 146 }); 147 148 after('remove the logs.tmp', (done) => { 149 process.exec('rm -rf logs.tmp', (err, stdout, stderr) => { 150 try { 151 expect(err).to.be.equal(null); 152 expect(stderr).to.be.equal(""); 153 } catch (err) { 154 done(err); 155 return; 156 } 157 done(); 158 }); 159 }); 160 after('remove the memprofile.tmp', (done) => { 161 process.exec('rm -rf memprofile.tmp', (err, stdout, stderr) => { 162 try { 163 expect(err).to.be.equal(null); 164 expect(stderr).to.be.equal(""); 165 } catch (err) { 166 done(err); 167 return; 168 } 169 done(); 170 }); 171 }); 172 173 after('remove the cpuprofile.tmp', (done) => { 174 process.exec('rm -rf cpuprofile.tmp', (err, stdout, stderr) => { 175 try { 176 expect(err).to.be.equal(null); 177 expect(stderr).to.be.equal(""); 178 } catch (err) { 179 done(err); 180 return; 181 } 182 done(); 183 }); 184 }); 185 186 after('remove the data.tmp', (done) => { 187 process.exec('rm -rf data.tmp', (err, stdout, stderr) => { 188 try { 189 expect(err).to.be.equal(null); 190 expect(stderr).to.be.equal(""); 191 } catch (err) { 192 done(err); 193 return; 194 } 195 done(); 196 }); 197 }); 198 199 after('move back the keydir', (done) => { 200 process.exec('mv keydir.tmp keydir', (err, stdout, stderr) => { 201 try { 202 expect(err).to.be.equal(null); 203 expect(stderr).to.be.equal(""); 204 } catch (err) { 205 done(err); 206 return; 207 } 208 done(); 209 }); 210 }); 211 212 after('remove network.tmp', (done) => { 213 process.exec('rm network.tmp', (err, stdout, stderr) => { 214 try { 215 expect(err).to.be.equal(null); 216 expect(stderr).to.be.equal(""); 217 } catch (err) { 218 done(err); 219 return; 220 } 221 done(); 222 }); 223 }); 224 });