|
14 | 14 | jobs: |
15 | 15 | test-5hs-autoaccept: |
16 | 16 | runs-on: ubuntu-24.04 |
| 17 | + |
| 18 | + env: |
| 19 | + DOCKER_BUILD_OS: ubuntu22 |
| 20 | + MULTI_SERVER_TEST_LOG: build/tests/multi-server/freeradius-multi-server/multi_server_test.log |
| 21 | + |
17 | 22 | steps: |
18 | 23 | # Checkout, but defer pulling LFS objects until we've restored the cache |
19 | 24 | - uses: actions/checkout@v4 |
@@ -58,20 +63,38 @@ jobs: |
58 | 63 | - name: Build Docker image for multi-server test environment |
59 | 64 | run: | |
60 | 65 | ./configure |
61 | | - make docker.ubuntu22.build |
| 66 | + make docker.${DOCKER_BUILD_OS}.build |
62 | 67 |
|
63 | 68 | # List all images |
64 | 69 | docker images --all |
65 | 70 |
|
66 | | - # Retag image to what the compose/test harness expects |
67 | | - docker tag freeradius4/ubuntu22:latest fr-build-ubuntu22:latest |
| 71 | + # Retag image to what the multi-server test's docker compose environment expects |
| 72 | + docker tag freeradius4/${DOCKER_BUILD_OS}:latest fr-build-${DOCKER_BUILD_OS}:latest |
68 | 73 |
|
69 | | - docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.ID}}' | grep -E 'freeradius4/ubuntu22|fr-build-ubuntu22' |
| 74 | + docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.ID}}' | grep -E "freeradius4/${DOCKER_BUILD_OS}|fr-build-${DOCKER_BUILD_OS}" |
70 | 75 |
|
71 | 76 | - name: Run test-5hs-autoaccept test |
72 | 77 | run: | |
73 | | - if ! docker images --format '{{.Repository}}:{{.Tag}}' | grep -q '^fr-build-ubuntu22:latest$'; then |
74 | | - echo "Error: fr-build-ubuntu22:latest Docker image not found and required for multi-server test environment." |
| 78 | + if ! docker images --format '{{.Repository}}:{{.Tag}}' | grep -q "^fr-build-${DOCKER_BUILD_OS}:latest$"; then |
| 79 | + echo "Error: fr-build-${DOCKER_BUILD_OS}:latest Docker image not found and required for multi-server test environment." |
75 | 80 | exit 1 |
76 | 81 | fi |
77 | 82 | make -f src/tests/multi-server/all.mk test-5hs-autoaccept |
| 83 | +
|
| 84 | + - name: Verify test results |
| 85 | + run: | |
| 86 | + echo "==== ${MULTI_SERVER_TEST_LOG} ====" |
| 87 | + cat "${MULTI_SERVER_TEST_LOG}" |
| 88 | +
|
| 89 | + if grep -q '\[Failed\]' "${MULTI_SERVER_TEST_LOG}"; then |
| 90 | + echo "Test failed: Found [Failed] in log" |
| 91 | + grep '\[Failed\]' "${MULTI_SERVER_TEST_LOG}" |
| 92 | + exit 1 |
| 93 | + fi |
| 94 | +
|
| 95 | + if ! grep -q '\[Passed\] Matched:' "${MULTI_SERVER_TEST_LOG}"; then |
| 96 | + echo "Test failed: No [Passed] Matched: found in log" |
| 97 | + exit 1 |
| 98 | + fi |
| 99 | +
|
| 100 | + echo "Test results verified: No [Failed] found and at least one [Passed] Matched: present." |
0 commit comments