tpkg 2.3.3 → 2.3.4
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 +7 -0
- data/.gitignore +1 -0
- data/Gemfile +4 -0
- data/LICENSE +20 -0
- data/Portfile +39 -0
- data/Portfile.template +39 -0
- data/README.md +43 -0
- data/Rakefile +468 -18
- data/bin/gem2tpkg +2 -2
- data/bin/tpkg +18 -13
- data/bin/tpkg_uploader +132 -0
- data/ca.pem +1 -0
- data/control +7 -0
- data/depend +3 -0
- data/externals-etch/authorized_keys +40 -0
- data/externals-etch/group +9 -0
- data/externals-etch/iptables +38 -0
- data/externals-etch/limits +30 -0
- data/externals-etch/nfs +30 -0
- data/externals-etch/sudo +30 -0
- data/externals-etch/supplemental_groups +8 -0
- data/externals-etch/sysctl +30 -0
- data/externals-etch/user +41 -0
- data/externals/group +39 -0
- data/externals/supplemental_groups +48 -0
- data/externals/user +39 -0
- data/lib/tpkg.rb +260 -991
- data/lib/tpkg/os.rb +164 -0
- data/lib/tpkg/os/debian.rb +159 -0
- data/lib/tpkg/os/freebsd.rb +113 -0
- data/lib/tpkg/os/macosx.rb +113 -0
- data/lib/tpkg/os/redhat.rb +173 -0
- data/lib/tpkg/os/solaris.rb +101 -0
- data/lib/tpkg/os/windows.rb +26 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify.rb +67 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/errors.rb +127 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/kwalify.schema.yaml +58 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/main.rb +442 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/messages.rb +173 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/meta-validator.rb +275 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/parser/base.rb +127 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/parser/yaml.rb +841 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/rule.rb +559 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/templates/genclass-java.eruby +222 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/templates/genclass-php.eruby +104 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/templates/genclass-ruby.eruby +113 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/types.rb +156 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/util.rb +158 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/util/assert-text-equal.rb +46 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/util/hash-interface.rb +18 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/util/hashlike.rb +51 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/util/option-parser.rb +220 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/util/ordered-hash.rb +57 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/util/testcase-helper.rb +112 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/validator.rb +282 -0
- data/lib/tpkg/thirdparty/kwalify-0.7.2/lib/kwalify/yaml-parser.rb +870 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh.rb +219 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/authentication/agent.rb +179 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/authentication/constants.rb +18 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/authentication/key_manager.rb +219 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/authentication/methods/abstract.rb +60 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/authentication/methods/hostbased.rb +71 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/authentication/methods/keyboard_interactive.rb +66 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/authentication/methods/password.rb +39 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/authentication/methods/publickey.rb +92 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/authentication/pageant.rb +183 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/authentication/session.rb +134 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/buffer.rb +340 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/buffered_io.rb +198 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/config.rb +205 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/connection/channel.rb +630 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/connection/constants.rb +33 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/connection/session.rb +597 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/connection/term.rb +178 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/errors.rb +85 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/key_factory.rb +102 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/known_hosts.rb +129 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/loggable.rb +61 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/packet.rb +102 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/prompt.rb +93 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/proxy/command.rb +75 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/proxy/errors.rb +14 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/proxy/http.rb +94 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/proxy/socks4.rb +70 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/proxy/socks5.rb +142 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/ruby_compat.rb +43 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/service/forward.rb +288 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/test.rb +89 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/test/channel.rb +129 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/test/extensions.rb +152 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/test/kex.rb +44 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/test/local_packet.rb +51 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/test/packet.rb +81 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/test/remote_packet.rb +38 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/test/script.rb +157 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/test/socket.rb +64 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/algorithms.rb +384 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/cipher_factory.rb +97 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/constants.rb +30 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/hmac.rb +31 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/hmac/abstract.rb +79 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/hmac/md5.rb +12 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/hmac/md5_96.rb +11 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/hmac/none.rb +15 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/hmac/sha1.rb +13 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/hmac/sha1_96.rb +11 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/identity_cipher.rb +55 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/kex.rb +13 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb +208 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +77 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/openssl.rb +127 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/packet_stream.rb +235 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/server_version.rb +71 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/session.rb +276 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/transport/state.rb +206 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/verifiers/lenient.rb +30 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/verifiers/null.rb +12 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/verifiers/strict.rb +53 -0
- data/lib/tpkg/thirdparty/net-ssh-2.1.0/lib/net/ssh/version.rb +62 -0
- data/lib/tpkg/version.rb +3 -0
- data/man/man1/cpan2tpkg.1 +82 -0
- data/man/man1/gem2tpkg.1 +120 -0
- data/man/man1/tpkg.1 +411 -0
- data/pkginfo +8 -0
- data/postinstall.solaris +11 -0
- data/postremove.solaris +16 -0
- data/schema/schema-1.0.5.yml +0 -0
- data/schema/schema-1.0.6.yml +0 -0
- data/schema/schema-1.0.7.yml +0 -0
- data/schema/schema-1.0.8.yml +0 -0
- data/schema/schema-1.0.9.yml +0 -0
- data/schema/schema.yml +0 -0
- data/schema/tpkg-1.0.0.dtd +0 -0
- data/schema/tpkg-1.0.1.dtd +0 -0
- data/schema/tpkg-1.0.2.dtd +0 -0
- data/schema/tpkg-1.0.3.dtd +0 -0
- data/schema/tpkg-1.0.4.dtd +0 -0
- data/schema/tpkg-1.0.5.dtd +0 -0
- data/schema/tpkg-1.0.6.dtd +0 -0
- data/schema/tpkg-1.0.7.dtd +0 -0
- data/schema/tpkg-1.0.8.dtd +0 -0
- data/schema/tpkg-1.0.9.dtd +0 -0
- data/schema/tpkg.dtd +0 -0
- data/test/TODO +30 -0
- data/test/premadetestpkg/pkg_without_file_metadata-1.0-1.tpkg +0 -0
- data/test/test_checksum.rb +53 -0
- data/test/test_compress.rb +55 -0
- data/test/test_conflict.rb +41 -0
- data/test/test_crontabs.rb +398 -0
- data/test/test_dependency.rb +1113 -0
- data/test/test_downgrade.rb +80 -0
- data/test/test_download.rb +95 -0
- data/test/test_encrypt.rb +136 -0
- data/test/test_filemetadata.rb +131 -0
- data/test/test_initscript.rb +93 -0
- data/test/test_install.rb +186 -0
- data/test/test_lock.rb +82 -0
- data/test/test_make.rb +410 -0
- data/test/test_metadata.rb +805 -0
- data/test/test_misc.rb +379 -0
- data/test/test_options.rb +1711 -0
- data/test/test_os.rb +193 -0
- data/test/test_os_debian.rb +99 -0
- data/test/test_os_freebsd.rb +89 -0
- data/test/test_os_macosx.rb +79 -0
- data/test/test_os_redhat.rb +124 -0
- data/test/test_os_solaris.rb +85 -0
- data/test/test_os_windows.rb +26 -0
- data/test/test_query.rb +134 -0
- data/test/test_remove.rb +539 -0
- data/test/test_tar.rb +99 -0
- data/test/test_unpack.rb +977 -0
- data/test/test_upgrade.rb +398 -0
- data/test/test_version.rb +54 -0
- data/test/testcmds/crontab +14 -0
- data/test/testcmds/debian/apt-cache +145 -0
- data/test/testcmds/debian/dpkg-query +16 -0
- data/test/testcmds/freebsd/pkg_info +13 -0
- data/test/testcmds/macosx/port +35 -0
- data/test/testcmds/redhat/rpmbuild +6 -0
- data/test/testcmds/redhat/yum +90 -0
- data/test/testcmds/solaris/pkginfo +25 -0
- data/test/testcmds/solaris/pkgutil +36 -0
- data/test/testpkg/reloc/encfile +2 -0
- data/test/testpkg/reloc/file +2 -0
- data/test/testpkg/reloc/precryptfile +1 -0
- data/test/testpkg/reloc/precryptfile.plaintext +3 -0
- data/test/testpkg/tpkg-bad-ownergroup.xml +25 -0
- data/test/testpkg/tpkg-bad-ownergroup.yml +18 -0
- data/test/testpkg/tpkg-default-perms.xml +28 -0
- data/test/testpkg/tpkg-default-perms.yml +20 -0
- data/test/testpkg/tpkg-good-ownergroup.xml +25 -0
- data/test/testpkg/tpkg-good-ownergroup.yml +18 -0
- data/test/testpkg/tpkg-nativedeps.yml +13 -0
- data/test/testpkg/tpkg-nofiles.xml +14 -0
- data/test/testpkg/tpkg-nofiles.yml +9 -0
- data/test/testpkg/tpkg.xml +35 -0
- data/test/testpkg/tpkg.yml +25 -0
- data/test/tpkgtest.rb +300 -0
- data/tpkg.conf +16 -0
- data/tpkg.gemspec +24 -0
- data/tpkg.spec +28 -0
- data/tpkg.xml +17 -0
- data/tpkg_profile.sh +32 -0
- metadata +306 -31
data/test/test_os.rb
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Tests OS abstraction code
|
|
3
|
+
#
|
|
4
|
+
|
|
5
|
+
require File.expand_path('tpkgtest', File.dirname(__FILE__))
|
|
6
|
+
|
|
7
|
+
class Tpkg::OS::TestImplementation < Tpkg::OS
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class TpkgOSTests < Test::Unit::TestCase
|
|
11
|
+
include TpkgTests
|
|
12
|
+
|
|
13
|
+
def setup
|
|
14
|
+
@os = Tpkg::OS.new
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_register_implementation
|
|
18
|
+
Tpkg::OS.register_implementation(Tpkg::OS::TestImplementation)
|
|
19
|
+
assert_includes Tpkg::OS.class_variable_get(:@@implementations), Tpkg::OS::TestImplementation
|
|
20
|
+
end
|
|
21
|
+
def test_create
|
|
22
|
+
fact = Facter::Util::Fact.new('operatingsystem')
|
|
23
|
+
Facter.stubs(:[]).returns(fact)
|
|
24
|
+
fact.stubs(:value).returns('RedHat')
|
|
25
|
+
assert_instance_of Tpkg::OS::RedHat, Tpkg::OS.create
|
|
26
|
+
end
|
|
27
|
+
def test_initialize
|
|
28
|
+
[true, false].each do |debugval|
|
|
29
|
+
os = Tpkg::OS.new(:debug => debugval)
|
|
30
|
+
assert_equal debugval, os.instance_variable_get(:@debug)
|
|
31
|
+
end
|
|
32
|
+
# Reach into Facter's guts to test that initialize called Facter.loadfacts
|
|
33
|
+
if Facter.collection.respond_to?(:internal_loader)
|
|
34
|
+
assert Facter.collection.internal_loader.instance_variable_get(:@loaded_all)
|
|
35
|
+
else
|
|
36
|
+
assert Facter.collection.loader.instance_variable_get(:@loaded_all)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_init_links
|
|
41
|
+
# assert_raise(NotImplementedError) { @os.init_links('/path/to/init/script', {:init => {}}) }
|
|
42
|
+
assert_equal [], @os.init_links('/path/to/init/script', {:init => {}})
|
|
43
|
+
end
|
|
44
|
+
def test_available_native_packages
|
|
45
|
+
assert_raise(NotImplementedError) { @os.available_native_packages('curl') }
|
|
46
|
+
end
|
|
47
|
+
def test_install_native_package
|
|
48
|
+
assert_raise(NotImplementedError) { @os.install_native_package({}) }
|
|
49
|
+
end
|
|
50
|
+
def test_upgrade_native_package
|
|
51
|
+
assert_raise(NotImplementedError) { @os.upgrade_native_package({}) }
|
|
52
|
+
end
|
|
53
|
+
def test_stub_native_pkg
|
|
54
|
+
# See comment in method
|
|
55
|
+
# assert_raise NotImplementedError { @os.stub_native_pkg({}) }
|
|
56
|
+
pkgfile = make_package
|
|
57
|
+
metadata = Tpkg::metadata_from_package(pkgfile)
|
|
58
|
+
pkg = { :metadata => metadata, :source => pkgfile }
|
|
59
|
+
assert_nil @os.stub_native_pkg(pkg)
|
|
60
|
+
end
|
|
61
|
+
def test_remove_native_stub_pkg
|
|
62
|
+
# See comment in method
|
|
63
|
+
# assert_raise NotImplementedError { @os.remove_native_stub_pkg({}) }
|
|
64
|
+
assert_nil @os.remove_native_stub_pkg({})
|
|
65
|
+
end
|
|
66
|
+
def test_os_version
|
|
67
|
+
verfact = Facter::Util::Fact.new('operatingsystemrelease')
|
|
68
|
+
verfact.stubs(:value).returns('1.2.3')
|
|
69
|
+
Facter.expects(:[]).with('operatingsystemrelease').returns(verfact).at_least_once
|
|
70
|
+
assert_equal '1.2.3', @os.os_version
|
|
71
|
+
|
|
72
|
+
# Muck with the returned variable and ensure that doesn't stick. I.e.
|
|
73
|
+
# ensure that the method called dup on the string before returning it.
|
|
74
|
+
ver = @os.os_version
|
|
75
|
+
goodver = ver.dup
|
|
76
|
+
ver << 'junk'
|
|
77
|
+
assert_equal(goodver, @os.os_version)
|
|
78
|
+
|
|
79
|
+
end
|
|
80
|
+
def test_native_pkg_to_install_string
|
|
81
|
+
assert_equal 'pkg-1.0-1', @os.native_pkg_to_install_string({:metadata => {:name => 'pkg', :version => '1.0', :package_version => '1'}})
|
|
82
|
+
assert_equal 'pkg-1.0', @os.native_pkg_to_install_string({:metadata => {:name => 'pkg', :version => '1.0'}})
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def test_os
|
|
86
|
+
osfact = Facter::Util::Fact.new('operatingsystem')
|
|
87
|
+
osfact.stubs(:value).returns('TestOS')
|
|
88
|
+
Facter.expects(:[]).with('operatingsystem').returns(osfact).at_least_once
|
|
89
|
+
verfact = Facter::Util::Fact.new('operatingsystemrelease')
|
|
90
|
+
verfact.stubs(:value).returns('1.2.3')
|
|
91
|
+
Facter.expects(:[]).with('operatingsystemrelease').returns(verfact).at_least_once
|
|
92
|
+
assert_equal 'TestOS-1.2.3', @os.os
|
|
93
|
+
|
|
94
|
+
# Muck with the returned variable and ensure that doesn't stick. I.e.
|
|
95
|
+
# ensure that the method called dup on the string before returning it.
|
|
96
|
+
os = @os.os
|
|
97
|
+
goodos = os.dup
|
|
98
|
+
os << 'junk'
|
|
99
|
+
assert_equal(goodos, @os.os)
|
|
100
|
+
end
|
|
101
|
+
def test_os_name
|
|
102
|
+
osfact = Facter::Util::Fact.new('operatingsystem')
|
|
103
|
+
osfact.stubs(:value).returns('TestOS')
|
|
104
|
+
Facter.expects(:[]).with('operatingsystem').returns(osfact).at_least_once
|
|
105
|
+
assert_equal 'TestOS', @os.os_name
|
|
106
|
+
|
|
107
|
+
# Muck with the returned variable and ensure that doesn't stick. I.e.
|
|
108
|
+
# ensure that the method called dup on the string before returning it.
|
|
109
|
+
name = @os.os_name
|
|
110
|
+
goodname = name.dup
|
|
111
|
+
name << 'junk'
|
|
112
|
+
assert_equal(goodname, @os.os_name)
|
|
113
|
+
end
|
|
114
|
+
def test_arch
|
|
115
|
+
hwfact = Facter::Util::Fact.new('hardwaremodel')
|
|
116
|
+
hwfact.stubs(:value).returns('i286')
|
|
117
|
+
Facter.expects(:[]).with('hardwaremodel').returns(hwfact).at_least_once
|
|
118
|
+
assert_equal 'i286', @os.arch
|
|
119
|
+
|
|
120
|
+
# Muck with the returned variable and ensure that doesn't stick. I.e.
|
|
121
|
+
# ensure that the method called dup on the string before returning it.
|
|
122
|
+
arch = @os.arch
|
|
123
|
+
goodarch = arch.dup
|
|
124
|
+
arch << 'junk'
|
|
125
|
+
assert_equal(goodarch, @os.arch)
|
|
126
|
+
end
|
|
127
|
+
def test_fqdn
|
|
128
|
+
fqdnfact = Facter::Util::Fact.new('fqdn')
|
|
129
|
+
fqdnfact.stubs(:value).returns('test.example.com')
|
|
130
|
+
Facter.expects(:[]).with('fqdn').returns(fqdnfact).at_least_once
|
|
131
|
+
assert_equal 'test.example.com', @os.fqdn
|
|
132
|
+
# Test fallback to hostname + domain
|
|
133
|
+
hostfact = Facter::Util::Fact.new('hostname')
|
|
134
|
+
hostfact.stubs(:value).returns('test2')
|
|
135
|
+
domainfact = Facter::Util::Fact.new('domain')
|
|
136
|
+
domainfact.stubs(:value).returns('example.com')
|
|
137
|
+
Facter.expects(:[]).with('fqdn').returns(nil)
|
|
138
|
+
Facter.expects(:[]).with('hostname').returns(hostfact).at_least_once
|
|
139
|
+
Facter.expects(:[]).with('domain').returns(domainfact).at_least_once
|
|
140
|
+
assert_equal 'test2.example.com', @os.fqdn
|
|
141
|
+
end
|
|
142
|
+
def test_cron_dot_d_directory
|
|
143
|
+
assert_nil @os.cron_dot_d_directory
|
|
144
|
+
end
|
|
145
|
+
def test_sudo_default
|
|
146
|
+
assert @os.sudo_default?
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def test_sys_v_init_links
|
|
150
|
+
installed_path = '/path/to/init/script'
|
|
151
|
+
tpkgfile = {
|
|
152
|
+
:init => {}
|
|
153
|
+
}
|
|
154
|
+
default_levels = ['1', '2', '3']
|
|
155
|
+
init_directory = '/etc/rc.d'
|
|
156
|
+
assert_equal(
|
|
157
|
+
['/etc/rc.d/rc1.d/S99script',
|
|
158
|
+
'/etc/rc.d/rc2.d/S99script',
|
|
159
|
+
'/etc/rc.d/rc3.d/S99script'],
|
|
160
|
+
@os.sys_v_init_links(installed_path, tpkgfile, default_levels, init_directory))
|
|
161
|
+
|
|
162
|
+
tpkgfile = {
|
|
163
|
+
:init => {
|
|
164
|
+
:start => '98'
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
assert_equal(
|
|
168
|
+
['/etc/rc.d/rc1.d/S98script',
|
|
169
|
+
'/etc/rc.d/rc2.d/S98script',
|
|
170
|
+
'/etc/rc.d/rc3.d/S98script'],
|
|
171
|
+
@os.sys_v_init_links(installed_path, tpkgfile, default_levels, init_directory))
|
|
172
|
+
|
|
173
|
+
tpkgfile = {
|
|
174
|
+
:init => {
|
|
175
|
+
:levels => ['1', '2']
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
assert_equal(
|
|
179
|
+
['/etc/rc.d/rc1.d/S99script',
|
|
180
|
+
'/etc/rc.d/rc2.d/S99script'],
|
|
181
|
+
@os.sys_v_init_links(installed_path, tpkgfile, default_levels, init_directory))
|
|
182
|
+
|
|
183
|
+
tpkgfile = {
|
|
184
|
+
:init => {
|
|
185
|
+
:levels => '13'
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
assert_equal(
|
|
189
|
+
['/etc/rc.d/rc1.d/S99script',
|
|
190
|
+
'/etc/rc.d/rc3.d/S99script'],
|
|
191
|
+
@os.sys_v_init_links(installed_path, tpkgfile, default_levels, init_directory))
|
|
192
|
+
end
|
|
193
|
+
end
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Tests Debian OS abstraction code
|
|
3
|
+
#
|
|
4
|
+
|
|
5
|
+
require File.expand_path('tpkgtest', File.dirname(__FILE__))
|
|
6
|
+
|
|
7
|
+
class TpkgOSDebianTests < Test::Unit::TestCase
|
|
8
|
+
include TpkgTests
|
|
9
|
+
|
|
10
|
+
def setup
|
|
11
|
+
@debian = Tpkg::OS::Debian.new(
|
|
12
|
+
:dpkgquerycmd => File.join(TESTCMDDIR, 'debian/dpkg-query'),
|
|
13
|
+
:aptcachecmd => File.join(TESTCMDDIR, 'debian/apt-cache'),
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_supported
|
|
18
|
+
fact = Facter::Util::Fact.new('operatingsystem')
|
|
19
|
+
Facter.expects(:[]).with('operatingsystem').returns(fact).at_least_once
|
|
20
|
+
fact.stubs(:value).returns('Debian')
|
|
21
|
+
assert Tpkg::OS::Debian.supported?
|
|
22
|
+
fact.stubs(:value).returns('Ubuntu')
|
|
23
|
+
assert Tpkg::OS::Debian.supported?
|
|
24
|
+
fact.stubs(:value).returns('Other')
|
|
25
|
+
refute Tpkg::OS::Debian.supported?
|
|
26
|
+
end
|
|
27
|
+
def test_initialize
|
|
28
|
+
[:dpkgquerycmd, :aptcachecmd, :aptgetcmd].each do |cmdvar|
|
|
29
|
+
debian = Tpkg::OS::Debian.new(cmdvar => TESTCMD)
|
|
30
|
+
assert_equal TESTCMD, debian.instance_variable_get("@#{cmdvar}")
|
|
31
|
+
debian = Tpkg::OS::Debian.new(:testcmd => TESTCMD)
|
|
32
|
+
assert_equal TESTCMD, debian.instance_variable_get("@#{cmdvar}")
|
|
33
|
+
end
|
|
34
|
+
# Test that super is called
|
|
35
|
+
[true, false].each do |debugval|
|
|
36
|
+
debian = Tpkg::OS::Debian.new(:debug => debugval)
|
|
37
|
+
assert_equal debugval, debian.instance_variable_get(:@debug)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
def test_init_links
|
|
41
|
+
correct = (2..5).collect{|i| "/etc/rc#{i}.d/S99script"}
|
|
42
|
+
assert_equal correct, @debian.init_links('/path/to/init/script', {:init => {}})
|
|
43
|
+
end
|
|
44
|
+
def test_cron_dot_d_directory
|
|
45
|
+
assert_equal '/etc/cron.d', @debian.cron_dot_d_directory
|
|
46
|
+
end
|
|
47
|
+
def test_available_native_packages
|
|
48
|
+
assert_equal(
|
|
49
|
+
[
|
|
50
|
+
{:metadata=>
|
|
51
|
+
{:name=>'ruby1.9.1', :version=>'1.9.3.194', :package_version=>'3'},
|
|
52
|
+
:source=>:native_installed,
|
|
53
|
+
:prefer=>true},
|
|
54
|
+
{:metadata=>
|
|
55
|
+
{:name=>'ruby1.9.1', :version=>'1.9.3.194', :package_version=>'7'},
|
|
56
|
+
:source=>:native_available},
|
|
57
|
+
],
|
|
58
|
+
@debian.available_native_packages('ruby1.9.1'))
|
|
59
|
+
assert_equal(
|
|
60
|
+
[
|
|
61
|
+
{:metadata=>
|
|
62
|
+
{:name=>'exim4', :version=>'4.80', :package_version=>'7'},
|
|
63
|
+
:source=>:native_available}
|
|
64
|
+
],
|
|
65
|
+
@debian.available_native_packages('exim4'))
|
|
66
|
+
assert_equal [], @debian.available_native_packages('bogus')
|
|
67
|
+
end
|
|
68
|
+
def test_native_pkg_to_install_string
|
|
69
|
+
assert_equal 'pkg=1.0-1', @debian.native_pkg_to_install_string({:metadata => {:name => 'pkg', :version => '1.0', :package_version => '1'}})
|
|
70
|
+
assert_equal 'pkg=1.0', @debian.native_pkg_to_install_string({:metadata => {:name => 'pkg', :version => '1.0'}})
|
|
71
|
+
end
|
|
72
|
+
def test_install_native_package
|
|
73
|
+
@debian.expects(:system).with('apt-get -y install ruby1.9.1=1.9.3.194-7')
|
|
74
|
+
@debian.install_native_package({:metadata => {:name => 'ruby1.9.1', :version => '1.9.3.194', :package_version => '7'}})
|
|
75
|
+
end
|
|
76
|
+
def test_upgrade_native_package
|
|
77
|
+
@debian.expects(:system).with('apt-get -y install ruby1.9.1=1.9.3.194-7')
|
|
78
|
+
@debian.upgrade_native_package({:metadata => {:name => 'ruby1.9.1', :version => '1.9.3.194', :package_version => '7'}})
|
|
79
|
+
end
|
|
80
|
+
def test_os_version
|
|
81
|
+
# The os_version method caches its result, so we need a new object for
|
|
82
|
+
# each test
|
|
83
|
+
fact = Facter::Util::Fact.new('lsbmajdistrelease')
|
|
84
|
+
Facter.expects(:[]).with('lsbmajdistrelease').returns(fact).at_least_once
|
|
85
|
+
fact.stubs(:value).returns('6')
|
|
86
|
+
assert_equal '6', Tpkg::OS::Debian.new.os_version
|
|
87
|
+
fact.stubs(:value).returns('testing')
|
|
88
|
+
assert_equal 'testing', Tpkg::OS::Debian.new.os_version
|
|
89
|
+
fact.stubs(:value).returns('testing/unstable')
|
|
90
|
+
assert_equal 'testing', Tpkg::OS::Debian.new.os_version
|
|
91
|
+
|
|
92
|
+
# Test fallback to lsbdistrelease
|
|
93
|
+
fact = Facter::Util::Fact.new('lsbdistrelease')
|
|
94
|
+
fact.stubs(:value).returns('6.0.7')
|
|
95
|
+
Facter.expects(:[]).with('lsbmajdistrelease').returns(nil)
|
|
96
|
+
Facter.expects(:[]).with('lsbdistrelease').returns(fact).at_least_once
|
|
97
|
+
assert_equal '6', Tpkg::OS::Debian.new.os_version
|
|
98
|
+
end
|
|
99
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Tests FreeBSD OS abstraction code
|
|
3
|
+
#
|
|
4
|
+
|
|
5
|
+
require File.expand_path('tpkgtest', File.dirname(__FILE__))
|
|
6
|
+
|
|
7
|
+
class TpkgOSFreeBSDTests < Test::Unit::TestCase
|
|
8
|
+
include TpkgTests
|
|
9
|
+
|
|
10
|
+
def setup
|
|
11
|
+
@freebsd = Tpkg::OS::FreeBSD.new(
|
|
12
|
+
:pkginfocmd => File.join(TESTCMDDIR, 'freebsd/pkg_info'),
|
|
13
|
+
)
|
|
14
|
+
end
|
|
15
|
+
def setup_mock_os
|
|
16
|
+
fact = Facter::Util::Fact.new('hardwaremodel')
|
|
17
|
+
fact.stubs(:value).returns('i386')
|
|
18
|
+
Facter.expects(:[]).with('hardwaremodel').returns(fact).at_least_once
|
|
19
|
+
fact = Facter::Util::Fact.new('operatingsystemrelease')
|
|
20
|
+
fact.stubs(:value).returns('9.1-RELEASE')
|
|
21
|
+
Facter.expects(:[]).with('operatingsystemrelease').returns(fact).at_least_once
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def test_supported
|
|
25
|
+
fact = Facter::Util::Fact.new('operatingsystem')
|
|
26
|
+
Facter.expects(:[]).with('operatingsystem').returns(fact).at_least_once
|
|
27
|
+
fact.stubs(:value).returns('FreeBSD')
|
|
28
|
+
assert Tpkg::OS::FreeBSD.supported?
|
|
29
|
+
fact.stubs(:value).returns('Other')
|
|
30
|
+
refute Tpkg::OS::FreeBSD.supported?
|
|
31
|
+
end
|
|
32
|
+
def test_initialize
|
|
33
|
+
[:pkginfocmd, :pkgaddcmd, :pkgdeletecmd].each do |cmdvar|
|
|
34
|
+
freebsd = Tpkg::OS::FreeBSD.new(cmdvar => TESTCMD)
|
|
35
|
+
assert_equal TESTCMD, freebsd.instance_variable_get("@#{cmdvar}")
|
|
36
|
+
freebsd = Tpkg::OS::FreeBSD.new(:testcmd => TESTCMD)
|
|
37
|
+
assert_equal TESTCMD, freebsd.instance_variable_get("@#{cmdvar}")
|
|
38
|
+
end
|
|
39
|
+
# Test that super is called
|
|
40
|
+
[true, false].each do |debugval|
|
|
41
|
+
freebsd = Tpkg::OS::FreeBSD.new(:debug => debugval)
|
|
42
|
+
assert_equal debugval, freebsd.instance_variable_get(:@debug)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_packagesite
|
|
47
|
+
setup_mock_os
|
|
48
|
+
assert_equal 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9-stable/All/', @freebsd.packagesite
|
|
49
|
+
freebsd = Tpkg::OS::FreeBSD.new(:packagesite => 'http://example.com/freebsd/<%= os_version %>/<%= arch %>')
|
|
50
|
+
assert_equal 'http://example.com/freebsd/9/i386/', freebsd.packagesite
|
|
51
|
+
end
|
|
52
|
+
def test_init_links
|
|
53
|
+
assert_equal ['/usr/local/etc/rc.d/script'], @freebsd.init_links('/path/to/init/script', {:init => {}})
|
|
54
|
+
end
|
|
55
|
+
def test_available_native_packages
|
|
56
|
+
assert_equal(
|
|
57
|
+
[
|
|
58
|
+
{:metadata=>
|
|
59
|
+
{:name=>'curl', :version=>'7.24.0'},
|
|
60
|
+
:source=>:native_installed,
|
|
61
|
+
:prefer=>true},
|
|
62
|
+
],
|
|
63
|
+
@freebsd.available_native_packages('curl'))
|
|
64
|
+
assert_equal [], @freebsd.available_native_packages('bogus')
|
|
65
|
+
end
|
|
66
|
+
def test_native_pkg_to_install_string
|
|
67
|
+
assert_equal 'pkg-1.0_1', @freebsd.native_pkg_to_install_string({:metadata => {:name => 'pkg', :version => '1.0', :package_version => '1'}})
|
|
68
|
+
assert_equal 'pkg-1.0', @freebsd.native_pkg_to_install_string({:metadata => {:name => 'pkg', :version => '1.0'}})
|
|
69
|
+
end
|
|
70
|
+
def test_install_native_package
|
|
71
|
+
setup_mock_os
|
|
72
|
+
@freebsd.expects(:system).
|
|
73
|
+
with('sh', '-c', "PACKAGESITE=#{@freebsd.packagesite} pkg_add -r curl-7.24.0")
|
|
74
|
+
@freebsd.install_native_package({:metadata => {:name => 'curl', :version => '7.24.0'}})
|
|
75
|
+
end
|
|
76
|
+
def test_upgrade_native_package
|
|
77
|
+
setup_mock_os
|
|
78
|
+
@freebsd.expects(:system).with('pkg_delete curl-7.24.0')
|
|
79
|
+
@freebsd.expects(:system).
|
|
80
|
+
with('sh', '-c', "PACKAGESITE=#{@freebsd.packagesite} pkg_add -r curl-7.24.0")
|
|
81
|
+
@freebsd.upgrade_native_package({:metadata => {:name => 'curl', :version => '7.24.0'}})
|
|
82
|
+
end
|
|
83
|
+
def test_os_version
|
|
84
|
+
fact = Facter::Util::Fact.new('operatingsystemrelease')
|
|
85
|
+
fact.stubs(:value).returns('9.1-RELEASE')
|
|
86
|
+
Facter.expects(:[]).with('operatingsystemrelease').returns(fact).at_least_once
|
|
87
|
+
assert_equal '9', Tpkg::OS::FreeBSD.new.os_version
|
|
88
|
+
end
|
|
89
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Tests Mac OS X OS abstraction code
|
|
3
|
+
#
|
|
4
|
+
|
|
5
|
+
require File.expand_path('tpkgtest', File.dirname(__FILE__))
|
|
6
|
+
|
|
7
|
+
class TpkgOSMacOSXTests < Test::Unit::TestCase
|
|
8
|
+
include TpkgTests
|
|
9
|
+
|
|
10
|
+
def setup
|
|
11
|
+
@testport = File.join(TESTCMDDIR, 'macosx/port')
|
|
12
|
+
@macosx = Tpkg::OS::MacOSX.new(
|
|
13
|
+
:portcmd => @testport,
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_supported
|
|
18
|
+
fact = Facter::Util::Fact.new('operatingsystem')
|
|
19
|
+
Facter.expects(:[]).with('operatingsystem').returns(fact).at_least_once
|
|
20
|
+
fact.stubs(:value).returns('Darwin')
|
|
21
|
+
assert Tpkg::OS::MacOSX.supported?
|
|
22
|
+
fact.stubs(:value).returns('Other')
|
|
23
|
+
refute Tpkg::OS::MacOSX.supported?
|
|
24
|
+
end
|
|
25
|
+
def test_initialize
|
|
26
|
+
[:portcmd].each do |cmdvar|
|
|
27
|
+
macosx = Tpkg::OS::MacOSX.new(cmdvar => TESTCMD)
|
|
28
|
+
assert_equal TESTCMD, macosx.instance_variable_get("@#{cmdvar}")
|
|
29
|
+
macosx = Tpkg::OS::MacOSX.new(:testcmd => TESTCMD)
|
|
30
|
+
assert_equal TESTCMD, macosx.instance_variable_get("@#{cmdvar}")
|
|
31
|
+
end
|
|
32
|
+
# Test that super is called
|
|
33
|
+
[true, false].each do |debugval|
|
|
34
|
+
macosx = Tpkg::OS::MacOSX.new(:debug => debugval)
|
|
35
|
+
assert_equal debugval, macosx.instance_variable_get(:@debug)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
def test_available_native_packages
|
|
39
|
+
assert_equal(
|
|
40
|
+
[
|
|
41
|
+
{:metadata=>
|
|
42
|
+
{:name=>'curl', :version=>'7.27.0', :package_version=>'1'},
|
|
43
|
+
:source=>:native_installed,
|
|
44
|
+
:prefer=>true},
|
|
45
|
+
{:metadata=>
|
|
46
|
+
{:name=>'curl', :version=>'7.28.1'},
|
|
47
|
+
:source=>:native_available},
|
|
48
|
+
],
|
|
49
|
+
@macosx.available_native_packages('curl'))
|
|
50
|
+
assert_equal(
|
|
51
|
+
[
|
|
52
|
+
{:metadata=>
|
|
53
|
+
{:name=>'ruby186', :version=>'1.8.6-p420'},
|
|
54
|
+
:source=>:native_available}
|
|
55
|
+
],
|
|
56
|
+
@macosx.available_native_packages('ruby186'))
|
|
57
|
+
assert_equal [], @macosx.available_native_packages('bogus')
|
|
58
|
+
end
|
|
59
|
+
def test_native_pkg_to_install_string
|
|
60
|
+
assert_equal 'pkg', @macosx.native_pkg_to_install_string({:metadata => {:name => 'pkg', :version => '1.0', :package_version => '1'}})
|
|
61
|
+
assert_equal 'pkg', @macosx.native_pkg_to_install_string({:metadata => {:name => 'pkg', :version => '1.0'}})
|
|
62
|
+
end
|
|
63
|
+
def test_install_native_package
|
|
64
|
+
@macosx.expects(:system).with("#{@testport} install curl")
|
|
65
|
+
@macosx.install_native_package(
|
|
66
|
+
{:metadata => {:name => 'curl', :version => '7.28.1'}})
|
|
67
|
+
end
|
|
68
|
+
def test_upgrade_native_package
|
|
69
|
+
@macosx.expects(:system).with("#{@testport} upgrade curl")
|
|
70
|
+
@macosx.upgrade_native_package(
|
|
71
|
+
{:metadata => {:name => 'curl', :version => '7.28.1', :package_version => '7'}})
|
|
72
|
+
end
|
|
73
|
+
def test_os_version
|
|
74
|
+
fact = Facter::Util::Fact.new('macosx_productversion')
|
|
75
|
+
Facter.expects(:[]).with('macosx_productversion').returns(fact).at_least_once
|
|
76
|
+
fact.stubs(:value).returns('10.8.2')
|
|
77
|
+
assert_equal '10.8', Tpkg::OS::MacOSX.new.os_version
|
|
78
|
+
end
|
|
79
|
+
end
|