rbatch 2.1.1 → 2.1.2
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.
- data/README.ja.md +14 -5
- data/README.md +164 -154
- data/bin/rbatch-init +21 -13
- data/doc/RBatch/Cmd.html +300 -316
- data/doc/RBatch/CmdException.html +146 -141
- data/doc/RBatch/CmdResult.html +467 -470
- data/doc/RBatch/Config.html +392 -433
- data/doc/RBatch/Controller.html +374 -0
- data/doc/RBatch/DoubleRunCheckException.html +146 -141
- data/doc/RBatch/DoubleRunChecker.html +258 -256
- data/doc/RBatch/Journal.html +332 -0
- data/doc/RBatch/Log.html +636 -805
- data/doc/RBatch/LogException.html +164 -0
- data/doc/RBatch/RBatch/RBatch/ConfigException.html +164 -0
- data/doc/RBatch/RBatch/RBatch.html +163 -0
- data/doc/RBatch/RBatch/VariablesException.html +164 -0
- data/doc/RBatch/RBatch.html +165 -0
- data/doc/RBatch/RunConf/Exception.html +146 -141
- data/doc/RBatch/RunConf.html +478 -532
- data/doc/RBatch/Variables.html +437 -0
- data/doc/RBatch.html +388 -862
- data/doc/created.rid +11 -9
- data/doc/index.html +178 -184
- data/doc/js/darkfish.js +9 -7
- data/doc/lib/rbatch/cmd_rb.html +46 -44
- data/doc/lib/rbatch/config_rb.html +42 -42
- data/doc/lib/rbatch/controller_rb.html +66 -0
- data/doc/lib/rbatch/double_run_checker_rb.html +42 -42
- data/doc/lib/rbatch/journal_rb.html +52 -0
- data/doc/lib/rbatch/log_rb.html +46 -46
- data/doc/lib/rbatch/run_conf_rb.html +42 -42
- data/doc/lib/rbatch/variables_rb.html +54 -0
- data/doc/lib/rbatch/version_rb.html +38 -38
- data/doc/lib/rbatch_rb.html +40 -52
- data/doc/rdoc.css +365 -308
- data/lib/rbatch/cmd.rb +15 -58
- data/lib/rbatch/config.rb +7 -7
- data/lib/rbatch/controller.rb +37 -61
- data/lib/rbatch/double_run_checker.rb +0 -0
- data/lib/rbatch/journal.rb +40 -0
- data/lib/rbatch/log.rb +71 -129
- data/lib/rbatch/run_conf.rb +13 -24
- data/lib/rbatch/variables.rb +82 -0
- data/lib/rbatch/version.rb +1 -1
- data/lib/rbatch.rb +7 -36
- data/sample/.rbatchrc +41 -7
- data/spec/01_rbach_spec.rb +99 -0
- data/spec/{cmd_spec.rb → rbatch/cmd_spec.rb} +40 -43
- data/spec/rbatch/config_spec.rb +67 -0
- data/spec/rbatch/controller_spec.rb +18 -0
- data/spec/{double_run_checker_spec.rb → rbatch/double_run_checker_spec.rb} +3 -0
- data/spec/rbatch/journal_spec.rb +29 -0
- data/spec/rbatch/log_spec.rb +350 -0
- data/spec/{run_conf_spec.rb → rbatch/run_conf_spec.rb} +13 -5
- data/spec/rbatch/variables_spec.rb +68 -0
- data/spec/spec_helper.rb +4 -5
- metadata +33 -17
- data/lib/rbatch/common_config.rb +0 -0
- data/spec/common_config_spec.rb +0 -85
- data/spec/config_spec.rb +0 -79
- data/spec/log_spec.rb +0 -430
- data/spec/rbatch_spec.rb +0 -22
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'rbatch/run_conf'
|
2
|
+
|
3
|
+
module RBatch
|
4
|
+
class Variables
|
5
|
+
attr :vars,:run_conf,:merged_opt
|
6
|
+
def initialize(run_conf=nil)
|
7
|
+
@merged_opt = {}
|
8
|
+
@vars = {
|
9
|
+
:program_name => $PROGRAM_NAME ,
|
10
|
+
:program_path => File.expand_path($PROGRAM_NAME) ,
|
11
|
+
:program_base => File.basename($PROGRAM_NAME),
|
12
|
+
:date => Time.now.strftime("%Y%m%d"),
|
13
|
+
:time => Time.now.strftime("%H%M%S"),
|
14
|
+
}
|
15
|
+
|
16
|
+
if ENV["RB_VERBOSE"]
|
17
|
+
@vars[:journal_verbose] = ENV["RB_VERBOSE"].to_i
|
18
|
+
else
|
19
|
+
@vars[:journal_verbose] = 1
|
20
|
+
end
|
21
|
+
|
22
|
+
case RUBY_PLATFORM
|
23
|
+
when /mswin|mingw/
|
24
|
+
@vars[:host_name] = ENV["COMPUTERNAME"] ? ENV["COMPUTERNAME"] : "unknownhost"
|
25
|
+
when /cygwin|linux/
|
26
|
+
@vars[:host_name] = ENV["HOSTNAME"] ? ENV["HOSTNAME"] : "unknownhost"
|
27
|
+
else
|
28
|
+
@vars[:host_name] = "unknownhost"
|
29
|
+
end
|
30
|
+
|
31
|
+
if ENV["RB_HOME"]
|
32
|
+
@vars[:home_dir] = File.expand_path(ENV["RB_HOME"])
|
33
|
+
else
|
34
|
+
@vars[:home_dir] = File.expand_path(File.join(File.dirname(@vars[:program_name]), ".."))
|
35
|
+
end
|
36
|
+
@vars[:run_conf_path] = File.join(@vars[:home_dir],".rbatchrc")
|
37
|
+
@run_conf = RunConf.new(@vars[:run_conf_path]) # load run_conf
|
38
|
+
@vars.merge!(@run_conf.opt)
|
39
|
+
@vars[:common_config_path] = File.join(@vars[:conf_dir],@vars[:common_conf_name])
|
40
|
+
@vars[:config_path] = File.join(@vars[:conf_dir],Pathname(File.basename(@vars[:program_name])).sub_ext(".yaml").to_s)
|
41
|
+
end #end def
|
42
|
+
|
43
|
+
def[](key)
|
44
|
+
if @vars.has_key?(key)
|
45
|
+
if @vars[key].class == String
|
46
|
+
@vars[key]
|
47
|
+
.gsub("<home>", @vars[:home_dir])
|
48
|
+
.gsub("<date>", @vars[:date])
|
49
|
+
.gsub("<time>", @vars[:time])
|
50
|
+
.gsub("<prog>", @vars[:program_base])
|
51
|
+
.gsub("<host>", @vars[:host_name])
|
52
|
+
else
|
53
|
+
@vars[key]
|
54
|
+
end
|
55
|
+
else
|
56
|
+
raise RBatch::VariablesException, "no such key exist :" + key.to_s
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def raw_value(key)
|
61
|
+
if @vars.has_key?(key)
|
62
|
+
@vars[key]
|
63
|
+
else
|
64
|
+
raise RBatch::VariablesException, "no such key exist :" + key.to_s
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def merge!(merged_opt)
|
69
|
+
@merged_opt = merged_opt
|
70
|
+
@vars.merge!(merged_opt)
|
71
|
+
return nil
|
72
|
+
end
|
73
|
+
|
74
|
+
def merge(merged_opt)
|
75
|
+
@merged_opt = merged_opt
|
76
|
+
@vars.merge!(merged_opt)
|
77
|
+
return self
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
class RBatch::VariablesException < StandardError ; end
|
82
|
+
end
|
data/lib/rbatch/version.rb
CHANGED
data/lib/rbatch.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__)))
|
2
|
-
|
2
|
+
|
3
|
+
require 'rbatch/controller'
|
3
4
|
|
4
5
|
module RBatch
|
5
6
|
@@ctrl = nil
|
@@ -7,43 +8,13 @@ module RBatch
|
|
7
8
|
def init
|
8
9
|
@@ctrl = RBatch::Controller.new
|
9
10
|
end
|
10
|
-
def ctrl
|
11
|
-
|
12
|
-
end
|
13
|
-
def
|
14
|
-
|
15
|
-
end
|
16
|
-
def run_conf_path ; @@ctrl.run_conf_path ; end
|
17
|
-
|
18
|
-
# Config Reader
|
19
|
-
#
|
20
|
-
# Read config file and return hash opject. If the key does not exist in config file, raise RBatch::Config::Exception.
|
21
|
-
#
|
22
|
-
# Default config file path is "${RB_HOME}/conf/(program base name).yaml"
|
23
|
-
# ==== Sample
|
24
|
-
# config : ${RB_HOME}/conf/sample2.yaml
|
25
|
-
# key: value
|
26
|
-
# array:
|
27
|
-
# - item1
|
28
|
-
# - item2
|
29
|
-
# - item3
|
30
|
-
# script : ${RB_HOME}/bin/sample2.rb
|
31
|
-
# require 'rbatch'
|
32
|
-
# p RBatch::Config.new
|
33
|
-
# # or p RBatch::config
|
34
|
-
# => {"key" => "value", "array" => ["item1", "item2", "item3"]}
|
35
|
-
def config ; @@ctrl.config ; end
|
36
|
-
def common_config ; @@ctrl.common_config ; end
|
37
|
-
def journal(a,b) ; @@ctrl.journal(a,b) ; end
|
11
|
+
def ctrl ; @@ctrl ; end
|
12
|
+
def vars ; @@ctrl.vars ; end
|
13
|
+
def config ; @@ctrl.config ; end
|
14
|
+
def common_config ; @@ctrl.common_config ; end
|
15
|
+
def cmd(cmd_str,opt=nil) ; @@ctrl.cmd(cmd_str,opt) ; end
|
38
16
|
end
|
39
17
|
|
40
18
|
# main
|
41
|
-
require 'rbatch/controller'
|
42
|
-
require 'rbatch/run_conf'
|
43
|
-
require 'rbatch/double_run_checker'
|
44
|
-
require 'rbatch/log'
|
45
|
-
require 'rbatch/config'
|
46
|
-
require 'rbatch/cmd'
|
47
|
-
|
48
19
|
RBatch::init
|
49
20
|
|
data/sample/.rbatchrc
CHANGED
@@ -10,10 +10,9 @@
|
|
10
10
|
# Conf Directory
|
11
11
|
#
|
12
12
|
# Default is "<home>/conf"
|
13
|
-
#
|
14
13
|
# <home> is replaced to ${RB_HOME}
|
15
14
|
#
|
16
|
-
#conf_dir: <home>/config
|
15
|
+
#conf_dir: <home>/config/
|
17
16
|
#conf_dir: /etc/rbatch/
|
18
17
|
|
19
18
|
# Common config file name
|
@@ -22,6 +21,21 @@
|
|
22
21
|
#
|
23
22
|
#common_conf_name: share.yaml
|
24
23
|
|
24
|
+
# Library Directory
|
25
|
+
#
|
26
|
+
# Default is "<home>/lib"
|
27
|
+
# <home> is replaced to ${RB_HOME}
|
28
|
+
#
|
29
|
+
#lib_dir: /usr/local/lib/rbatch/
|
30
|
+
|
31
|
+
# Auto Library Load
|
32
|
+
#
|
33
|
+
# Default is true
|
34
|
+
# If true, require "(library directory)/*.rb" before script run.
|
35
|
+
#
|
36
|
+
#auto_lib_load: true
|
37
|
+
#auto_lib_load: false
|
38
|
+
|
25
39
|
# Forbit Script Double Run
|
26
40
|
#
|
27
41
|
# Default is false.
|
@@ -71,7 +85,7 @@
|
|
71
85
|
#log_name : "<date>_<time>_<prog>.log"
|
72
86
|
#log_name : "<date>_<prog>.log"
|
73
87
|
|
74
|
-
# Append
|
88
|
+
# Append Log
|
75
89
|
#
|
76
90
|
# Default is ture.
|
77
91
|
#
|
@@ -100,8 +114,8 @@
|
|
100
114
|
#
|
101
115
|
# Default is false.
|
102
116
|
# If this is true, delete old log file when RBatch::Log.new is called.
|
103
|
-
# A log file to delete is a log file which was made by the
|
104
|
-
# and log filename format include "<date>".
|
117
|
+
# A log file to delete is a log file which was made by the
|
118
|
+
# RBatch::Log instance, and log filename format include "<date>".
|
105
119
|
#
|
106
120
|
#log_delete_old_log: true
|
107
121
|
#log_delete_old_log: false
|
@@ -113,9 +127,10 @@
|
|
113
127
|
#log_delete_old_log_date: 14
|
114
128
|
|
115
129
|
# Send mail or not
|
116
|
-
#
|
130
|
+
#
|
117
131
|
# Default is false.
|
118
|
-
# When log.error(msg) or log.fatal(msg) called , send e-mail
|
132
|
+
# When log.error(msg) or log.fatal(msg) called , send e-mail
|
133
|
+
# including "msg".
|
119
134
|
#
|
120
135
|
#log_send_mail : true
|
121
136
|
|
@@ -125,3 +140,22 @@
|
|
125
140
|
#log_mail_from : "xxx@sample.com"
|
126
141
|
#log_mail_server_host : "localhost"
|
127
142
|
#log_mail_server_port : 25
|
143
|
+
|
144
|
+
# RBatch Journal Message Level
|
145
|
+
#
|
146
|
+
# Default is 1
|
147
|
+
# If 2, put more journal messages to STDOUT.
|
148
|
+
# If 0, put nothing.
|
149
|
+
# Example of journal essages are follows.
|
150
|
+
# [RBatch] Load Config : "../conf/hoge.yaml"
|
151
|
+
#
|
152
|
+
#rbatch_journal_level = 2
|
153
|
+
#rbatch_journal_level = 0
|
154
|
+
|
155
|
+
# Mix RBatch Journal to Logs
|
156
|
+
#
|
157
|
+
# Default is true.
|
158
|
+
# If true, mix RBatch journal messages to log file(s) which is(are) opened at time.
|
159
|
+
#
|
160
|
+
#mix_rbatch_journal_to_logs : true
|
161
|
+
#mix_rbatch_journal_to_logs : false
|
@@ -0,0 +1,99 @@
|
|
1
|
+
require 'tmpdir'
|
2
|
+
|
3
|
+
describe "RBatch" do
|
4
|
+
before :all do
|
5
|
+
@rand = "rbatch_test_" + rand.to_s
|
6
|
+
@home = File.join(Dir.tmpdir, @rand)
|
7
|
+
@log_dir = File.join(@home,"log")
|
8
|
+
@conf_dir = File.join(@home,"conf")
|
9
|
+
ENV["RB_HOME"]=@home
|
10
|
+
|
11
|
+
Dir.mkdir(@home)
|
12
|
+
Dir.mkdir(@log_dir)
|
13
|
+
Dir.mkdir(@conf_dir)
|
14
|
+
open( File.join(@home,".rbatchrc") , "a" ){|f|
|
15
|
+
f.write("log_name : hoge.log")
|
16
|
+
}
|
17
|
+
|
18
|
+
open( File.join(@conf_dir,"rspec.yaml") , "a" ){|f|
|
19
|
+
f.write("key1 : value1")
|
20
|
+
}
|
21
|
+
|
22
|
+
open( File.join(@conf_dir,"common.yaml") , "a" ){|f|
|
23
|
+
f.write("key2 : value2")
|
24
|
+
}
|
25
|
+
|
26
|
+
# stop STODOUT output
|
27
|
+
#$stdout = File.open(File.join(@home,"out.txt"),"w")
|
28
|
+
#$stderr = File.open(File.join(@home,"err.txt"),"w")
|
29
|
+
end
|
30
|
+
|
31
|
+
after :all do
|
32
|
+
# FileUtils.rm_rf(@home)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "success" do
|
36
|
+
require 'rbatch'
|
37
|
+
|
38
|
+
result = RBatch.cmd("ruby -e 'STDOUT.print 1; STDERR.print 2; exit 0;'")
|
39
|
+
expect(result.stdout.chomp).to eq "1"
|
40
|
+
expect(result.stderr.chomp).to eq "2"
|
41
|
+
expect(result.status).to eq 0
|
42
|
+
expect{
|
43
|
+
RBatch.cmd("ruby -e 'exit 1;'",{:raise => true})
|
44
|
+
}.to raise_error(RBatch::CmdException)
|
45
|
+
|
46
|
+
|
47
|
+
expect(RBatch.config["key1"]).to eq "value1"
|
48
|
+
expect{ RBatch.config["noexist"] }.to raise_error RBatch::ConfigException
|
49
|
+
|
50
|
+
expect(RBatch.common_config["key2"]).to eq "value2"
|
51
|
+
expect{ RBatch.common_config["noexist"] }.to raise_error RBatch::ConfigException
|
52
|
+
|
53
|
+
expect{
|
54
|
+
RBatch::Log.new do |log|
|
55
|
+
log.info("test_string")
|
56
|
+
RBatch.ctrl.journal.put 2,"var2"
|
57
|
+
RBatch.ctrl.journal.put 1,"var1"
|
58
|
+
RBatch.ctrl.journal.put 0,"var0"
|
59
|
+
RBatch.config["noexist2"]
|
60
|
+
end
|
61
|
+
}.to raise_error SystemExit
|
62
|
+
|
63
|
+
Dir::foreach(RBatch.vars[:log_dir]) do |f|
|
64
|
+
if ! (/\.+$/ =~ f)
|
65
|
+
File::open(File.join(RBatch.vars[:log_dir] , f)) {|f|
|
66
|
+
expect(f.read).to match /test_string/
|
67
|
+
}
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# check journal
|
72
|
+
expect(RBatch.ctrl.journal.journals[0]).to match /START RBatch/
|
73
|
+
expect(RBatch.ctrl.journal.journals[1]).to match Regexp.new(@rand)
|
74
|
+
expect(RBatch.ctrl.journal.journals[2]).to match /batchrc/
|
75
|
+
expect(RBatch.ctrl.journal.journals[3]).to match /common.yaml/
|
76
|
+
expect(RBatch.ctrl.journal.journals[4]).to match /rspec.yaml/
|
77
|
+
expect(RBatch.ctrl.journal.journals[5]).to match /Start Script/
|
78
|
+
expect(RBatch.ctrl.journal.journals[6]).to match /Logging Start/
|
79
|
+
expect(RBatch.ctrl.journal.journals[7]).to match /var1/
|
80
|
+
expect(RBatch.ctrl.journal.journals[8]).to match /var0/
|
81
|
+
|
82
|
+
# check log
|
83
|
+
f = open(File.join(@home,"log","hoge.log")).read
|
84
|
+
lines = f.split("\n")
|
85
|
+
|
86
|
+
expect(lines[0]).to match /START RBatch/
|
87
|
+
expect(lines[1]).to match Regexp.new(@rand)
|
88
|
+
expect(lines[2]).to match /batchrc/
|
89
|
+
expect(lines[3]).to match /common.yaml/
|
90
|
+
expect(lines[4]).to match /rspec.yaml/
|
91
|
+
expect(lines[5]).to match /Start Script/
|
92
|
+
expect(lines[6]).to match /Logging Start/
|
93
|
+
expect(lines[7]).to match /test_string/
|
94
|
+
expect(lines[8]).to match /var1/
|
95
|
+
expect(lines[9]).to match /var0/
|
96
|
+
expect(lines[10]).to match /FATAL/
|
97
|
+
|
98
|
+
end
|
99
|
+
end
|
@@ -1,43 +1,46 @@
|
|
1
|
-
require
|
1
|
+
require 'simplecov'
|
2
|
+
SimpleCov.start
|
2
3
|
|
3
|
-
require 'rbatch'
|
4
|
+
require 'rbatch/variables'
|
5
|
+
require 'rbatch/cmd'
|
4
6
|
|
5
7
|
describe RBatch::Cmd do
|
6
8
|
before :each do
|
7
|
-
RBatch.
|
9
|
+
@def_vars = RBatch::Variables.new()
|
10
|
+
RBatch::Cmd.def_vars = @def_vars
|
8
11
|
end
|
9
12
|
|
10
13
|
it "run command which status is 0" do
|
11
|
-
result = RBatch::
|
14
|
+
result = RBatch::Cmd.new("ruby -e 'STDOUT.print 1; STDERR.print 2; exit 0;'").run
|
12
15
|
expect(result.stdout.chomp).to eq "1"
|
13
16
|
expect(result.stderr.chomp).to eq "2"
|
14
17
|
expect(result.status).to eq 0
|
15
18
|
end
|
16
19
|
it "run command which status is 1" do
|
17
|
-
result = RBatch::
|
20
|
+
result = RBatch::Cmd.new("ruby -e 'STDOUT.print 1; STDERR.print 2; exit 1;'").run
|
18
21
|
expect(result.stdout.chomp).to eq "1"
|
19
22
|
expect(result.stderr.chomp).to eq "2"
|
20
23
|
expect(result.status).to eq 1
|
21
24
|
end
|
22
25
|
it "raise error when command does not exist" do
|
23
26
|
expect {
|
24
|
-
RBatch::
|
27
|
+
RBatch::Cmd.new("not_exist_command").run
|
25
28
|
}.to raise_error(Errno::ENOENT)
|
26
29
|
end
|
27
30
|
it "run command which stdout size is greater than 65534byte" do
|
28
|
-
result = RBatch::
|
31
|
+
result = RBatch::Cmd.new("ruby -e '100000.times{print 0}'").run
|
29
32
|
expect(result.stdout.chomp.size).to eq 100000
|
30
33
|
expect(result.stderr.chomp).to eq ""
|
31
34
|
expect(result.status).to eq 0
|
32
35
|
end
|
33
36
|
it "run command which stdout size is greater than 65534bytes with status 1" do
|
34
|
-
result = RBatch::
|
37
|
+
result = RBatch::Cmd.new("ruby -e '100000.times{print 0}; exit 1'").run
|
35
38
|
expect(result.stdout.chomp.size).to eq 100000
|
36
39
|
expect(result.stderr.chomp).to eq ""
|
37
40
|
expect(result.status).to eq 1
|
38
41
|
end
|
39
42
|
it "run command which status is grater than 256" do
|
40
|
-
result = RBatch::
|
43
|
+
result = RBatch::Cmd.new( "ruby -e 'STDOUT.print 1; STDERR.print 2; exit 300;'").run
|
41
44
|
expect(result.stdout.chomp).to eq "1"
|
42
45
|
expect(result.stderr.chomp).to eq "2"
|
43
46
|
case RUBY_PLATFORM
|
@@ -49,13 +52,13 @@ describe RBatch::Cmd do
|
|
49
52
|
end
|
50
53
|
end
|
51
54
|
it "run to_h method" do
|
52
|
-
result = RBatch::
|
55
|
+
result = RBatch::Cmd.new("ruby -e 'STDOUT.print 1; STDERR.print 2; exit 1;'").run
|
53
56
|
expect(result.to_h[:stdout]).to eq "1"
|
54
57
|
expect(result.to_h[:stderr]).to eq "2"
|
55
58
|
expect(result.to_h[:status]).to eq 1
|
56
59
|
end
|
57
60
|
it "run to_s method" do
|
58
|
-
result = RBatch::
|
61
|
+
result = RBatch::Cmd.new("ruby -e 'STDOUT.print 1; STDERR.print 2; exit 1;'").run
|
59
62
|
expect(result.to_s).to eq "{:cmd_str=>\"ruby -e 'STDOUT.print 1; STDERR.print 2; exit 1;'\", :stdout=>\"1\", :stderr=>\"2\", :status=>1}"
|
60
63
|
end
|
61
64
|
it "raise error when command is nil" do
|
@@ -63,61 +66,55 @@ describe RBatch::Cmd do
|
|
63
66
|
RBatch::Cmd.new(nil)
|
64
67
|
}.to raise_error(RBatch::CmdException)
|
65
68
|
end
|
66
|
-
it "run RBatch::Cmd.new method" do
|
67
|
-
result = RBatch::Cmd.new("ruby -e 'STDOUT.print 1; STDERR.print 2; exit 0;'").run
|
68
|
-
expect(result.stdout.chomp).to eq "1"
|
69
|
-
expect(result.stderr.chomp).to eq "2"
|
70
|
-
expect(result.status).to eq 0
|
71
|
-
end
|
72
|
-
|
73
69
|
|
74
70
|
describe "option by argument" do
|
75
|
-
describe "
|
76
|
-
it "
|
77
|
-
opt = {:
|
78
|
-
expect {
|
79
|
-
RBatch::cmd("ruby -e 'sleep 1'",opt)
|
80
|
-
}.to_not raise_error
|
81
|
-
end
|
82
|
-
it "raise timeout error when command is long time" do
|
83
|
-
opt = {:timeout => 1}
|
71
|
+
describe "raise" do
|
72
|
+
it "raise error when command status is not 0" do
|
73
|
+
opt = {:raise => true}
|
84
74
|
expect {
|
85
|
-
RBatch::
|
75
|
+
RBatch::Cmd.new("ruby -e 'exit 1;'",opt).run
|
86
76
|
}.to raise_error(RBatch::CmdException)
|
87
77
|
end
|
88
78
|
end
|
89
|
-
end
|
90
|
-
|
91
|
-
describe "option by argument" do
|
92
79
|
describe "timeout" do
|
93
80
|
it "run successfuly when command is short time" do
|
94
81
|
opt = {:timeout => 2}
|
95
82
|
expect {
|
96
|
-
RBatch::
|
83
|
+
RBatch::Cmd.new("ruby -e 'sleep 1'",opt).run
|
97
84
|
}.to_not raise_error
|
98
85
|
end
|
99
86
|
it "raise timeout error when command is long time" do
|
100
87
|
opt = {:timeout => 1}
|
101
88
|
expect {
|
102
|
-
RBatch::
|
89
|
+
RBatch::Cmd.new("ruby -e 'sleep 2'",opt).run
|
103
90
|
}.to raise_error(RBatch::CmdException)
|
104
91
|
end
|
105
92
|
end
|
106
93
|
end
|
107
94
|
|
108
|
-
describe "option by
|
109
|
-
before :all do
|
110
|
-
@config_dir=File.join(ENV["RB_HOME"],"conf")
|
111
|
-
@config_file = File.join(@config_dir , "rbatch.yaml")
|
112
|
-
Dir::mkdir @config_dir if ! Dir.exists? @config_dir
|
113
|
-
end
|
95
|
+
describe "option by run_conf" do
|
114
96
|
describe "raise" do
|
115
|
-
before :each do
|
116
|
-
RBatch.run_conf[:cmd_raise] = true
|
117
|
-
end
|
118
97
|
it "raise error when command status is not 0" do
|
98
|
+
@def_vars.merge!({:cmd_raise => true})
|
99
|
+
RBatch::Cmd.def_vars = @def_vars
|
100
|
+
expect {
|
101
|
+
RBatch::Cmd.new("ruby -e 'exit 1;'").run
|
102
|
+
}.to raise_error(RBatch::CmdException)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
describe "timeout" do
|
106
|
+
it "run successfuly when command is short time" do
|
107
|
+
@def_vars.merge!({:cmd_timeout => 2})
|
108
|
+
RBatch::Cmd.def_vars = @def_vars
|
109
|
+
expect {
|
110
|
+
RBatch::Cmd.new("ruby -e 'sleep 1'").run
|
111
|
+
}.to_not raise_error
|
112
|
+
end
|
113
|
+
it "raise timeout error when command is long time" do
|
114
|
+
@def_vars.merge!({:cmd_timeout => 1})
|
115
|
+
RBatch::Cmd.def_vars = @def_vars
|
119
116
|
expect {
|
120
|
-
RBatch::
|
117
|
+
RBatch::Cmd.new("ruby -e 'sleep 2'").run
|
121
118
|
}.to raise_error(RBatch::CmdException)
|
122
119
|
end
|
123
120
|
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
SimpleCov.start
|
3
|
+
|
4
|
+
require 'tmpdir'
|
5
|
+
require 'rbatch/config'
|
6
|
+
|
7
|
+
describe RBatch::Config do
|
8
|
+
before :all do
|
9
|
+
end
|
10
|
+
|
11
|
+
before :each do
|
12
|
+
@path = File.join(Dir.tmpdir , rand.to_s)
|
13
|
+
end
|
14
|
+
|
15
|
+
after :each do
|
16
|
+
FileUtils.rm @path if File.exists? @path
|
17
|
+
end
|
18
|
+
|
19
|
+
it "read" do
|
20
|
+
open( @path , "w" ){|f| f.write("key: value")}
|
21
|
+
expect(RBatch::Config.new(@path)["key"]).to eq "value"
|
22
|
+
end
|
23
|
+
|
24
|
+
it "key is Symbol" do
|
25
|
+
open( @path , "w" ){|f| f.write(":key: value")}
|
26
|
+
expect(RBatch::Config.new(@path)[:key]).to eq "value"
|
27
|
+
end
|
28
|
+
|
29
|
+
it "raise error when config does not exist" do
|
30
|
+
expect {
|
31
|
+
RBatch::Config.new(@path)["hoge"]
|
32
|
+
}.to raise_error(RBatch::ConfigException)
|
33
|
+
expect {
|
34
|
+
RBatch::Config.new(@path).to_h
|
35
|
+
}.to raise_error(RBatch::ConfigException)
|
36
|
+
expect {
|
37
|
+
RBatch::Config.new(@path).to_s
|
38
|
+
}.to raise_error(RBatch::ConfigException)
|
39
|
+
end
|
40
|
+
|
41
|
+
it "read config twice" do
|
42
|
+
open( @path , "w" ){|f| f.write("key: value")}
|
43
|
+
expect(RBatch::Config.new(@path)["key"]).to eq "value"
|
44
|
+
expect(RBatch::Config.new(@path)["key"]).to eq "value"
|
45
|
+
end
|
46
|
+
|
47
|
+
it "raise error when read value which key does not exist" do
|
48
|
+
open( @path , "w" ){|f| f.write("key: value")}
|
49
|
+
expect {
|
50
|
+
RBatch::Config.new(@path)["not_exist"]
|
51
|
+
}.to raise_error(RBatch::ConfigException)
|
52
|
+
end
|
53
|
+
|
54
|
+
it "raise error when read value which key mistake String for Symbol" do
|
55
|
+
open( @path , "w" ){|f| f.write("key: value")}
|
56
|
+
expect {
|
57
|
+
RBatch::Config.new(@path)[:key]
|
58
|
+
}.to raise_error(RBatch::ConfigException)
|
59
|
+
end
|
60
|
+
|
61
|
+
it "raise error when read value which key mistake Symbol for String" do
|
62
|
+
open( @path , "w" ){|f| f.write(":key: value")}
|
63
|
+
expect {
|
64
|
+
RBatch::Config.new(@path)["key"]
|
65
|
+
}.to raise_error(RBatch::ConfigException)
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
SimpleCov.start
|
3
|
+
|
4
|
+
require 'tmpdir'
|
5
|
+
require 'rbatch/controller'
|
6
|
+
describe RBatch::Controller do
|
7
|
+
|
8
|
+
before :all do
|
9
|
+
@home = File.join(Dir.tmpdir, "rbatch_test_" + rand.to_s)
|
10
|
+
end
|
11
|
+
|
12
|
+
after :each do
|
13
|
+
end
|
14
|
+
|
15
|
+
it "success" do
|
16
|
+
RBatch::Variables.new()
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
SimpleCov.start
|
3
|
+
|
4
|
+
require 'rbatch/journal'
|
5
|
+
|
6
|
+
describe RBatch::Journal do
|
7
|
+
it "default" do
|
8
|
+
@j = RBatch::Journal.new
|
9
|
+
expect(@j.journal_verbose) == 1
|
10
|
+
end
|
11
|
+
|
12
|
+
it "is passed argument" do
|
13
|
+
@j = RBatch::Journal.new(2)
|
14
|
+
expect(@j.journal_verbose) == 2
|
15
|
+
end
|
16
|
+
|
17
|
+
it "ENV is set" do
|
18
|
+
ENV["RB_VERBOSE"] = "0"
|
19
|
+
@j = RBatch::Journal.new
|
20
|
+
expect(@j.journal_verbose) == 0
|
21
|
+
end
|
22
|
+
|
23
|
+
it "both argument and ENV are set" do
|
24
|
+
ENV["RB_VERBOSE"] = "0"
|
25
|
+
@j = RBatch::Journal.new(2)
|
26
|
+
expect(@j.journal_verbose) == 2
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|