Skip to content

Commit cd89926

Browse files
committed
TEST/MAJOR: e2e: fix proper version checking in all tests
1 parent 014482d commit cd89926

File tree

14 files changed

+68
-38
lines changed

14 files changed

+68
-38
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.yaml" ]; 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: 2 additions & 1 deletion
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

@@ -39,7 +40,7 @@ load 'utils/_helpers'
3940
resource_delete "$_RES_RULES_BASE_PATH/0" "parent_type=frontend&parent_name=test_frontend&force_reload=true"
4041
assert_equal "$SC" 204
4142
#
42-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
43+
if haproxy_version_ge "2.8"; then
4344
# Deleting the third one
4445
#
4546
resource_delete "$_RES_RULES_BASE_PATH/0" "parent_type=frontend&parent_name=test_frontend&force_reload=true"

e2e/tests/http_after_response_rules/list.bats

Lines changed: 3 additions & 2 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

@@ -30,7 +31,7 @@ load 'utils/_helpers'
3031

3132
resource_get "$_RES_RULES_BASE_PATH" "parent_type=frontend&parent_name=test_frontend"
3233
assert_equal "$SC" 200
33-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
34+
if haproxy_version_ge "2.8"; then
3435
assert_equal "$(get_json_path "$BODY" ".data | length")" 11
3536
else
3637
assert_equal "$(get_json_path "$BODY" ".data | length")" 2
@@ -43,7 +44,7 @@ load 'utils/_helpers'
4344
assert_equal "$(get_json_path "$BODY" ".data[1].hdr_name")" "X-Del-Frontend"
4445
assert_equal "$(get_json_path "$BODY" ".data[1].cond")" "if"
4546
assert_equal "$(get_json_path "$BODY" ".data[1].cond_test")" "{ src 10.1.0.0/16 }"
46-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
47+
if haproxy_version_ge "2.8"; then
4748
assert_equal "$(get_json_path "$BODY" ".data[2].type")" "set-map"
4849
assert_equal "$(get_json_path "$BODY" ".data[2].map_file")" "map.lst"
4950
assert_equal "$(get_json_path "$BODY" ".data[2].map_keyfmt")" "%[src]"

e2e/tests/http_request_rules/delete.bats

Lines changed: 2 additions & 1 deletion
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

@@ -35,7 +36,7 @@ load 'utils/_helpers'
3536
resource_delete "$_REQ_RULES_BASE_PATH/0" "parent_type=frontend&parent_name=test_frontend&force_reload=true"
3637
assert_equal "$SC" 204
3738
#
38-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
39+
if haproxy_version_ge "2.8"; then
3940
# Deleting third
4041
#
4142
resource_delete "$_REQ_RULES_BASE_PATH/0" "parent_type=frontend&parent_name=test_frontend&force_reload=true"

e2e/tests/http_request_rules/list.bats

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,14 @@ 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

2627
@test "http_request_rules: Return an array of all HTTP Request Rules from frontend" {
2728
resource_get "$_REQ_RULES_BASE_PATH" "parent_type=frontend&parent_name=test_frontend"
2829
assert_equal "$SC" 200
29-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
30+
if haproxy_version_ge "2.8"; then
3031
assert_equal "$(get_json_path "$BODY" ".data | length")" 3
3132
else
3233
assert_equal "$(get_json_path "$BODY" ".data | length")" 2
@@ -39,7 +40,7 @@ load 'utils/_helpers'
3940
assert_equal "$(get_json_path "$BODY" ".data[1].hdr_name")" "X-Del-Frontend"
4041
assert_equal "$(get_json_path "$BODY" ".data[1].cond")" "if"
4142
assert_equal "$(get_json_path "$BODY" ".data[1].cond_test")" "{ src 10.1.0.0/16 }"
42-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
43+
if haproxy_version_ge "2.8"; then
4344
assert_equal "$(get_json_path "$BODY" ".data[2].type")" "sc-add-gpc"
4445
assert_equal "$(get_json_path "$BODY" ".data[2].index")" "2"
4546
assert_equal "$(get_json_path "$BODY" ".data[2].sc_id")" "1"

e2e/tests/http_response_rules/delete.bats

Lines changed: 2 additions & 1 deletion
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

@@ -35,7 +36,7 @@ load 'utils/_helpers'
3536
resource_delete "$_RES_RULES_BASE_PATH/0" "parent_type=frontend&parent_name=test_frontend&force_reload=true"
3637
assert_equal "$SC" 204
3738
#
38-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
39+
if haproxy_version_ge "2.8"; then
3940
# Deleting the third one
4041
#
4142
resource_delete "$_RES_RULES_BASE_PATH/0" "parent_type=frontend&parent_name=test_frontend&force_reload=true"

e2e/tests/http_response_rules/list.bats

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,14 @@ 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

2627
@test "http_response_rules: Return an array of all HTTP Response Rules from frontend" {
2728
resource_get "$_RES_RULES_BASE_PATH" "parent_type=frontend&parent_name=test_frontend"
2829
assert_equal "$SC" 200
29-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
30+
if haproxy_version_ge "2.8"; then
3031
assert_equal "$(get_json_path "$BODY" ".data | length")" 3
3132
else
3233
assert_equal "$(get_json_path "$BODY" ".data | length")" 2
@@ -39,7 +40,7 @@ load 'utils/_helpers'
3940
assert_equal "$(get_json_path "$BODY" ".data[1].hdr_name")" "X-Del-Frontend"
4041
assert_equal "$(get_json_path "$BODY" ".data[1].cond")" "if"
4142
assert_equal "$(get_json_path "$BODY" ".data[1].cond_test")" "{ src 10.1.0.0/16 }"
42-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
43+
if haproxy_version_ge "2.8"; then
4344
assert_equal "$(get_json_path "$BODY" ".data[2].type")" "sc-add-gpc"
4445
assert_equal "$(get_json_path "$BODY" ".data[2].index")" "2"
4546
assert_equal "$(get_json_path "$BODY" ".data[2].sc_id")" "1"

e2e/tests/tcp_request_rules/delete.bats

Lines changed: 2 additions & 1 deletion
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

@@ -29,7 +30,7 @@ load 'utils/_helpers'
2930
resource_delete "$_TCP_REQ_RULES_CERTS_BASE_PATH/0" "parent_type=frontend&parent_name=test_frontend&force_reload=true"
3031
assert_equal "$SC" 204
3132

32-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
33+
if haproxy_version_ge "2.8"; then
3334
resource_delete "$_TCP_REQ_RULES_CERTS_BASE_PATH/0" "parent_type=frontend&parent_name=test_frontend&force_reload=true"
3435
assert_equal "$SC" 204
3536

e2e/tests/tcp_request_rules/list.bats

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ load 'utils/_helpers'
2828
resource_get "$_TCP_REQ_RULES_CERTS_BASE_PATH" "parent_type=frontend&parent_name=test_frontend"
2929
assert_equal "$SC" 200
3030

31-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
31+
if haproxy_version_ge "2.8"; then
3232
assert_equal "$(get_json_path "${BODY}" ".data | length")" 5
3333
else
3434
assert_equal "$(get_json_path "${BODY}" ".data | length")" 2
3535
fi
3636
assert_equal "$(get_json_path "$BODY" ".data[0].type")" "inspect-delay"
3737
assert_equal "$(get_json_path "$BODY" ".data[1].type")" "content"
3838
assert_equal "$(get_json_path "$BODY" ".data[1].action")" "accept"
39-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
39+
if haproxy_version_ge "2.8"; then
4040
assert_equal "$(get_json_path "$BODY" ".data[2].type")" "connection"
4141
assert_equal "$(get_json_path "$BODY" ".data[2].action")" "sc-add-gpc"
4242
assert_equal "$(get_json_path "$BODY" ".data[3].type")" "session"

e2e/tests/tcp_response_rules/delete.bats

Lines changed: 5 additions & 4 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

@@ -29,10 +30,10 @@ load 'utils/_helpers'
2930
resource_delete "$_TCP_RES_RULES_CERTS_BASE_PATH/0" "backend=test_backend&force_reload=true"
3031
assert_equal "$SC" 204
3132

32-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
33-
resource_delete "$_TCP_RES_RULES_CERTS_BASE_PATH/0" "backend=test_backend&force_reload=true"
34-
assert_equal "$SC" 204
35-
fi
33+
if haproxy_version_ge "2.8"; then
34+
resource_delete "$_TCP_RES_RULES_CERTS_BASE_PATH/0" "backend=test_backend&force_reload=true"
35+
assert_equal "$SC" 204
36+
fi
3637

3738
resource_delete "$_TCP_RES_RULES_CERTS_BASE_PATH/0" "backend=test_backend&force_reload=true"
3839
assert_equal "$SC" 404

e2e/tests/tcp_response_rules/list.bats

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,22 @@ 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

2627
@test "tcp_response_rules: Return one TCP Response Rule from backend" {
2728
resource_get "$_TCP_RES_RULES_CERTS_BASE_PATH" "backend=test_backend"
2829
assert_equal "$SC" 200
2930

30-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
31+
if haproxy_version_ge "2.8"; then
3132
assert_equal "$(get_json_path "${BODY}" ".data | length")" 3
3233
else
3334
assert_equal "$(get_json_path "${BODY}" ".data | length")" 2
3435
fi
3536
assert_equal "$(get_json_path "$BODY" ".data[] | select(.action | contains(\"accept\") ).action")" "accept"
3637
assert_equal "$(get_json_path "$BODY" ".data[] | select(.action | contains(\"reject\") ).action")" "reject"
37-
if [[ "$HAPROXY_VERSION" == "2.8" ]]; then
38+
if haproxy_version_ge "2.8"; then
3839
assert_equal "$(get_json_path "$BODY" ".data[] | select(.action | contains(\"sc-add-gpc\") ).action")" "sc-add-gpc"
3940
fi
4041
}

0 commit comments

Comments
 (0)