diff options
author | Rémy Coutable <remy@rymai.me> | 2016-09-09 12:53:24 +0300 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2016-09-09 12:53:24 +0300 |
commit | cf76776d03885c02b58df07dbca42bc455f4a841 (patch) | |
tree | 9a69192ea7604268c596cafd7b4f8e93608483d7 /spec/helpers | |
parent | 796bdf1dcb86b5e77fc054208afc632f75518605 (diff) | |
parent | 76c7b83dd5e345583fbaa26d9462a1bec7107a60 (diff) |
Merge branch 'sidekiq-ps-parsing' into 'master'
* Moves splitting of `ps` result to helper.
* Users a regexp to extract the different parts
The result of `ps` at least depends on the _LANG_ and the distance of
_start_ to _now_ (start time then the day + hour then month+day)
I've tested with _LANG=en_US.UTF-8_ and _LANG=de_CH.UTF-8_
Closes #20632
See merge request !6245
Diffstat (limited to 'spec/helpers')
-rw-r--r-- | spec/helpers/sidekiq_helper_spec.rb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/helpers/sidekiq_helper_spec.rb b/spec/helpers/sidekiq_helper_spec.rb new file mode 100644 index 00000000000..d60839b78ec --- /dev/null +++ b/spec/helpers/sidekiq_helper_spec.rb @@ -0,0 +1,40 @@ +require 'spec_helper' + +describe SidekiqHelper do + describe 'parse_sidekiq_ps' do + it 'parses line with time' do + line = '55137 10,0 2,1 S+ 2:30pm sidekiq 4.1.4 gitlab [0 of 25 busy] ' + parts = helper.parse_sidekiq_ps(line) + + expect(parts).to eq(['55137', '10,0', '2,1', 'S+', '2:30pm', 'sidekiq 4.1.4 gitlab [0 of 25 busy]']) + end + + it 'parses line with date' do + line = '55137 10,0 2,1 S+ Aug 4 sidekiq 4.1.4 gitlab [0 of 25 busy] ' + parts = helper.parse_sidekiq_ps(line) + + expect(parts).to eq(['55137', '10,0', '2,1', 'S+', 'Aug 4', 'sidekiq 4.1.4 gitlab [0 of 25 busy]']) + end + + it 'parses line with two digit date' do + line = '55137 10,0 2,1 S+ Aug 04 sidekiq 4.1.4 gitlab [0 of 25 busy] ' + parts = helper.parse_sidekiq_ps(line) + + expect(parts).to eq(['55137', '10,0', '2,1', 'S+', 'Aug 04', 'sidekiq 4.1.4 gitlab [0 of 25 busy]']) + end + + it 'parses line with dot as float separator' do + line = '55137 10.0 2.1 S+ 2:30pm sidekiq 4.1.4 gitlab [0 of 25 busy] ' + parts = helper.parse_sidekiq_ps(line) + + expect(parts).to eq(['55137', '10.0', '2.1', 'S+', '2:30pm', 'sidekiq 4.1.4 gitlab [0 of 25 busy]']) + end + + it 'does fail gracefully on line not matching the format' do + line = '55137 10.0 2.1 S+ 2:30pm something' + parts = helper.parse_sidekiq_ps(line) + + expect(parts).to eq(['?', '?', '?', '?', '?', '?']) + end + end +end |