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  });