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