dtm 0.0.1 → 0.0.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.
- checksums.yaml +4 -4
- data/Rakefile +5 -1
- data/lib/dtm.rb +1 -0
- data/lib/dtm/dtm.rb +16 -15
- data/lib/dtm/task_desc.rb +23 -0
- data/lib/dtm/version.rb +1 -1
- data/test/test_dtm.rb +1 -2
- data/test/test_helper.rb +2 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 356f199bc9910cbf6bbd1f4f632ace987aa419ca
|
4
|
+
data.tar.gz: 338550eeb95a1b4e7fadf2dc9e69de49afcc17c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9095d7631cbbb45f5f00c5678b735083e1ac56d5317f8bce5aa2ac0bf29ece7719bf6706abdd77048df06a768267b59b90422d438238388eca2a6e5a6b59b8f
|
7
|
+
data.tar.gz: b4f5e53e6256c7e22da7e0ba57b703ac6b67100fa92a0ab26bab3fe961ebdf1caa8528662c0f49799c51c7d4697e036c177a0bdf0ef592b002266e1e13e7a8b9
|
data/Rakefile
CHANGED
data/lib/dtm.rb
CHANGED
data/lib/dtm/dtm.rb
CHANGED
@@ -15,13 +15,13 @@ end
|
|
15
15
|
module Dtm
|
16
16
|
class Dtm
|
17
17
|
def self.instance(data_store)
|
18
|
-
wttcl = 'C
|
18
|
+
wttcl = 'C:\Program Files\Microsoft Driver Test Manager\Studio\wttcl.exe'
|
19
19
|
return Dtm.new(wttcl, data_store) if File.exist?(wttcl)
|
20
20
|
|
21
|
-
wttcl = 'C
|
21
|
+
wttcl = 'C:\Program Files (x86)\Microsoft Driver Test Manager\Studio\wttcl.exe'
|
22
22
|
return Dtm.new(wttcl, data_store) if File.exist?(wttcl)
|
23
23
|
|
24
|
-
raise
|
24
|
+
raise 'ERROR: fail to find wttcl.exe'
|
25
25
|
end
|
26
26
|
|
27
27
|
def initialize(wttcl, data_store)
|
@@ -37,15 +37,13 @@ module Dtm
|
|
37
37
|
Schedule.new(self, schedule_id)
|
38
38
|
end
|
39
39
|
|
40
|
-
def machines(machine_pool)
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
40
|
+
def machines(machine_pool, params = {})
|
41
|
+
params[:machine_pool] = machine_pool
|
42
|
+
|
43
|
+
self.set_machine_status(params) do |stdout|
|
44
|
+
raise stdout if stdout.match(/^ERROR:/)
|
45
45
|
|
46
|
-
|
47
|
-
self.method_missing(:setmachinestatus, params) do |stdout|
|
48
|
-
stdout.split("\n").collect{|line| line.scan(/\[\w+\]/) if line.match(/Machine \[\w+\] \(ID \d+\) is in \[\w+\] state./)}.compact
|
46
|
+
stdout.split("\n").collect {|line| line.scan(/\[\w+\]/) if line.match(/Machine \[\w+\] \(ID \d+\) is in \[\w+\] state./)}.compact
|
49
47
|
end
|
50
48
|
end
|
51
49
|
|
@@ -66,17 +64,20 @@ module Dtm
|
|
66
64
|
params[:type] ||= "Automated"
|
67
65
|
|
68
66
|
self.method_missing(:add_job, params) do |stdout|
|
69
|
-
|
70
|
-
|
67
|
+
raise stdout unless stdout.match(/Job Created Successfully with ID=\d+/)
|
68
|
+
|
69
|
+
self.job(stdout.slice(/\d+/))
|
71
70
|
end
|
72
71
|
end
|
73
72
|
|
74
73
|
#FIXME design choice, put stdout processing here or leave it to job?
|
75
74
|
def schedule_job(params)
|
76
75
|
self.method_missing(:schedule_job, params) do |stdout|
|
76
|
+
raise stdout if stdout.match(/^\[?ERROR/)
|
77
|
+
|
77
78
|
stdout.split("\n").select {|line| line.match(/Schedule Created with Id \d+/)}
|
78
|
-
.
|
79
|
-
.
|
79
|
+
.map {|line| line.slice(/\d+/)}
|
80
|
+
.map {|schedule_id| self.schedule(schedule_id)}
|
80
81
|
end
|
81
82
|
end
|
82
83
|
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Dtm
|
2
|
+
class ExecuteTaskDesc
|
3
|
+
class << self
|
4
|
+
def desc(params)
|
5
|
+
ExecuteTaskDesc.new(params).desc
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
def initialize(params)
|
10
|
+
params[:type] = "Execute"
|
11
|
+
params[:execution_phase] ||= "Regular"
|
12
|
+
params[:failure_action] ||= "FailAndStop"
|
13
|
+
#FIXME should we do this for user?
|
14
|
+
params[:command_line] = "\"#{params[:command_line]}\""
|
15
|
+
|
16
|
+
@params = params
|
17
|
+
end
|
18
|
+
|
19
|
+
def desc
|
20
|
+
@params
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/dtm/version.rb
CHANGED
data/test/test_dtm.rb
CHANGED
data/test/test_helper.rb
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dtm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ruijia Li
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-08-
|
11
|
+
date: 2013-08-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -70,8 +70,10 @@ files:
|
|
70
70
|
- lib/dtm/dtm.rb
|
71
71
|
- lib/dtm/job.rb
|
72
72
|
- lib/dtm/schedule.rb
|
73
|
+
- lib/dtm/task_desc.rb
|
73
74
|
- lib/dtm/version.rb
|
74
75
|
- test/test_dtm.rb
|
76
|
+
- test/test_helper.rb
|
75
77
|
homepage: https://github.com/rli9/dtm
|
76
78
|
licenses:
|
77
79
|
- MIT
|
@@ -99,3 +101,4 @@ summary: A ruby wrapper for Microsoft DTM (Driver Test Manager) console applicat
|
|
99
101
|
wttcl.exe
|
100
102
|
test_files:
|
101
103
|
- test/test_dtm.rb
|
104
|
+
- test/test_helper.rb
|