mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
7d463e360b
* Fix gem pristine not accounting for user installed gems. Pull request #2914 by Luis Sagastume. * Refactor keyword argument test for Ruby 2.7. Pull request #2947 by SHIBATA Hiroshi. * Fix errors at frozen Gem::Version. Pull request #2949 by Nobuyoshi Nakada. * Remove taint usage on Ruby 2.7+. Pull request #2951 by Jeremy Evans. * Check Manifest.txt is up to date. Pull request #2953 by David Rodríguez. * Clarify symlink conditionals in tests. Pull request #2962 by David Rodríguez. * Update command line parsing to work under ps. Pull request #2966 by David Rodríguez. * Properly test `Gem::Specifications.stub_for`. Pull request #2970 by David Rodríguez. * Fix Gem::LOADED_SPECS_MUTEX handling for recursive locking. Pull request #2985 by MSP-Greg.
58 lines
1.3 KiB
Ruby
58 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "rubygems/test_case"
|
|
require "open3"
|
|
|
|
class TestProjectSanity < Minitest::Test
|
|
|
|
def test_rake_package_builds_ok
|
|
skip unless File.exist?(File.expand_path("../../../Rakefile", __FILE__))
|
|
|
|
with_empty_pkg_folder do
|
|
output, status = Open3.capture2e("rake package")
|
|
|
|
assert_equal true, status.success?, <<~MSG.chomp
|
|
Expected `rake package` to work, but got errors:
|
|
|
|
```
|
|
#{output}
|
|
```
|
|
|
|
If you have added or removed files, make sure you run `rake update_manifest` to update the `Manifest.txt` accordingly
|
|
MSG
|
|
end
|
|
end
|
|
|
|
def test_manifest_is_up_to_date
|
|
skip unless File.exist?(File.expand_path("../../../Rakefile", __FILE__))
|
|
|
|
_, status = Open3.capture2e("rake check_manifest")
|
|
|
|
assert status.success?, "Expected Manifest.txt to be up to date, but it's not. Run `rake update_manifest` to sync it."
|
|
end
|
|
|
|
private
|
|
|
|
def with_empty_pkg_folder
|
|
if File.exist?("pkg")
|
|
FileUtils.cp_r("pkg", "tmp")
|
|
|
|
begin
|
|
FileUtils.rm_rf("pkg")
|
|
yield
|
|
ensure
|
|
FileUtils.rm_rf("pkg")
|
|
FileUtils.cp_r("tmp/pkg", ".")
|
|
end
|
|
else
|
|
Dir.mkdir("pkg")
|
|
|
|
begin
|
|
yield
|
|
ensure
|
|
FileUtils.rm_rf("pkg")
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|