buildr-hx 0.0.12.pre → 0.0.14.pre

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.12.pre
1
+ 0.0.14.pre
data/buildr-hx.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "buildr-hx"
8
- s.version = "0.0.12.pre"
8
+ s.version = "0.0.14.pre"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dominic Graefen"]
@@ -42,6 +42,9 @@ Gem::Specification.new do |s|
42
42
  "lib/buildr/hx/packaging.rb",
43
43
  "lib/buildr/hx/packaging/haxelib.rb",
44
44
  "lib/buildr/hx/packaging/hxlib.rb",
45
+ "lib/buildr/hx/test.rb",
46
+ "lib/buildr/hx/test/base.rb",
47
+ "lib/buildr/hx/test/munit.rb",
45
48
  "rake/jeweler.rb",
46
49
  "rake/jeweler_prerelease_tasks.rb",
47
50
  "rake/pre_release_gemspec.rb",
data/lib/buildr/hx.rb CHANGED
@@ -2,4 +2,5 @@ require 'buildr'
2
2
 
3
3
  require File.dirname(__FILE__) + '/../buildr/hx/core'
4
4
  require File.dirname(__FILE__) + '/../buildr/hx/compiler'
5
- require File.dirname(__FILE__) + '/../buildr/hx/packaging'
5
+ require File.dirname(__FILE__) + '/../buildr/hx/packaging'
6
+ require File.dirname(__FILE__) + '/../buildr/hx/test'
@@ -14,16 +14,18 @@ module Buildr
14
14
  def compile(sources, target, dependencies)
15
15
  check_options options, COMPILE_OPTIONS
16
16
  @output = get_output_file(target)
17
+ is_test = is_test?(sources, target, dependencies)
17
18
  args = ["haxe"]
19
+ sources += @project.compile.sources.map(&:to_s) if is_test
18
20
  args += generate_source_args sources
19
21
  args += generate_dependency_args dependencies
20
22
  args += base_compiler_args
21
23
  args += compiler_args if respond_to? :compiler_args
22
24
  unless Buildr.application.options.dryrun
23
- create_hxml args, is_test(sources,target,dependencies)
25
+ create_hxml args, is_test
24
26
  appwd = Dir.pwd
25
27
  Dir.chdir @project.base_dir
26
- sh args.join " "
28
+ fail("Compilation failed!") unless sh args.join " "
27
29
  Dir.chdir appwd
28
30
  end
29
31
  end
@@ -82,17 +84,19 @@ module Buildr
82
84
  system "haxelib test #{zip}"
83
85
  end
84
86
 
85
- def is_test(sources, target, dependencies)
87
+ def is_test?(sources, target, dependencies)
86
88
  test_task = @project.test.compile
87
89
  sources==test_task.sources && dependencies==test_task.dependencies.collect { |dep| dep.to_s } && target==test_task.target.to_s
88
90
  end
89
91
 
90
92
  def get_output_file target
91
- File.join(target.to_s, options["output"] || "#{@project.name.split(":").last}.#{self.class.packaging.to_s}")
93
+ file = "#{@project.name.split(":").last}.#{self.class.packaging.to_s}"
94
+ file = options[:output] unless options[:output].nil?
95
+ File.join(target.to_s, file)
92
96
  end
93
97
 
94
- def create_hxml( args, test )
95
- file = File.join(@project.base_dir, options[:hxml] || test ? "test.hxml" : "compile.hxml")
98
+ def create_hxml( args, is_test )
99
+ file = File.join(@project.base_dir, options[:hxml] || is_test ? "test.hxml" : "compile.hxml")
96
100
  puts "Creating hxml '#{file}'"
97
101
  with_path = ["cp", "swf-lib", "swf", "js", "as3", "cpp", "neko", "xml", "swf9", "resource"].map{|p|"-#{p}"}
98
102
  File.open(file, 'w') {|f| f.write(
@@ -0,0 +1,4 @@
1
+ require File.dirname(__FILE__)+"/test/base"
2
+ require File.dirname(__FILE__)+"/test/munit"
3
+
4
+ Buildr::TestFramework << Buildr::Haxe::Test::MUnit
@@ -0,0 +1,25 @@
1
+ require 'buildr'
2
+
3
+ module Buildr
4
+ module Haxe
5
+ module Test
6
+ class TestFramework::Haxe < TestFramework::Base
7
+
8
+ class << self
9
+
10
+ def applies_to?(project) #:nodoc:
11
+ project.test.compile.language == :haxe
12
+ end
13
+
14
+ def dependencies
15
+ unless @dependencies
16
+ super
17
+ end
18
+ @dependencies
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,85 @@
1
+ require 'buildr'
2
+ require 'fileutils'
3
+ require "rexml/document"
4
+
5
+ module Buildr
6
+ module Haxe
7
+ module Test
8
+
9
+ class MUnit < TestFramework::Haxe
10
+
11
+ DEFAULT_VERSION = "0.9.2.1"
12
+
13
+ "src=test
14
+ bin=bin/test/build
15
+ report=bin/test/report
16
+ hxml=test.hxml
17
+ classPaths=lib"
18
+
19
+ def tests(dependencies) #:nodoc:
20
+ candidates = []
21
+ task.project.test.compile.sources.each do |source|
22
+ files = Dir["#{source}/**/*Test.hx"] + Dir["#{source}/**/*Tests.hx"]
23
+ files.each { |item|
24
+ if File.dirname(item) == source
25
+ candidates << File.basename(item, '.*')
26
+ else
27
+ candidates << "#{File.dirname(item).gsub!(source+"/", "").gsub!("/", ".")}.#{File.basename(item, '.*')}"
28
+ end
29
+ }
30
+ end
31
+ candidates
32
+ end
33
+
34
+ def run(tests, dependencies) #:nodoc:
35
+
36
+ unless Buildr.application.options.dryrun
37
+ create_munit_config
38
+ appwd = Dir.pwd
39
+ Dir.chdir task.project.base_dir
40
+
41
+ cmd = "haxelib run munit test"
42
+ cmd << " -browser #{options[:browser]}" unless options[:browser].nil?
43
+ cmd << " -keep-browser-alive" if options[:keepbrowseralive]
44
+ cmd << " -coverage" if options[:coverage]
45
+
46
+ fail "Problems...oh noes!" unless system cmd
47
+
48
+ Dir.chdir appwd
49
+
50
+ Dir[File.join(task.project.path_to(:reports, :munit),"**/TEST-*.xml")].each do |xml_report|
51
+ doc = REXML::Document.new File.new(xml_report)
52
+ name = doc.elements["testsuite"].attributes["name"]
53
+ failures = Integer(doc.elements["testsuite"].attributes["failures"])
54
+ errors = Integer(doc.elements["testsuite"].attributes["errors"])
55
+ tests -= [name] unless failures + errors == 0
56
+ end
57
+
58
+ end
59
+ tests
60
+ end
61
+
62
+ def create_munit_config
63
+ file = File.join(task.project.base_dir, ".munit")
64
+ puts "Creating munit config '#{file}'"
65
+ File.open(file, 'w') { |f| f.write(
66
+ "version=#{options[:version].nil? ? DEFAULT_VERSION : options[:version]}
67
+ src=#{task.project.path_to(:source, :test, :hx)}
68
+ bin=#{task.project.test.compile.target}
69
+ report=#{task.project.path_to(:reports, :munit)}
70
+ hxml=#{get_hxml_file}
71
+ classPaths=#{task.project.compile.sources.map(&:to_s).join(',')}"
72
+ ) }
73
+ end
74
+
75
+ def get_hxml_file
76
+ file = "test.hxml"
77
+ file = task.project.test.compile.options[:hxml] unless task.project.test.compile.options[:hxml].nil?
78
+ File.join(task.project.base_dir, file)
79
+ end
80
+
81
+ end
82
+ end
83
+ end
84
+
85
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: buildr-hx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12.pre
4
+ version: 0.0.14.pre
5
5
  prerelease: 7
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-02-19 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: buildr
16
- requirement: &2155535100 !ruby/object:Gem::Requirement
16
+ requirement: &2156831100 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.4.6
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2155535100
24
+ version_requirements: *2156831100
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: shoulda
27
- requirement: &2155536540 !ruby/object:Gem::Requirement
27
+ requirement: &2156830600 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2155536540
35
+ version_requirements: *2156830600
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &2155537980 !ruby/object:Gem::Requirement
38
+ requirement: &2156830100 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2155537980
46
+ version_requirements: *2156830100
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &2155539420 !ruby/object:Gem::Requirement
49
+ requirement: &2156820400 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.5.2
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2155539420
57
+ version_requirements: *2156820400
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &2155540860 !ruby/object:Gem::Requirement
60
+ requirement: &2156819920 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2155540860
68
+ version_requirements: *2156819920
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov-rcov
71
- requirement: &2155542300 !ruby/object:Gem::Requirement
71
+ requirement: &2156819420 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2155542300
79
+ version_requirements: *2156819420
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rspec
82
- requirement: &2155549780 !ruby/object:Gem::Requirement
82
+ requirement: &2156818920 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 2.1.0
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *2155549780
90
+ version_requirements: *2156818920
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: ci_reporter
93
- requirement: &2155661940 !ruby/object:Gem::Requirement
93
+ requirement: &2156818440 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 1.6.5
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *2155661940
101
+ version_requirements: *2156818440
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: buildr
104
- requirement: &2155762360 !ruby/object:Gem::Requirement
104
+ requirement: &2156817920 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,7 +109,7 @@ dependencies:
109
109
  version: 1.4.6
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *2155762360
112
+ version_requirements: *2156817920
113
113
  description: Build like you code - now supporting haXe
114
114
  email: dominic @nospam@ devboy.org
115
115
  executables: []
@@ -143,6 +143,9 @@ files:
143
143
  - lib/buildr/hx/packaging.rb
144
144
  - lib/buildr/hx/packaging/haxelib.rb
145
145
  - lib/buildr/hx/packaging/hxlib.rb
146
+ - lib/buildr/hx/test.rb
147
+ - lib/buildr/hx/test/base.rb
148
+ - lib/buildr/hx/test/munit.rb
146
149
  - rake/jeweler.rb
147
150
  - rake/jeweler_prerelease_tasks.rb
148
151
  - rake/pre_release_gemspec.rb
@@ -165,7 +168,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
165
168
  version: '0'
166
169
  segments:
167
170
  - 0
168
- hash: 1921785001659672374
171
+ hash: 800551186459514666
169
172
  required_rubygems_version: !ruby/object:Gem::Requirement
170
173
  none: false
171
174
  requirements: