zold-stress 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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