|
12 | 12 | it { is_expected.to install_package('haproxy') } |
13 | 13 | end |
14 | 14 |
|
15 | | - context 'compile HAProxy' do |
| 15 | + context 'compile HAProxy on Ubuntu' do |
16 | 16 | recipe do |
17 | 17 | haproxy_install 'source' do |
18 | 18 | use_libcrypt true |
|
30 | 30 | it { is_expected.to install_package(%w(libpcre3-dev libssl-dev zlib1g-dev libsystemd-dev)) } |
31 | 31 | it { is_expected.not_to install_package('pcre-devel') } |
32 | 32 | end |
| 33 | + |
| 34 | + context 'compile HAProxy on AlmaLinux 9' do |
| 35 | + platform 'almalinux', '9' |
| 36 | + |
| 37 | + recipe do |
| 38 | + haproxy_install 'source' |
| 39 | + end |
| 40 | + before(:each) do |
| 41 | + stub_command('/usr/sbin/haproxy -v | grep 2.8.5').and_return('2.8.5') |
| 42 | + end |
| 43 | + |
| 44 | + it { is_expected.to install_package(%w(pcre-devel openssl-devel zlib-devel systemd-devel tar)) } |
| 45 | + it { is_expected.not_to install_package('pcre2-devel') } |
| 46 | + end |
| 47 | + |
| 48 | + context 'compile HAProxy on AlmaLinux 10 (uses PCRE2)' do |
| 49 | + platform 'almalinux', '10' |
| 50 | + |
| 51 | + recipe do |
| 52 | + haproxy_install 'source' |
| 53 | + end |
| 54 | + before(:each) do |
| 55 | + stub_command('/usr/sbin/haproxy -v | grep 2.8.5').and_return('2.8.5') |
| 56 | + end |
| 57 | + |
| 58 | + it { is_expected.to install_package(%w(pcre2-devel openssl-devel zlib-devel systemd-devel tar)) } |
| 59 | + it { is_expected.not_to install_package('pcre-devel') } |
| 60 | + end |
| 61 | + |
| 62 | + context 'compile HAProxy on Amazon Linux (uses PCRE)' do |
| 63 | + platform 'amazon', '2023' |
| 64 | + |
| 65 | + recipe do |
| 66 | + haproxy_install 'source' |
| 67 | + end |
| 68 | + before(:each) do |
| 69 | + stub_command('/usr/sbin/haproxy -v | grep 2.8.5').and_return('2.8.5') |
| 70 | + end |
| 71 | + |
| 72 | + it { is_expected.to install_package(%w(pcre-devel openssl-devel zlib-devel systemd-devel tar)) } |
| 73 | + it { is_expected.not_to install_package('pcre2-devel') } |
| 74 | + end |
| 75 | + |
| 76 | + context 'compile HAProxy on Fedora (uses PCRE)' do |
| 77 | + platform 'fedora', '32' |
| 78 | + |
| 79 | + recipe do |
| 80 | + haproxy_install 'source' |
| 81 | + end |
| 82 | + before(:each) do |
| 83 | + stub_command('/usr/sbin/haproxy -v | grep 2.8.5').and_return('2.8.5') |
| 84 | + end |
| 85 | + |
| 86 | + it { is_expected.to install_package(%w(pcre-devel openssl-devel zlib-devel systemd-devel tar)) } |
| 87 | + it { is_expected.not_to install_package('pcre2-devel') } |
| 88 | + end |
| 89 | + |
| 90 | + context 'compile HAProxy with PCRE disabled' do |
| 91 | + platform 'almalinux', '9' |
| 92 | + |
| 93 | + recipe do |
| 94 | + haproxy_install 'source' do |
| 95 | + use_pcre false |
| 96 | + end |
| 97 | + end |
| 98 | + before(:each) do |
| 99 | + stub_command('/usr/sbin/haproxy -v | grep 2.8.5').and_return(false) |
| 100 | + end |
| 101 | + |
| 102 | + # When PCRE is disabled, we still install the package (for dependencies) |
| 103 | + # but the make command should not include USE_PCRE or USE_PCRE2 flags |
| 104 | + it { is_expected.to install_package(%w(pcre-devel openssl-devel zlib-devel systemd-devel tar)) } |
| 105 | + it { is_expected.to run_bash('compile_haproxy') } |
| 106 | + |
| 107 | + it 'does not include PCRE flags in make command' do |
| 108 | + bash_resource = chef_run.bash('compile_haproxy') |
| 109 | + expect(bash_resource.code).to match(/make TARGET=linux-glibc/) |
| 110 | + expect(bash_resource.code).to match(/USE_OPENSSL=1/) |
| 111 | + expect(bash_resource.code).not_to match(/USE_PCRE2/) |
| 112 | + expect(bash_resource.code).not_to match(/USE_PCRE=/) |
| 113 | + end |
| 114 | + end |
33 | 115 | end |
0 commit comments