Add ReadmeExamplesTest

This commit is contained in:
0x1eef 2024-05-12 00:53:21 -03:00
parent 51341f63ac
commit 9942c6e6bc
6 changed files with 31 additions and 1 deletions

View file

@ -10,6 +10,7 @@ GEM
rake (13.1.0) rake (13.1.0)
rake-compiler (1.2.7) rake-compiler (1.2.7)
rake rake
test-cmd.rb (0.8.0)
test-unit (3.6.2) test-unit (3.6.2)
power_assert power_assert
@ -20,6 +21,7 @@ PLATFORMS
DEPENDENCIES DEPENDENCIES
bsdcontrol.rb! bsdcontrol.rb!
rake-compiler (~> 1.2) rake-compiler (~> 1.2)
test-cmd.rb (~> 0.8)
test-unit (~> 3.6) test-unit (~> 3.6)
BUNDLED WITH BUNDLED WITH

View file

@ -2,7 +2,7 @@
set -e set -e
if [ $(id -u) -ne 0 ]; then if [ $(id -u) -ne 0 ]; then
rake clean clobber compile rake clean clobber compile
for file in test/unprivileged/*_test.rb; do for file in test/readme_examples_test.rb test/unprivileged/*_test.rb; do
ruby -Ilib ${file} --no-use-color ruby -Ilib ${file} --no-use-color
done done
else else

View file

@ -13,4 +13,5 @@ Gem::Specification.new do |gem|
gem.description = gem.summary gem.description = gem.summary
gem.add_development_dependency "rake-compiler", "~> 1.2" gem.add_development_dependency "rake-compiler", "~> 1.2"
gem.add_development_dependency "test-unit", "~> 3.6" gem.add_development_dependency "test-unit", "~> 3.6"
gem.add_development_dependency "test-cmd.rb", "~> 0.8"
end end

View file

@ -0,0 +1,8 @@
#!/usr/bin/env ruby
# Required privileges: user, superuser
require "bsdcontrol"
BSD::Control
.available_features
.each do
print "The ", _1.name, " feature is available", "\n"
end

View file

@ -0,0 +1,18 @@
require_relative "setup"
class ReadmeExamplesTest < Test::Unit::TestCase
require "rbconfig"
require "test/cmd"
def test_available_features
result = cmd(RbConfig.ruby, readme_example('1_available_features.rb'))
assert_equal true, result.status.success?
result.each_line { assert_match %r|The [a-zA-Z0-9_]+ feature is available|, _1 }
end
private
def readme_example(name)
File.join(Dir.getwd, 'share', 'bsdcontrol.rb', 'examples', name)
end
end

View file

@ -1,2 +1,3 @@
require "bundler/setup"
require "test/unit" require "test/unit"
require "bsdcontrol" require "bsdcontrol"