spec/unit/software_spec.rb in omnibus-6.1.9 vs spec/unit/software_spec.rb in omnibus-7.0.12
- old
+ new
@@ -71,69 +71,69 @@
before { stub_ohai(platform: "ubuntu", version: "16.04") }
it "sets the defaults" do
expect(subject.with_standard_compiler_flags).to eq(
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
- "CFLAGS" => "-I/opt/project/embedded/include -O2",
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2",
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2",
+ "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
"LD_RUN_PATH" => "/opt/project/embedded/lib",
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
"OMNIBUS_INSTALL_DIR" => "/opt/project"
)
end
it "overrides LDFLAGS" do
expect(subject.with_standard_compiler_flags("LDFLAGS" => "foo")).to eq(
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
- "CFLAGS" => "-I/opt/project/embedded/include -O2",
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2",
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2",
+ "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
"LD_RUN_PATH" => "/opt/project/embedded/lib",
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
"OMNIBUS_INSTALL_DIR" => "/opt/project"
)
end
it "overrides CFLAGS" do
expect(subject.with_standard_compiler_flags("CFLAGS" => "foo")).to eq(
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
- "CFLAGS" => "-I/opt/project/embedded/include -O2",
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2",
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2",
+ "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
"LD_RUN_PATH" => "/opt/project/embedded/lib",
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
"OMNIBUS_INSTALL_DIR" => "/opt/project"
)
end
it "overrides CXXFLAGS" do
expect(subject.with_standard_compiler_flags("CXXFLAGS" => "foo")).to eq(
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
- "CFLAGS" => "-I/opt/project/embedded/include -O2",
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2",
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2",
+ "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
"LD_RUN_PATH" => "/opt/project/embedded/lib",
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
"OMNIBUS_INSTALL_DIR" => "/opt/project"
)
end
it "overrides CPPFLAGS" do
expect(subject.with_standard_compiler_flags("CPPFLAGS" => "foo")).to eq(
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
- "CFLAGS" => "-I/opt/project/embedded/include -O2",
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2",
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2",
+ "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
"LD_RUN_PATH" => "/opt/project/embedded/lib",
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
"OMNIBUS_INSTALL_DIR" => "/opt/project"
)
end
it "preserves anything else" do
expect(subject.with_standard_compiler_flags("numberwang" => 4)).to eq(
"numberwang" => 4,
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
- "CFLAGS" => "-I/opt/project/embedded/include -O2",
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2",
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2",
+ "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
"LD_RUN_PATH" => "/opt/project/embedded/lib",
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
"OMNIBUS_INSTALL_DIR" => "/opt/project"
)
end
@@ -194,13 +194,13 @@
before { stub_ohai(platform: "mac_os_x", version: "10.13") }
it "sets the defaults" do
expect(subject.with_standard_compiler_flags).to eq(
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
- "CFLAGS" => "-I/opt/project/embedded/include -O2",
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2",
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2",
+ "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
"LD_RUN_PATH" => "/opt/project/embedded/lib",
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
"OMNIBUS_INSTALL_DIR" => "/opt/project"
)
end
@@ -238,13 +238,13 @@
end
it "sets the defaults" do
expect(subject.with_standard_compiler_flags).to eq(
"CC" => "clang",
- "CFLAGS" => "-I/opt/project/embedded/include -O2",
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2",
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2",
+ "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
"CXX" => "clang++",
"LDFLAGS" => "-L/opt/project/embedded/lib",
"LD_RUN_PATH" => "/opt/project/embedded/lib",
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
"OMNIBUS_INSTALL_DIR" => "/opt/project"
@@ -265,13 +265,13 @@
it "Clang as the default compiler" do
expect(subject.with_standard_compiler_flags).to eq(
"CC" => "clang",
"CXX" => "clang++",
- "CFLAGS" => "-I/opt/project/embedded/include -O2",
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2",
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2",
+ "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
"LDFLAGS" => "-L/opt/project/embedded/lib",
"LD_RUN_PATH" => "/opt/project/embedded/lib",
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
"OMNIBUS_INSTALL_DIR" => "/opt/project"
)
@@ -285,13 +285,13 @@
allow(subject).to receive(:which).with("gcc-4.8").and_return(false)
end
it "sets the defaults" do
expect(subject.with_standard_compiler_flags).to eq(
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
- "CFLAGS" => "-I/opt/project/embedded/include -O2",
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2",
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2",
+ "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
"LD_RUN_PATH" => "/opt/project/embedded/lib",
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
"OMNIBUS_INSTALL_DIR" => "/opt/project"
)
end
@@ -305,13 +305,13 @@
it "sets the compiler args" do
expect(subject.with_standard_compiler_flags).to eq(
"CC" => "gcc-4.8",
"CXX" => "g++-4.8",
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
- "CFLAGS" => "-I/opt/project/embedded/include -O2",
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2",
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2",
+ "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
"LD_RUN_PATH" => "/opt/project/embedded/lib",
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
"OMNIBUS_INSTALL_DIR" => "/opt/project"
)
end
@@ -326,13 +326,13 @@
end
it "sets the defaults" do
expect(subject.with_standard_compiler_flags).to eq(
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
- "CFLAGS" => "-I/opt/project/embedded/include -O2",
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2",
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2",
+ "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
+ "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
"LD_RUN_PATH" => "/opt/project/embedded/lib",
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
"OMNIBUS_INSTALL_DIR" => "/opt/project"
)
end
@@ -553,9 +553,39 @@
it "converts Strings to Regexp instances" do
subject.whitelist_file "foo/bar"
expect(subject.whitelist_files.size).to eq(1)
expect(subject.whitelist_files.first).to be_kind_of(Regexp)
+ end
+ end
+
+ describe "#bin_dirs" do
+ it "sets bin_dirs" do
+ subject.bin_dirs ["my_bin_dir"]
+ expect(subject.bin_dirs).to eq(["my_bin_dir"])
+ expect(subject.bin_dirs).to be_kind_of(Array)
+ end
+
+ context "bin_dirs is not set" do
+ it "returns default values" do
+ expect(subject.bin_dirs).to eq(["/opt/project/bin", "/opt/project/embedded/bin"])
+ expect(subject.bin_dirs).to be_kind_of(Array)
+ end
+ end
+ end
+
+ describe "#lib_dirs" do
+ it "sets lib_dirs" do
+ subject.lib_dirs ["my_lib_dir"]
+ expect(subject.lib_dirs).to eq(["my_lib_dir"])
+ expect(subject.lib_dirs).to be_kind_of(Array)
+ end
+
+ context "lib_dirs is not set" do
+ it "returns default values" do
+ expect(subject.lib_dirs).to eq(["/opt/project/embedded/lib"])
+ expect(subject.lib_dirs).to be_kind_of(Array)
+ end
end
end
context "testing repo-level version overrides" do
context "without overrides" do