autobuild 1.8.3 → 1.9.0.b1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Manifest.txt +16 -7
- data/Rakefile +2 -0
- data/lib/autobuild/config.rb +21 -6
- data/lib/autobuild/configurable.rb +2 -2
- data/lib/autobuild/environment.rb +52 -27
- data/lib/autobuild/exceptions.rb +48 -22
- data/lib/autobuild/import/archive.rb +37 -16
- data/lib/autobuild/import/cvs.rb +26 -28
- data/lib/autobuild/import/darcs.rb +9 -8
- data/lib/autobuild/import/git.rb +324 -217
- data/lib/autobuild/import/hg.rb +6 -9
- data/lib/autobuild/import/svn.rb +190 -47
- data/lib/autobuild/importer.rb +80 -35
- data/lib/autobuild/package.rb +16 -35
- data/lib/autobuild/packages/autotools.rb +8 -8
- data/lib/autobuild/packages/cmake.rb +18 -12
- data/lib/autobuild/packages/genom.rb +1 -1
- data/lib/autobuild/packages/gnumake.rb +11 -12
- data/lib/autobuild/packages/orogen.rb +1 -1
- data/lib/autobuild/packages/ruby.rb +9 -5
- data/lib/autobuild/reporting.rb +10 -6
- data/lib/autobuild/subcommand.rb +110 -50
- data/lib/autobuild/test.rb +104 -0
- data/lib/autobuild/timestamps.rb +3 -3
- data/lib/autobuild/tools.rb +1 -1
- data/lib/autobuild/utility.rb +22 -10
- data/lib/autobuild/version.rb +1 -1
- data/test/data/gitrepo-with-extra-commit-and-tag.tar +0 -0
- data/test/data/gitrepo.tar +0 -0
- data/test/data/gitrepo/test +0 -0
- data/test/data/gitrepo/test2 +0 -0
- data/test/data/gitrepo/test3 +0 -0
- data/test/data/svnroot.tar +0 -0
- data/test/import/test_cvs.rb +51 -0
- data/test/import/test_git.rb +364 -0
- data/test/import/test_svn.rb +144 -0
- data/test/import/test_tar.rb +76 -0
- data/test/suite.rb +7 -0
- data/test/test_config.rb +1 -5
- data/test/test_environment.rb +88 -0
- data/test/test_reporting.rb +2 -14
- data/test/test_subcommand.rb +7 -22
- metadata +17 -14
- data/test/test_import_cvs.rb +0 -59
- data/test/test_import_svn.rb +0 -56
- data/test/test_import_tar.rb +0 -83
- data/test/tools.rb +0 -44
data/test/test_import_cvs.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift File.expand_path('..', File.dirname(__FILE__))
|
2
|
-
$LOAD_PATH << File.expand_path('../lib', File.dirname(__FILE__))
|
3
|
-
require 'test/unit'
|
4
|
-
require 'test/tools'
|
5
|
-
require 'autobuild/exceptions'
|
6
|
-
require 'autobuild/import/cvs'
|
7
|
-
|
8
|
-
|
9
|
-
class TC_CVSImport < Test::Unit::TestCase
|
10
|
-
include Autobuild
|
11
|
-
Package = Struct.new :srcdir, :name
|
12
|
-
|
13
|
-
def setup
|
14
|
-
Autobuild.logdir = "#{TestTools.tempdir}/log"
|
15
|
-
FileUtils.mkdir_p(Autobuild.logdir)
|
16
|
-
end
|
17
|
-
|
18
|
-
def teardown
|
19
|
-
TestTools.clean
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_cvs
|
23
|
-
TestTools.untar('cvsroot.tar')
|
24
|
-
cvsroot = File.join(TestTools.tempdir, 'cvsroot')
|
25
|
-
pkg_cvs = Package.new File.join(TestTools.tempdir, 'cvs'), 'cvs'
|
26
|
-
|
27
|
-
# Make a checkout
|
28
|
-
importer = Autobuild.cvs(cvsroot, 'cvs')
|
29
|
-
importer.import(pkg_cvs)
|
30
|
-
assert( File.exists?(File.join(pkg_cvs.srcdir, 'test')) )
|
31
|
-
|
32
|
-
# Make an update
|
33
|
-
importer.import(pkg_cvs)
|
34
|
-
|
35
|
-
# Make an update fail because the repository does not exist anymore
|
36
|
-
FileUtils.rm_rf cvsroot
|
37
|
-
assert_raise(Autobuild::SubcommandFailed) { importer.import pkg_cvs }
|
38
|
-
|
39
|
-
# Make a checkout fail because the repository does not exist anymore
|
40
|
-
FileUtils.rm_rf pkg_cvs.srcdir
|
41
|
-
assert_raise(Autobuild::SubcommandFailed) { importer.import pkg_cvs }
|
42
|
-
|
43
|
-
# Recreate the repository, and make a checkout fail because the
|
44
|
-
# WC is not a CVS WC
|
45
|
-
TestTools.untar('cvsroot.tar')
|
46
|
-
FileUtils.mkdir pkg_cvs.srcdir
|
47
|
-
assert_raise(Autobuild::ConfigException) { importer.import pkg_cvs }
|
48
|
-
|
49
|
-
# Create two repositories, and make the update fail because the
|
50
|
-
# WC is of the wrong source
|
51
|
-
FileUtils.rm_rf pkg_cvs.srcdir
|
52
|
-
importer.import(pkg_cvs)
|
53
|
-
FileUtils.mv cvsroot, "#{cvsroot}.2"
|
54
|
-
importer = Autobuild.cvs("#{cvsroot}.2", 'cvs')
|
55
|
-
assert_raise(Autobuild::ConfigException) { importer.import pkg_cvs }
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
|
data/test/test_import_svn.rb
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift File.expand_path('..', File.dirname(__FILE__))
|
2
|
-
$LOAD_PATH << File.expand_path('../lib', File.dirname(__FILE__))
|
3
|
-
require 'test/unit'
|
4
|
-
require 'test/tools'
|
5
|
-
require 'autobuild/import/svn'
|
6
|
-
|
7
|
-
class TC_SVNImport < Test::Unit::TestCase
|
8
|
-
include Autobuild
|
9
|
-
Package = Struct.new :srcdir, :name
|
10
|
-
|
11
|
-
def setup
|
12
|
-
Autobuild.logdir = "#{TestTools.tempdir}/log"
|
13
|
-
FileUtils.mkdir_p(Autobuild.logdir)
|
14
|
-
end
|
15
|
-
|
16
|
-
def teardown
|
17
|
-
TestTools.clean
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_svn
|
21
|
-
TestTools.untar('svnroot.tar')
|
22
|
-
svnrepo = File.join(TestTools.tempdir, 'svnroot')
|
23
|
-
svnroot = "file://#{svnrepo}/svn"
|
24
|
-
pkg_svn = Package.new File.join(TestTools.tempdir, 'svn'), :svn
|
25
|
-
|
26
|
-
# Make a checkout with a splitted URL
|
27
|
-
importer = Autobuild.svn(svnroot)
|
28
|
-
importer.import(pkg_svn)
|
29
|
-
assert( File.exists?(File.join(pkg_svn.srcdir, 'test')) )
|
30
|
-
|
31
|
-
# Make an update
|
32
|
-
importer.import(pkg_svn)
|
33
|
-
|
34
|
-
# Make an update fail because the repository does not exist
|
35
|
-
FileUtils.rm_rf svnrepo
|
36
|
-
assert_raise(SubcommandFailed) { importer.import(pkg_svn) }
|
37
|
-
|
38
|
-
# Make a checkout fail because the repository does not exist
|
39
|
-
FileUtils.rm_rf pkg_svn.srcdir
|
40
|
-
assert_raise(SubcommandFailed) { importer.import(pkg_svn) }
|
41
|
-
|
42
|
-
# Recreate the repository and try to update a non-svn directory
|
43
|
-
TestTools.untar('svnroot.tar')
|
44
|
-
FileUtils.mkdir pkg_svn.srcdir
|
45
|
-
assert_raise(ConfigException) { importer.import(pkg_svn) }
|
46
|
-
|
47
|
-
# Try to update a WC which is of a different repository
|
48
|
-
FileUtils.rmdir pkg_svn.srcdir
|
49
|
-
importer.import(pkg_svn)
|
50
|
-
FileUtils.mv svnrepo, "#{svnrepo}.2"
|
51
|
-
importer = Autobuild.svn("file://#{svnrepo}.2/svn")
|
52
|
-
assert_raise(ConfigException) { importer.import(pkg_svn) }
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
56
|
-
|
data/test/test_import_tar.rb
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift File.expand_path('..', File.dirname(__FILE__))
|
2
|
-
$LOAD_PATH << File.expand_path('../lib', File.dirname(__FILE__))
|
3
|
-
require 'test/unit'
|
4
|
-
require 'test/tools'
|
5
|
-
require 'autobuild/import/cvs'
|
6
|
-
require 'autobuild/import/svn'
|
7
|
-
require 'autobuild/import/tar'
|
8
|
-
require 'webrick'
|
9
|
-
|
10
|
-
include Autobuild
|
11
|
-
|
12
|
-
class TC_TarImporter < Test::Unit::TestCase
|
13
|
-
include WEBrick
|
14
|
-
Package = Struct.new :srcdir, :name
|
15
|
-
|
16
|
-
def setup
|
17
|
-
Autobuild.logdir = "#{TestTools.tempdir}/log"
|
18
|
-
FileUtils.mkdir_p(Autobuild.logdir)
|
19
|
-
|
20
|
-
@datadir = File.join(TestTools.tempdir, 'data')
|
21
|
-
FileUtils.mkdir_p(@datadir)
|
22
|
-
@tarfile = File.join(@datadir, 'tarimport.tar.gz')
|
23
|
-
FileUtils.cp(File.join(TestTools::DATADIR, 'tarimport.tar.gz'), @tarfile)
|
24
|
-
|
25
|
-
@cachedir = File.join(TestTools.tempdir, 'cache')
|
26
|
-
end
|
27
|
-
|
28
|
-
def teardown
|
29
|
-
TestTools.clean
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_tar_mode
|
33
|
-
assert_equal(TarImporter::Plain, TarImporter.url_to_mode('tarfile.tar'))
|
34
|
-
assert_equal(TarImporter::Gzip, TarImporter.url_to_mode('tarfile.tar.gz'))
|
35
|
-
assert_equal(TarImporter::Bzip, TarImporter.url_to_mode('tarfile.tar.bz2'))
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_tar_valid_url
|
39
|
-
assert_raise(ConfigException) {
|
40
|
-
TarImporter.new 'ccc://localhost/files/tarimport.tar.gz', :cachedir => @cachedir
|
41
|
-
}
|
42
|
-
end
|
43
|
-
|
44
|
-
def web_server
|
45
|
-
s = HTTPServer.new :Port => 2000, :DocumentRoot => TestTools.tempdir
|
46
|
-
s.mount("/files", HTTPServlet::FileHandler, TestTools.tempdir)
|
47
|
-
webrick = Thread.new { s.start }
|
48
|
-
|
49
|
-
yield
|
50
|
-
|
51
|
-
ensure
|
52
|
-
s.shutdown
|
53
|
-
webrick.join
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_tar_remote
|
57
|
-
web_server do
|
58
|
-
# Try to get the file through the http server
|
59
|
-
pkg = Package.new File.join(TestTools.tempdir, 'tarimport'), 'tarimport'
|
60
|
-
importer = TarImporter.new 'http://localhost:2000/files/data/tarimport.tar.gz', :cachedir => @cachedir
|
61
|
-
|
62
|
-
importer.checkout(pkg)
|
63
|
-
assert(File.directory?(pkg.srcdir))
|
64
|
-
assert(!importer.update_cache)
|
65
|
-
|
66
|
-
sleep 2 # The Time class have a 1-second resolution
|
67
|
-
FileUtils.touch @tarfile
|
68
|
-
assert(importer.update_cache)
|
69
|
-
assert(!importer.update_cache)
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_tar_remote_notfound
|
74
|
-
web_server do
|
75
|
-
# Try to get the file through the http server
|
76
|
-
pkg = Package.new File.join(TestTools.tempdir, 'tarimport'), 'tarimport'
|
77
|
-
importer = TarImporter.new 'http://localhost:2000/files/data/tarimport-nofile.tar.gz', :cachedir => @cachedir
|
78
|
-
|
79
|
-
assert_raise(Autobuild::Exception) { importer.checkout(pkg) }
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
data/test/tools.rb
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
require 'tmpdir'
|
2
|
-
require 'erb'
|
3
|
-
require 'fileutils'
|
4
|
-
|
5
|
-
module TestTools
|
6
|
-
DATADIR = File.join(File.dirname(__FILE__), 'data')
|
7
|
-
|
8
|
-
def self.tempdir
|
9
|
-
@tmpdir = File.join(Dir::tmpdir, "/autobuild-test-#{Process.uid}")
|
10
|
-
FileUtils.mkdir_p(@tmpdir, :mode => 0700)
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.clean
|
14
|
-
FileUtils.rm_rf tempdir
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.build_dummy_config(basedir)
|
18
|
-
global_prefix = File.join(basedir, 'prefix')
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.build_config(bind, template)
|
23
|
-
eval "basedir = '#{self.tempdir}'", bind
|
24
|
-
ryml = File.open(File.join(DATADIR, "#{template}.ryml")) { |f| f.readlines }.join('')
|
25
|
-
result = ERB.new(ryml).result(bind)
|
26
|
-
|
27
|
-
yml = File.join(tempdir, "#{template}.yml")
|
28
|
-
File.open(yml, 'w+') { |f| f.write(result) }
|
29
|
-
|
30
|
-
return yml
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.untar(file)
|
34
|
-
file = File.expand_path(file, DATADIR)
|
35
|
-
dir = self.tempdir
|
36
|
-
Dir.chdir(dir) do
|
37
|
-
system("tar xf #{file}")
|
38
|
-
end
|
39
|
-
|
40
|
-
dir
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
|