zold-stress 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '097d4722b276ac853d56d35a07826e7e08e97069da5732f794241bb5c388bad4'
4
- data.tar.gz: 7d587f759936bd208c078ce8e3b19642d944ec95c3d29e046b4b05f860632f12
3
+ metadata.gz: c90871cd798490aa7f7e5a12f76f8718e87d4afa6ae317978421af9653894daa
4
+ data.tar.gz: ac7dca0ce155557979cda5b84de7a5c59bd3f24c0bc56508314a74bd48eab128
5
5
  SHA512:
6
- metadata.gz: b5a816e6e17de11cc6cf2ceac82941ef4d79b9b76858287247966ff8241fe4cea699f9af0fa8ff799c57526a4247cfb9f92a119bf11d2aa8f0c8780691a17c36
7
- data.tar.gz: 13b195883aa1dcdac5037141402d72fd5c44a0583ba313807844df9184936c59f854f44ac05040954cace757b0b4ca8781665d24ee45668acd14a8197e02d2d3
6
+ metadata.gz: 3fcb3514254228cbe6fd2a58b0e55c45d1ce733ad0440d613f13bdada048e9acfcbc0e9707aded1e4df3413db756f2d17f8fb442241c1a5e1f0d10f6c4703ac2
7
+ data.tar.gz: 31f8615457c59a9eb659f388e7cf12b0fc3ed0d23d4ccfd502362451f88edabeaca412ff63d97025729c3002a620a8b7851ac0bc2658c8ddc6a3355c83b7c3fb
@@ -20,7 +20,7 @@ function wait_for_url {
20
20
  echo "URL $1 is not available after ${i} attempts"
21
21
  exit 12
22
22
  fi
23
- sleep 2
23
+ sleep 1
24
24
  done
25
25
  }
26
26
 
@@ -32,7 +32,7 @@ function wait_for_port {
32
32
  echo "Port $1 is not available after ${i} attempts"
33
33
  exit 13
34
34
  fi
35
- sleep 2
35
+ sleep 1
36
36
  done
37
37
  }
38
38
 
@@ -48,7 +48,7 @@ function halt_nodes {
48
48
  exit 15
49
49
  fi
50
50
  echo "Still waiting for process ${pid} to die, attempt no.${i}"
51
- sleep 2
51
+ sleep 1
52
52
  done
53
53
  echo "Process ${pid} is dead!"
54
54
  fi
@@ -0,0 +1,43 @@
1
+ #!/bin/bash
2
+
3
+ function start_node {
4
+ port=$(reserve_port)
5
+ mkdir ${port}
6
+ cd ${port}
7
+ zold node --trace --invoice=MULTINODE@ffffffffffffffff \
8
+ --host=localhost --port=${port} --bind-port=${port} --dump-errors \
9
+ --no-metronome --halt-code=test --threads=1 --strength=2 > log.txt &
10
+ pid=$!
11
+ echo ${pid} > pid
12
+ cd ..
13
+ wait_for_url http://localhost:${port}/
14
+ echo ${port}
15
+ }
16
+
17
+ nodes=($(start_node) $(start_node) $(start_node) $(start_node))
18
+ trap "halt_nodes ${nodes[*]}" EXIT
19
+ for port in ${nodes[@]}; do
20
+ cd ${port}
21
+ zold remote clean
22
+ for friend in ${nodes[@]}; do
23
+ if [ "${port}" != "${friend}" ]; then
24
+ zold remote add localhost ${friend}
25
+ fi
26
+ done
27
+ cd ..
28
+ done
29
+
30
+ zold remote clean
31
+ for port in ${nodes[@]}; do
32
+ zold remote add localhost ${port}
33
+ done
34
+
35
+ zold --public-key=id_rsa.pub create 0000000000000000
36
+ zold --public-key=id_rsa.pub create abcdabcdabcdabcd
37
+ zold pay --private-key=id_rsa 0000000000000000 abcdabcdabcdabcd 4.95 'To test'
38
+ zold push 0000000000000000 --ignore-score-weakness
39
+ zold remove 0000000000000000
40
+
41
+ zold-stress --rounds=8 --wait=10 --threads=${#nodes[@]} --pool=8 --batch=8 --private-key=id_rsa --ignore-score-weakness
42
+
43
+ zold show
@@ -15,8 +15,6 @@ function start_node {
15
15
  echo ${port}
16
16
  }
17
17
 
18
- zold --version
19
-
20
18
  port=$(start_node)
21
19
  trap "halt_nodes ${port}" EXIT
22
20
  zold remote clean
@@ -33,7 +33,7 @@ require_relative '../test__helper'
33
33
  # License:: MIT
34
34
  class TestBin < Minitest::Test
35
35
  Dir.new('fixtures/scripts').select { |f| f =~ /\.sh$/ && !f.start_with?('_') }.each do |f|
36
- define_method("test_script_#{f.gsub(/[^a-z]/, '_')}") do
36
+ define_method("test_#{f.gsub(/\.sh$/, '').gsub(/[^a-z]/, '_')}") do
37
37
  start = Time.now
38
38
  test_log.debug("\n\n#{f} running...")
39
39
  Dir.mktmpdir do |dir|
@@ -69,17 +69,14 @@ class PmntsTest < Minitest::Test
69
69
  Dir.mktmpdir do |home|
70
70
  wallets = Zold::Wallets.new(home)
71
71
  remotes = Zold::Remotes.new(file: File.join(home, 'remotes'), network: 'test')
72
- Zold::Create.new(wallets: wallets, log: test_log).run(
73
- ['create', '--public-key=fixtures/id_rsa.pub', Zold::Id::ROOT.to_s, '--network=test']
74
- )
75
72
  ids = []
76
- 5.times do
73
+ 6.times do
77
74
  id = Zold::Create.new(wallets: wallets, log: test_log).run(
78
- ['create', '--public-key=fixtures/id_rsa.pub', '--network=test']
79
- )
80
- Zold::Pay.new(wallets: wallets, remotes: remotes, log: test_log).run(
81
- ['pay', Zold::Id::ROOT.to_s, id.to_s, '7.00', 'start', '--private-key=fixtures/id_rsa']
75
+ ['create', '--public-key=fixtures/id_rsa.pub', Zold::Id.new.to_s, '--network=test']
82
76
  )
77
+ wallets.find(id) do |w|
78
+ w.add(Zold::Txn.new(1, Time.now, Zold::Amount.new(zld: 1.0), 'NOPREFIX', Zold::Id.new, '-'))
79
+ end
83
80
  ids << id
84
81
  end
85
82
  sent = Zold::Stress::Pmnts.new(
@@ -91,6 +88,7 @@ class PmntsTest < Minitest::Test
91
88
  log: test_log, vlog: test_log
92
89
  ).send
93
90
  assert_equal(20, sent.count)
91
+ assert_equal(46, wallets.all.map { |id| wallets.find(id) { |w| w.txns.count } }.inject(&:+))
94
92
  assert_equal(ids.sort, sent.map { |s| s[:source] }.sort.uniq)
95
93
  end
96
94
  end
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
27
27
  s.rubygems_version = '2.2'
28
28
  s.required_ruby_version = '>=2.3'
29
29
  s.name = 'zold-stress'
30
- s.version = '0.3.0'
30
+ s.version = '0.4.0'
31
31
  s.license = 'MIT'
32
32
  s.summary = 'Zold stress test'
33
33
  s.description = 'Stress testing toolkit for Zold network'
@@ -41,7 +41,7 @@ Gem::Specification.new do |s|
41
41
  s.extra_rdoc_files = ['README.md', 'LICENSE.txt']
42
42
  s.add_runtime_dependency 'backtrace', '0.3.0'
43
43
  s.add_runtime_dependency 'parallelize', '0.4.1'
44
- s.add_runtime_dependency 'zold', '0.16.18'
44
+ s.add_runtime_dependency 'zold', '0.16.22'
45
45
  s.add_development_dependency 'codecov', '0.1.13'
46
46
  s.add_development_dependency 'minitest', '5.11.3'
47
47
  s.add_development_dependency 'random-port', '0.3.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zold-stress
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-10 00:00:00.000000000 Z
11
+ date: 2018-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backtrace
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 0.16.18
47
+ version: 0.16.22
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 0.16.18
54
+ version: 0.16.22
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: codecov
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -180,6 +180,7 @@ files:
180
180
  - fixtures/id_rsa
181
181
  - fixtures/id_rsa.pub
182
182
  - fixtures/scripts/_head.sh
183
+ - fixtures/scripts/multi-node.sh
183
184
  - fixtures/scripts/simple-stress.sh
184
185
  - lib/zold/stress/air.rb
185
186
  - lib/zold/stress/pmnts.rb