Add testcases
This commit is contained in:
parent
6ea77f862f
commit
819601ef44
9 changed files with 98 additions and 0 deletions
|
@ -6,9 +6,12 @@ PATH
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
power_assert (2.0.3)
|
||||
rake (13.1.0)
|
||||
rake-compiler (1.2.0)
|
||||
rake
|
||||
test-unit (3.6.2)
|
||||
power_assert
|
||||
|
||||
PLATFORMS
|
||||
amd64-freebsd-14
|
||||
|
@ -17,6 +20,7 @@ PLATFORMS
|
|||
DEPENDENCIES
|
||||
hbsdctl.rb!
|
||||
rake-compiler (= 1.2.0)
|
||||
test-unit (~> 3.6)
|
||||
|
||||
BUNDLED WITH
|
||||
2.5.3
|
||||
|
|
12
Rakefile.rb
12
Rakefile.rb
|
@ -7,3 +7,15 @@ desc "Run C linter"
|
|||
task :styleguide do
|
||||
sh "uncrustify -c .styleguide.cfg --no-backup ext/hbsdctl.rb/*.c"
|
||||
end
|
||||
|
||||
namespace :test do
|
||||
desc "Run unprivileged tests"
|
||||
task :unprivileged do
|
||||
sh "./bin/run-unprivileged-tests"
|
||||
end
|
||||
|
||||
desc "Run superuser tests"
|
||||
task :superuser do
|
||||
sh "./bin/run-superuser-tests"
|
||||
end
|
||||
end
|
||||
|
|
11
bin/run-superuser-tests
Executable file
11
bin/run-superuser-tests
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
if [ $(id -u) = 0 ]; then
|
||||
rake clean clobber compile
|
||||
for file in test/superuser/*_test.rb; do
|
||||
ruby -Ilib ${file} --no-use-color
|
||||
done
|
||||
else
|
||||
echo "You must be root to run superuser tests."
|
||||
exit 1
|
||||
fi
|
6
bin/run-unprivileged-tests
Executable file
6
bin/run-unprivileged-tests
Executable file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
rake clean clobber compile
|
||||
for file in test/unprivileged/*_test.rb; do
|
||||
ruby -Ilib ${file} --no-use-color
|
||||
done
|
|
@ -11,4 +11,5 @@ Gem::Specification.new do |gem|
|
|||
gem.summary = "Ruby bindings for libhbsdcontrol"
|
||||
gem.description = gem.summary
|
||||
gem.add_development_dependency "rake-compiler", "= 1.2.0"
|
||||
gem.add_development_dependency "test-unit", "~> 3.6"
|
||||
end
|
||||
|
|
2
test/setup.rb
Normal file
2
test/setup.rb
Normal file
|
@ -0,0 +1,2 @@
|
|||
require "test/unit"
|
||||
require "hbsdctl"
|
27
test/superuser/enable_feature_test.rb
Normal file
27
test/superuser/enable_feature_test.rb
Normal file
|
@ -0,0 +1,27 @@
|
|||
require_relative "../setup"
|
||||
module BSD::Control
|
||||
class EnableFeatureTest < Test::Unit::TestCase
|
||||
require 'fileutils'
|
||||
include FileUtils
|
||||
|
||||
def test_enable_mprotect
|
||||
touch(file)
|
||||
assert BSD::Control.feature!(:mprotect).enable!(file),
|
||||
"The enable! method should have returned true"
|
||||
ensure
|
||||
rm(file)
|
||||
end
|
||||
|
||||
def test_enable_mprotect_nonexistent_file
|
||||
assert_raises(BSD::Control::Error) do
|
||||
BSD::Control.feature!(:mprotect).enable!(file)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def file
|
||||
File.join(__dir__, "file")
|
||||
end
|
||||
end
|
||||
end
|
20
test/unprivileged/available_features_test.rb
Normal file
20
test/unprivileged/available_features_test.rb
Normal file
|
@ -0,0 +1,20 @@
|
|||
require_relative "../setup"
|
||||
module BSD::Control
|
||||
class AvailableFeaturesTest < Test::Unit::TestCase
|
||||
def test_available_features_not_empty
|
||||
refute available_features.empty?,
|
||||
"There should have been at least one available feature"
|
||||
end
|
||||
|
||||
def test_available_features_instance_of
|
||||
assert available_features.all? { _1.instance_of?(BSD::Control::Feature) },
|
||||
"All available features should be an instance of `BSD::Control::Feature`"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def available_features
|
||||
BSD::Control.available_features
|
||||
end
|
||||
end
|
||||
end
|
15
test/unprivileged/feature_bang_test.rb
Normal file
15
test/unprivileged/feature_bang_test.rb
Normal file
|
@ -0,0 +1,15 @@
|
|||
require_relative "../setup"
|
||||
module BSD::Control
|
||||
class FeatureBangTest < Test::Unit::TestCase
|
||||
def test_mprotect_feature
|
||||
assert_instance_of BSD::Control::Feature,
|
||||
BSD::Control.feature!(:mprotect)
|
||||
end
|
||||
|
||||
def test_nonexistent_feature
|
||||
assert_raises(BSD::Control::Error) do
|
||||
BSD::Control.feature!(:non_existent_feature)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue