Update test/
This commit is contained in:
parent
fafc20c06b
commit
5571ab8f3b
11 changed files with 58 additions and 128 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
||||||
/.gems/
|
/.gems/
|
||||||
/tmp/
|
/tmp/
|
||||||
|
test/**/file
|
||||||
*.so
|
*.so
|
||||||
|
|
|
@ -3,3 +3,25 @@
|
||||||
require "bundler/setup"
|
require "bundler/setup"
|
||||||
require "test/unit"
|
require "test/unit"
|
||||||
require "bsdcontrol"
|
require "bsdcontrol"
|
||||||
|
|
||||||
|
module BSD::Control
|
||||||
|
class Test < Test::Unit::TestCase
|
||||||
|
require "fileutils"
|
||||||
|
include FileUtils
|
||||||
|
|
||||||
|
def setup
|
||||||
|
File.exist?(file) ? rm(file) : nil
|
||||||
|
touch(file)
|
||||||
|
end
|
||||||
|
|
||||||
|
def teardown
|
||||||
|
File.exist?(file) ? rm(file) : nil
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def file
|
||||||
|
File.join(__dir__, "file")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -2,32 +2,19 @@
|
||||||
|
|
||||||
require_relative "../setup"
|
require_relative "../setup"
|
||||||
module BSD::Control
|
module BSD::Control
|
||||||
class DisableFeatureTest < Test::Unit::TestCase
|
class DisableFeatureTest < BSD::Control::Test
|
||||||
require "fileutils"
|
|
||||||
include FileUtils
|
|
||||||
|
|
||||||
def test_disable_pageexec
|
def test_disable_pageexec
|
||||||
touch(file)
|
assert_equal true,
|
||||||
assert BSD::Control.feature(:pageexec).disable!(file),
|
BSD::Control.feature(:pageexec).disable!(file)
|
||||||
"The disable! method should have returned true"
|
assert_equal :disabled,
|
||||||
assert_equal(
|
BSD::Control.feature(:pageexec).status(file)
|
||||||
:disabled,
|
|
||||||
BSD::Control.feature(:pageexec).status(file)
|
|
||||||
)
|
|
||||||
ensure
|
|
||||||
rm(file)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_disable_pageexec_nonexistent_file
|
def test_disable_pageexec_nonexistent_file
|
||||||
|
rm(file)
|
||||||
assert_raises(Errno::ENOENT) do
|
assert_raises(Errno::ENOENT) do
|
||||||
BSD::Control.feature(:pageexec).disable!(file)
|
BSD::Control.feature(:pageexec).disable!(file)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def file
|
|
||||||
File.join(__dir__, "file")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,37 +2,23 @@
|
||||||
|
|
||||||
require_relative "../setup"
|
require_relative "../setup"
|
||||||
module BSD::Control
|
module BSD::Control
|
||||||
class EnableFeatureTest < Test::Unit::TestCase
|
class EnableFeatureTest < BSD::Control::Test
|
||||||
require "fileutils"
|
|
||||||
include FileUtils
|
|
||||||
|
|
||||||
def test_enable_pageexec
|
def test_enable_pageexec
|
||||||
touch(file)
|
assert_equal true,
|
||||||
assert BSD::Control.feature(:pageexec).enable!(file),
|
BSD::Control.feature(:pageexec).enable!(file)
|
||||||
"The enable! method should have returned true"
|
|
||||||
ensure
|
|
||||||
rm(file)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_enable_pageexec_zero_permissions
|
def test_enable_pageexec_mode_zero
|
||||||
touch(file)
|
|
||||||
chmod(0, file)
|
chmod(0, file)
|
||||||
assert BSD::Control.feature(:pageexec).enable!(file),
|
assert_equal true,
|
||||||
"The enable! method should have returned true"
|
BSD::Control.feature(:pageexec).enable!(file)
|
||||||
ensure
|
|
||||||
rm(file)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_enable_pageexec_nonexistent_file
|
def test_enable_pageexec_nonexistent_file
|
||||||
|
rm(file)
|
||||||
assert_raises(Errno::ENOENT) do
|
assert_raises(Errno::ENOENT) do
|
||||||
BSD::Control.feature(:pageexec).enable!(file)
|
BSD::Control.feature(:pageexec).enable!(file)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def file
|
|
||||||
File.join(__dir__, "file")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,40 +2,22 @@
|
||||||
|
|
||||||
require_relative "../setup"
|
require_relative "../setup"
|
||||||
module BSD::Control
|
module BSD::Control
|
||||||
class FeatureStatusTest < Test::Unit::TestCase
|
class FeatureStatusTest < BSD::Control::Test
|
||||||
require "fileutils"
|
|
||||||
include FileUtils
|
|
||||||
|
|
||||||
def test_pageexec_sysdef_status
|
def test_pageexec_sysdef_status
|
||||||
touch(file)
|
|
||||||
assert_equal :sysdef,
|
assert_equal :sysdef,
|
||||||
BSD::Control.feature(:pageexec).status(file)
|
BSD::Control.feature(:pageexec).status(file)
|
||||||
ensure
|
|
||||||
rm(file)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_pageexec_enabled_status
|
def test_pageexec_enabled_status
|
||||||
touch(file)
|
|
||||||
BSD::Control.feature(:pageexec).enable!(file)
|
BSD::Control.feature(:pageexec).enable!(file)
|
||||||
assert_equal :enabled,
|
assert_equal :enabled,
|
||||||
BSD::Control.feature(:pageexec).status(file)
|
BSD::Control.feature(:pageexec).status(file)
|
||||||
ensure
|
|
||||||
rm(file)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_pageexec_disabled_status
|
def test_pageexec_disabled_status
|
||||||
touch(file)
|
|
||||||
BSD::Control.feature(:pageexec).disable!(file)
|
BSD::Control.feature(:pageexec).disable!(file)
|
||||||
assert_equal :disabled,
|
assert_equal :disabled,
|
||||||
BSD::Control.feature(:pageexec).status(file)
|
BSD::Control.feature(:pageexec).status(file)
|
||||||
ensure
|
|
||||||
rm(file)
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def file
|
|
||||||
File.join(__dir__, "file")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,38 +2,23 @@
|
||||||
|
|
||||||
require_relative "../setup"
|
require_relative "../setup"
|
||||||
module BSD::Control
|
module BSD::Control
|
||||||
class SysDefFeatureTest < Test::Unit::TestCase
|
class SysDefFeatureTest < BSD::Control::Test
|
||||||
require "fileutils"
|
|
||||||
include FileUtils
|
|
||||||
|
|
||||||
def test_sysdef_pageexec
|
def test_sysdef_pageexec
|
||||||
touch(file)
|
assert_equal true,
|
||||||
assert BSD::Control.feature(:pageexec).enable!(file),
|
BSD::Control.feature(:pageexec).enable!(file)
|
||||||
"The enable! method should have returned true"
|
assert_equal :enabled,
|
||||||
assert_equal(
|
BSD::Control.feature(:pageexec).status(file)
|
||||||
:enabled,
|
assert_equal true,
|
||||||
BSD::Control.feature(:pageexec).status(file)
|
BSD::Control.feature(:pageexec).sysdef!(file)
|
||||||
)
|
assert_equal :sysdef,
|
||||||
assert BSD::Control.feature(:pageexec).sysdef!(file),
|
BSD::Control.feature(:pageexec).status(file)
|
||||||
"The sysdef! method should have returned true"
|
|
||||||
assert_equal(
|
|
||||||
:sysdef,
|
|
||||||
BSD::Control.feature(:pageexec).status(file)
|
|
||||||
)
|
|
||||||
ensure
|
|
||||||
rm(file)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_enable_pageexec_nonexistent_file
|
def test_enable_pageexec_nonexistent_file
|
||||||
|
rm(file)
|
||||||
assert_raises(Errno::ENOENT) do
|
assert_raises(Errno::ENOENT) do
|
||||||
BSD::Control.feature(:pageexec).sysdef!(file)
|
BSD::Control.feature(:pageexec).sysdef!(file)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def file
|
|
||||||
File.join(__dir__, "file")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,15 +2,14 @@
|
||||||
|
|
||||||
require_relative "../setup"
|
require_relative "../setup"
|
||||||
module BSD::Control
|
module BSD::Control
|
||||||
class AvailableFeaturesTest < Test::Unit::TestCase
|
class AvailableFeaturesTest < BSD::Control::Test
|
||||||
def test_available_features_not_empty
|
def test_available_features_not_empty
|
||||||
refute available_features.empty?,
|
assert_equal false, available_features.empty?
|
||||||
"There should have been at least one available feature"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_available_features_instance_of
|
def test_available_features_instance_of
|
||||||
assert available_features.all? { _1.instance_of?(BSD::Control::Feature) },
|
assert_equal true,
|
||||||
"All available features should be an instance of `BSD::Control::Feature`"
|
available_features.all? { _1.instance_of?(BSD::Control::Feature) }
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
@ -2,20 +2,12 @@
|
||||||
|
|
||||||
require_relative "../setup"
|
require_relative "../setup"
|
||||||
module BSD::Control
|
module BSD::Control
|
||||||
class DisableFeatureTest < Test::Unit::TestCase
|
class DisableFeatureTest < BSD::Control::Test
|
||||||
require "fileutils"
|
|
||||||
include FileUtils
|
|
||||||
|
|
||||||
def test_disable_pageexec_nonexistent_file
|
def test_disable_pageexec_nonexistent_file
|
||||||
|
rm(file)
|
||||||
assert_raises(Errno::ENOENT) do
|
assert_raises(Errno::ENOENT) do
|
||||||
BSD::Control.feature(:pageexec).disable!(file)
|
BSD::Control.feature(:pageexec).disable!(file)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def file
|
|
||||||
File.join(__dir__, "file")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,23 +2,11 @@
|
||||||
|
|
||||||
require_relative "../setup"
|
require_relative "../setup"
|
||||||
module BSD::Control
|
module BSD::Control
|
||||||
class EnableFeatureTest < Test::Unit::TestCase
|
class EnableFeatureTest < BSD::Control::Test
|
||||||
require "fileutils"
|
def test_enable_feature_insufficient_permissions
|
||||||
include FileUtils
|
|
||||||
|
|
||||||
def test_enable_feature_lacks_privileges
|
|
||||||
touch(file)
|
|
||||||
assert_raises(Errno::EPERM) do
|
assert_raises(Errno::EPERM) do
|
||||||
BSD::Control.feature(:pageexec).enable!(file)
|
BSD::Control.feature(:pageexec).enable!(file)
|
||||||
end
|
end
|
||||||
ensure
|
|
||||||
rm(file)
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def file
|
|
||||||
File.join(__dir__, "file")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
require_relative "../setup"
|
require_relative "../setup"
|
||||||
module BSD::Control
|
module BSD::Control
|
||||||
class FeatureTest < Test::Unit::TestCase
|
class FeatureTest < BSD::Control::Test
|
||||||
def test_pageexec_feature
|
def test_pageexec_feature
|
||||||
assert_instance_of BSD::Control::Feature,
|
assert_instance_of BSD::Control::Feature,
|
||||||
BSD::Control.feature(:pageexec)
|
BSD::Control.feature(:pageexec)
|
||||||
|
|
|
@ -2,23 +2,11 @@
|
||||||
|
|
||||||
require_relative "../setup"
|
require_relative "../setup"
|
||||||
module BSD::Control
|
module BSD::Control
|
||||||
class SysDefTest < Test::Unit::TestCase
|
class SysDefTest < BSD::Control::Test
|
||||||
require "fileutils"
|
def test_sysdef!_insufficient_permissions
|
||||||
include FileUtils
|
|
||||||
|
|
||||||
def test_sysdef!_lacks_privileges
|
|
||||||
touch(file)
|
|
||||||
assert_raises(Errno::EPERM) do
|
assert_raises(Errno::EPERM) do
|
||||||
BSD::Control.feature(:pageexec).sysdef!(file)
|
BSD::Control.feature(:pageexec).sysdef!(file)
|
||||||
end
|
end
|
||||||
ensure
|
|
||||||
rm(file)
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def file
|
|
||||||
File.join(__dir__, "file")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue