xmigra 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/test/runner.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fileutils'
3
+ require 'ostruct'
3
4
  require 'pathname'
4
5
  require 'stringio'
5
6
  require 'tmpdir'
@@ -8,6 +9,7 @@ TESTS = %w[
8
9
  git_vcs
9
10
  ]
10
11
 
12
+ $:.unshift Pathname(__FILE__).expand_path.dirname.dirname + 'lib'
11
13
  $:.unshift Pathname(__FILE__).expand_path.dirname.dirname
12
14
  require 'xmigra'
13
15
 
@@ -17,7 +19,21 @@ $tests_failed = []
17
19
 
18
20
  $xmigra_test_system = 'Microsoft SQL Server'
19
21
 
22
+ class AssertionFailure < Exception; end
23
+
24
+ class UnexpectedExceptionFailure < AssertionFailure
25
+ def initialize(msg, original=nil)
26
+ super(msg)
27
+ @original = original
28
+ set_backtrace(original.backtrace) if original
29
+ end
30
+
31
+ attr_reader :original
32
+ end
33
+
20
34
  def run_test(name, &block)
35
+ return unless $test_selectors.empty? || $test_selectors.any? {|selector| selector === name}
36
+
21
37
  $test_count += 1
22
38
 
23
39
  if child_pid = Process.fork
@@ -34,6 +50,8 @@ def run_test(name, &block)
34
50
  begin
35
51
  block.call
36
52
  exit! 0
53
+ rescue AssertionFailure
54
+ exit! 2
37
55
  rescue
38
56
  puts
39
57
  puts "Exception: #{$!}"
@@ -77,8 +95,6 @@ def initialize_xmigra_schema(path='.', options={})
77
95
  end
78
96
  end
79
97
 
80
- class AssertionFailure < Exception; end
81
-
82
98
  def assert(message=nil, &block)
83
99
  get_message = proc {
84
100
  if !message and File.exist?(block.source_location[0])
@@ -120,10 +136,43 @@ def assert_noraises
120
136
  yield
121
137
  end
122
138
 
139
+ class TestNamePrinter
140
+ def ===(v)
141
+ puts " #{v}"
142
+ return false
143
+ end
144
+ end
145
+
146
+ $test_options = OpenStruct.new
147
+ $test_options.show_counts = true
148
+ $test_selectors = (if __FILE__ == $0
149
+ [].tap do |selectors|
150
+
151
+ args = ARGV.dup
152
+ until args.empty? do
153
+ case
154
+ when args[0] == '--list'
155
+ $test_options.list_tests = true
156
+ $test_options.show_counts = false
157
+ args.shift
158
+ when args[0].start_with?('re:')
159
+ selectors << Regexp.new(args.shift[3..-1])
160
+ else
161
+ selectors << args.shift
162
+ end
163
+ end
164
+
165
+ if $test_options.list_tests
166
+ selectors.replace [TestNamePrinter.new]
167
+ end
168
+ end
169
+ else
170
+ [Object]
171
+ end)
172
+
123
173
  TESTS.each {|t| require "test/#{t}"}
124
174
 
125
175
  puts
126
- puts "#{$test_successes}/#{$test_count} succeeded"
176
+ puts "#{$test_successes}/#{$test_count} succeeded" if $test_options.show_counts
127
177
  puts "Failed tests:" unless $tests_failed.empty?
128
178
  $tests_failed.each {|name| puts " #{name}"}
129
-
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xmigra
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Next IT Corporation
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-02 00:00:00.000000000 Z
12
+ date: 2014-11-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -58,7 +58,27 @@ files:
58
58
  - Rakefile
59
59
  - bin/xmigra
60
60
  - lib/xmigra.rb
61
+ - lib/xmigra/access_artifact.rb
62
+ - lib/xmigra/access_artifact_collection.rb
63
+ - lib/xmigra/branch_upgrade.rb
64
+ - lib/xmigra/db_support/mssql.rb
65
+ - lib/xmigra/function.rb
66
+ - lib/xmigra/index.rb
67
+ - lib/xmigra/index_collection.rb
68
+ - lib/xmigra/migration.rb
69
+ - lib/xmigra/migration_chain.rb
70
+ - lib/xmigra/migration_conflict.rb
71
+ - lib/xmigra/new_file.rb
72
+ - lib/xmigra/new_migration_adder.rb
73
+ - lib/xmigra/permission_script_writer.rb
74
+ - lib/xmigra/program.rb
75
+ - lib/xmigra/schema_manipulator.rb
76
+ - lib/xmigra/schema_updater.rb
77
+ - lib/xmigra/stored_procedure.rb
78
+ - lib/xmigra/vcs_support/git.rb
79
+ - lib/xmigra/vcs_support/svn.rb
61
80
  - lib/xmigra/version.rb
81
+ - lib/xmigra/view.rb
62
82
  - test/git_vcs.rb
63
83
  - test/runner.rb
64
84
  - xmigra.gemspec