Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace specific constant tests with just type checks #1190

Merged
merged 1 commit into from
Aug 8, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 69 additions & 47 deletions core/process/constants_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,69 +2,91 @@

describe "Process::Constants" do
platform_is :darwin, :netbsd, :freebsd do
it "has the correct constant values on BSD-like systems" do
Process::WNOHANG.should == 1
Process::WUNTRACED.should == 2
Process::PRIO_PROCESS.should == 0
Process::PRIO_PGRP.should == 1
Process::PRIO_USER.should == 2
Process::RLIM_INFINITY.should == 9223372036854775807
Process::RLIMIT_CPU.should == 0
Process::RLIMIT_FSIZE.should == 1
Process::RLIMIT_DATA.should == 2
Process::RLIMIT_STACK.should == 3
Process::RLIMIT_CORE.should == 4
Process::RLIMIT_RSS.should == 5
Process::RLIMIT_MEMLOCK.should == 6
Process::RLIMIT_NPROC.should == 7
Process::RLIMIT_NOFILE.should == 8
it "are all present on BSD-like systems" do
%i[
WNOHANG
WUNTRACED
PRIO_PROCESS
PRIO_PGRP
PRIO_USER
RLIM_INFINITY
RLIMIT_CPU
RLIMIT_FSIZE
RLIMIT_DATA
RLIMIT_STACK
RLIMIT_CORE
RLIMIT_RSS
RLIMIT_MEMLOCK
RLIMIT_NPROC
RLIMIT_NOFILE
].each do |const|
Process.const_defined?(const).should be_true
Process.const_get(const).should be_an_instance_of(Integer)
end
end
end

platform_is :darwin do
it "has the correct constant values on Darwin" do
Process::RLIM_SAVED_MAX.should == 9223372036854775807
Process::RLIM_SAVED_CUR.should == 9223372036854775807
Process::RLIMIT_AS.should == 5
it "are all present on Darwin" do
%i[
RLIM_SAVED_MAX
RLIM_SAVED_CUR
RLIMIT_AS
].each do |const|
Process.const_defined?(const).should be_true
Process.const_get(const).should be_an_instance_of(Integer)
end
end
end

platform_is :linux do
it "has the correct constant values on Linux" do
Process::WNOHANG.should == 1
Process::WUNTRACED.should == 2
Process::PRIO_PROCESS.should == 0
Process::PRIO_PGRP.should == 1
Process::PRIO_USER.should == 2
Process::RLIMIT_CPU.should == 0
Process::RLIMIT_FSIZE.should == 1
Process::RLIMIT_DATA.should == 2
Process::RLIMIT_STACK.should == 3
Process::RLIMIT_CORE.should == 4
Process::RLIMIT_RSS.should == 5
Process::RLIMIT_NPROC.should == 6
Process::RLIMIT_NOFILE.should == 7
Process::RLIMIT_MEMLOCK.should == 8
Process::RLIMIT_AS.should == 9

# These values appear to change according to the platform.
values = [4294967295, 9223372036854775807, 18446744073709551615]
values.include?(Process::RLIM_INFINITY).should be_true
values.include?(Process::RLIM_SAVED_MAX).should be_true
values.include?(Process::RLIM_SAVED_CUR).should be_true
it "are all present on Linux" do
%i[
WNOHANG
WUNTRACED
PRIO_PROCESS
PRIO_PGRP
PRIO_USER
RLIMIT_CPU
RLIMIT_FSIZE
RLIMIT_DATA
RLIMIT_STACK
RLIMIT_CORE
RLIMIT_RSS
RLIMIT_NPROC
RLIMIT_NOFILE
RLIMIT_MEMLOCK
RLIMIT_AS
RLIM_INFINITY
RLIM_SAVED_MAX
RLIM_SAVED_CUR
].each do |const|
Process.const_defined?(const).should be_true
Process.const_get(const).should be_an_instance_of(Integer)
end
end
end

platform_is :netbsd, :freebsd do
it "has the correct constant values on NetBSD and FreeBSD" do
Process::RLIMIT_SBSIZE.should == 9 # FIXME: what's it equal?
Process::RLIMIT_AS.should == 10
it "are all present on NetBSD and FreeBSD" do
%i[
RLIMIT_SBSIZE
RLIMIT_AS
].each do |const|
Process.const_defined?(const).should be_true
Process.const_get(const).should be_an_instance_of(Integer)
end
end
end

platform_is :freebsd do
it "has the correct constant values on FreeBSD" do
Process::RLIMIT_NPTS.should == 11
it "are all present on FreeBSD" do
%i[
RLIMIT_NPTS
].each do |const|
Process.const_defined?(const).should be_true
Process.const_get(const).should be_an_instance_of(Integer)
end
end
end

Expand Down