Skip to content

Commit 45c7049

Browse files
committed
TEST/MAJOR: e2e: fix proper version checking in all tests
1 parent 6d36cb3 commit 45c7049

File tree

13 files changed

+50
-20
lines changed

13 files changed

+50
-20
lines changed

e2e/libs/haproxy_config_setup.bash

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,27 +29,35 @@ setup() {
2929
skip
3030
fi
3131

32+
# replace the default haproxy config file
3233
local haproxy_cfg_file="${BATS_TEST_DIRNAME}/data/haproxy_*.cfg"
3334
local haproxy_file_version=""
35+
local copy_haproxy_file=true
3436

3537
if ls $haproxy_cfg_file 1> /dev/null 2>&1; then
36-
haproxy_file_version=$(echo $haproxy_cfg_file | sed 's/.*_\([0-9]\+\.[0-9]\+\)\.cfg/\1/')
38+
haproxy_file_version=$(echo $haproxy_cfg_file | sed 's/.*_\([0-9]\+\.[0-9]\+\)\.cfg/\1/')
39+
major_file_version=$(echo $haproxy_file_version | cut -d '.' -f 1)
40+
minor_file_version=$(echo $haproxy_file_version | cut -d '.' -f 2)
41+
major_cfg_version=$(echo $HAPROXY_VERSION | cut -d '.' -f 1)
42+
minor_cfg_version=$(echo $HAPROXY_VERSION | cut -d '.' -f 2)
43+
if [[ -f "${BATS_TEST_DIRNAME}/data/haproxy_${haproxy_file_version}.cfg" ]] ; then
44+
if [[ $major_cfg_version -eq $major_file_version && $minor_cfg_version -ge $minor_file_version || $major_cfg_version -gt $major_file_version ]] ; then
45+
run docker cp "${BATS_TEST_DIRNAME}/data/haproxy_${haproxy_file_version}.cfg" "${DOCKER_CONTAINER_NAME}:/etc/haproxy/haproxy.cfg"
46+
copy_haproxy_file=false
47+
assert_success
48+
fi
49+
fi
3750
fi
3851

39-
major_file_version=$(echo $haproxy_file_version | cut -d '.' -f 1)
40-
minor_file_version=$(echo $haproxy_file_version | cut -d '.' -f 2)
41-
major_cfg_version=$(echo $HAPROXY_VERSION | cut -d '.' -f 1)
42-
minor_cfg_version=$(echo $HAPROXY_VERSION | cut -d '.' -f 2)
43-
44-
# replace the default haproxy config file
45-
if [[ $major_cfg_version -ge $major_file_version && $minor_cfg_version -ge $minor_file_version ]] && [ -f "${BATS_TEST_DIRNAME}/data/haproxy_${haproxy_file_version}.cfg" ]; then
46-
run docker cp "${BATS_TEST_DIRNAME}/data/haproxy_${haproxy_file_version}.cfg" "${DOCKER_CONTAINER_NAME}:/etc/haproxy/haproxy.cfg"
47-
elif [ -f "${BATS_TEST_DIRNAME}/data/haproxy.cfg" ]; then
48-
run docker cp "${BATS_TEST_DIRNAME}/data/haproxy.cfg" "${DOCKER_CONTAINER_NAME}:/etc/haproxy/haproxy.cfg"
49-
else
50-
run docker cp "${E2E_DIR}/fixtures/haproxy.cfg" "${DOCKER_CONTAINER_NAME}:/etc/haproxy/haproxy.cfg"
52+
if [[ "$copy_haproxy_file" = true ]] ; then
53+
if [ -f "${BATS_TEST_DIRNAME}/data/haproxy.cfg" ]; then
54+
run docker cp "${BATS_TEST_DIRNAME}/data/haproxy.cfg" "${DOCKER_CONTAINER_NAME}:/etc/haproxy/haproxy.cfg"
55+
assert_success
56+
else
57+
run docker cp "${E2E_DIR}/fixtures/haproxy.cfg" "${DOCKER_CONTAINER_NAME}:/etc/haproxy/haproxy.cfg"
58+
assert_success
59+
fi
5160
fi
52-
assert_success
5361

5462
# replace the default dataplaneapi config file
5563
if [ -f "${BATS_TEST_DIRNAME}/dataplaneapi.hcl" ]; then

e2e/libs/haproxy_version.bash

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,16 @@
2727
# >>> 1
2828
function haproxy_version_ge() {
2929
target=$1; shift
30-
major_minor=$HAPROXY_VERSION
31-
numerical_v="${major_minor//.}"
32-
numerical_target="${target//.}"
3330

34-
if [ "$numerical_v" -ge "$numerical_target" ]
35-
then
31+
IFS='.' read -ra version_parts <<< "$HAPROXY_VERSION"
32+
haproxy_major="${version_parts[0]}"
33+
haproxy_minor="${version_parts[1]}"
34+
35+
IFS='.' read -ra version_parts_target <<< "$target"
36+
target_major="${version_parts_target[0]}"
37+
target_minor="${version_parts_target[1]}"
38+
39+
if [[ "$haproxy_major" -eq "$target_major" && "$haproxy_minor" -ge "$target_minor" || "$haproxy_major" -gt "$target_major" ]] ; then
3640
return 0
3741
else
3842
return 1

e2e/run.bash

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,12 @@ if [ ! -z $PREWIPE ] && [ "$PREWIPE" == "y" ]; then
4444
fi
4545

4646
# Custom configuration to run tests with the master socket.
47-
if [ $HAPROXY_VERSION = 2.7 ]; then
47+
IFS='.' read -ra version_parts <<< "$HAPROXY_VERSION"
48+
major="${version_parts[0]}"
49+
minor="${version_parts[1]}"
50+
51+
if [[ "$major" -eq "2" && "$minor" -ge "7" || "$major" -gt "2" ]] ; then
52+
echo "Running<<<<<<<<<<< master socket"
4853
HAPROXY_FLAGS="-W -db -S /var/lib/haproxy/master -f /usr/local/etc/haproxy/haproxy.cfg"
4954
VARIANT="-master-socket"
5055
fi

e2e/tests/acl_files/acl_file_entries.bats

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ load '../../libs/dataplaneapi'
1919
load "../../libs/get_json_path"
2020
load '../../libs/haproxy_config_setup'
2121
load '../../libs/resource_client'
22+
load '../../libs/haproxy_version'
2223

2324
load 'utils/_helpers'
2425

@@ -55,6 +56,9 @@ load 'utils/_helpers'
5556
}
5657

5758
@test "acl_runtime: Delete an ACL file entry by its ID" {
59+
if haproxy_version_ge "2.9"; then
60+
skip "cause: bug in HAPRoxy 2.9"
61+
fi
5862
# checking items and retrieving first ID
5963
resource_get "$_RUNTIME_ACL_FILE_ENTRIES_BASE_PATH" "acl_id=1"
6064
assert_equal "$SC" 200

e2e/tests/http_after_response_rules/delete.bats

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ load '../../libs/get_json_path'
2020
load '../../libs/haproxy_config_setup'
2121
load '../../libs/resource_client'
2222
load '../../libs/version'
23+
load '../../libs/haproxy_version'
2324

2425
load 'utils/_helpers'
2526

e2e/tests/http_after_response_rules/list.bats

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ load '../../libs/get_json_path'
2020
load '../../libs/haproxy_config_setup'
2121
load '../../libs/resource_client'
2222
load '../../libs/version'
23+
load '../../libs/haproxy_version'
2324

2425
load 'utils/_helpers'
2526

e2e/tests/http_request_rules/delete.bats

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ load '../../libs/get_json_path'
2020
load '../../libs/haproxy_config_setup'
2121
load '../../libs/resource_client'
2222
load '../../libs/version'
23+
load '../../libs/haproxy_version'
2324

2425
load 'utils/_helpers'
2526

e2e/tests/http_request_rules/list.bats

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ load '../../libs/get_json_path'
2020
load '../../libs/haproxy_config_setup'
2121
load '../../libs/resource_client'
2222
load '../../libs/version'
23+
load '../../libs/haproxy_version'
2324

2425
load 'utils/_helpers'
2526

e2e/tests/http_response_rules/delete.bats

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ load '../../libs/get_json_path'
2020
load '../../libs/haproxy_config_setup'
2121
load '../../libs/resource_client'
2222
load '../../libs/version'
23+
load '../../libs/haproxy_version'
2324

2425
load 'utils/_helpers'
2526

e2e/tests/http_response_rules/list.bats

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ load '../../libs/get_json_path'
2020
load '../../libs/haproxy_config_setup'
2121
load '../../libs/resource_client'
2222
load '../../libs/version'
23+
load '../../libs/haproxy_version'
2324

2425
load 'utils/_helpers'
2526

e2e/tests/tcp_request_rules/delete.bats

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ load '../../libs/dataplaneapi'
1919
load '../../libs/haproxy_config_setup'
2020
load '../../libs/resource_client'
2121
load '../../libs/version'
22+
load '../../libs/haproxy_version'
2223

2324
load 'utils/_helpers'
2425

e2e/tests/tcp_response_rules/delete.bats

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ load '../../libs/dataplaneapi'
1919
load '../../libs/haproxy_config_setup'
2020
load '../../libs/resource_client'
2121
load '../../libs/version'
22+
load '../../libs/haproxy_version'
2223

2324
load 'utils/_helpers'
2425

e2e/tests/tcp_response_rules/list.bats

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ load '../../libs/get_json_path'
2020
load '../../libs/haproxy_config_setup'
2121
load '../../libs/resource_client'
2222
load '../../libs/version'
23+
load '../../libs/haproxy_version'
2324

2425
load 'utils/_helpers'
2526

0 commit comments

Comments
 (0)