Check-in [5279f5e5af]
Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add beginnings of MiniTest::Spec support, and some basic template tests. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
5279f5e5af057774a020e4cc9df675d9 |
User & Date: | ohookins@gmail.com 2012-01-02 11:15:21 |
Context
2012-02-20
| ||
20:45 | Merge pull request #140 from ohookins/minitest Add beginnings of MiniTest::Spec support, and some basic template tests. check-in: e5c9b05d6e user: jls@semicomplete.com tags: trunk | |
2012-01-02
| ||
11:15 | Add beginnings of MiniTest::Spec support, and some basic template tests. check-in: 5279f5e5af user: ohookins@gmail.com tags: trunk | |
2011-12-20
| ||
19:23 | Merge pull request #137 from rajatvig/master Fixed the issues for Gems when making RPM's check-in: b5610e0be5 user: jls@semicomplete.com tags: trunk | |
Changes
Changes to README.md.
︙ | ︙ | |||
79 80 81 82 83 84 85 | * deb * rpm * solaris ## Something broken? | | > > | 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | * deb * rpm * solaris ## Something broken? FPM lacks much automated testing. It does have: * BASH-based acceptance tests for finished packages * MiniTest-based unit tests (in their infancy) To compensate for lack of automated testing, should you find any bugs that would prevent you from using fpm yourself, please let me know (file a ticket, find me on IRC, email me, etc) and I'll fix it as quickly as I can (usually blocker bugs get fixed within a few minutes of me finding out about such a bug) If you have feature requests, feel free to send them my way. ## Other Documentation [See the wiki for more docs](https://github.com/jordansissel/fpm/wiki) |
Changes to Rakefile.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | task :default => [:package] task :test do system("make -C test") end task :package => [:test, :package_real] do end task :package_real do system("gem build fpm.gemspec") end task :publish do latest_gem = %x{ls -t fpm*.gem}.split("\n").first system("gem push #{latest_gem}") end | > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | require 'rake/testtask' task :default => [:package] task :test do system("make -C test") Rake::Task[:minitest].invoke # Run these tests as well. # Eventually all the tests should be minitest-run or initiated. end # MiniTest tests Rake::TestTask.new do |t| t.pattern = 'test/fpm/*.rb' t.name = 'minitest' end task :package => [:test, :package_real] do end task :package_real do system("gem build fpm.gemspec") end task :publish do latest_gem = %x{ls -t fpm*.gem}.split("\n").first system("gem push #{latest_gem}") end |
Added test/fpm/fpm_target_deb.rb.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | require 'rubygems' require 'minitest/autorun' require 'fpm/target/deb' require 'fpm/source/dir' require 'erb' describe FPM::Target::Deb do it 'renders the control file template correctly' do # Use the 'dir' source as it is the simplest to test in isolation root = File.join(File.dirname(__FILE__), 'test_data') # paths = root = File.join(File.dirname(__FILE__), 'test_data') # FIXME: Should be a fully-specifed path, but needs # some fixes in the path handling to remove the root components. paths = './test_data/dir/' source = FPM::Source::Dir.new(paths, root) deb = FPM::Target::Deb.new(source) # Fix some properties of the package to get consistent output deb.scripts = {} deb.architecture = 'all' deb.maintainer = '<testdude@example.com>' # Render the template and compare it to our canned output control_output = deb.render_spec test_file = File.join(File.dirname(__FILE__), 'test_data', 'test_deb.control') file_output = File.read(test_file) control_output.must_equal file_output end end |
Added test/fpm/fpm_target_rpm.rb.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | require 'rubygems' require 'minitest/autorun' require 'fpm/target/rpm' require 'fpm/source/dir' require 'erb' describe FPM::Target::Rpm do it 'renders the spec file template correctly' do # Use the 'dir' source as it is the simplest to test in isolation root = File.join(File.dirname(__FILE__), 'test_data') # paths = root = File.join(File.dirname(__FILE__), 'test_data') # FIXME: Should be a fully-specifed path, but needs # some fixes in the path handling to remove the root components. paths = './test_data/dir/' source = FPM::Source::Dir.new(paths, root) rpm = FPM::Target::Rpm.new(source) # Fix some properties of the package to get consistent output rpm.scripts = {} rpm.architecture = 'all' # Render the template and compare it to our canned output spec_output = rpm.render_spec test_file = File.join(File.dirname(__FILE__), 'test_data', 'test_rpm.spec') file_output = File.read(test_file) spec_output.must_equal file_output end end |
Added test/fpm/test_data/dir/foo.
Added test/fpm/test_data/test_deb.control.
> > > > > > > > > | 1 2 3 4 5 6 7 8 9 | Package: test-data Version: 1.0 Architecture: all Maintainer: <testdude@example.com> Standards-Version: 3.9.1 Section: default Priority: extra Homepage: http://nourlgiven.example.com/no/url/given Description: no description given |
Added test/fpm/test_data/test_rpm.spec.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | %define __jar_repack 0 Name: test_data Version: 1.0 Release: 1 Summary: no description given BuildArch: noarch AutoReqProv: no Group: default License: unknown URL: http://nourlgiven.example.com/no/url/given Source0: %{_sourcedir}/data.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) %description no description given %prep # noop %build # noop %install # some rpm implementations delete the build dir and then recreate it by # default, for some reason. Whatever, let's work around it. cd $RPM_BUILD_ROOT tar -zxf %SOURCE0 %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) /test_data/dir/ %changelog |