forked from metin-server/m2dev-server
healthcheck: split delete and login passes
This commit is contained in:
@@ -19,7 +19,12 @@ Installed on the VPS:
|
||||
|
||||
## What The Headless Healthcheck Verifies
|
||||
|
||||
The check performs the real two-step Metin login flow without a GUI client and then exercises the in-game mall open path:
|
||||
The installed wrapper now performs two headless passes against the live server:
|
||||
|
||||
1. a select-screen create/delete pass
|
||||
2. a full auth + channel + `ENTERGAME` + mall pass
|
||||
|
||||
Together they perform the real two-step Metin login flow without a GUI client and cover both character lifecycle and in-game mall open behavior:
|
||||
|
||||
1. Connect to the auth socket.
|
||||
2. Complete the secure handshake.
|
||||
@@ -30,11 +35,14 @@ The check performs the real two-step Metin login flow without a GUI client and t
|
||||
7. Send `LOGIN2` with `login` + `login_key`.
|
||||
8. Verify `EMPIRE`.
|
||||
9. Verify `LOGIN_SUCCESS4`.
|
||||
10. Select a character slot.
|
||||
11. Send `ENTERGAME`.
|
||||
12. Verify `MAIN_CHARACTER`, `PHASE_GAME`, `TIME`, and `CHANNEL`.
|
||||
13. Send `/mall_password 000000` through the encrypted chat path.
|
||||
14. Verify `MALL_OPEN`.
|
||||
10. Create a temporary character on an empty account.
|
||||
11. Delete that temporary character on the select screen using the account private code path.
|
||||
12. Create a fresh temporary character again.
|
||||
13. Select a character slot.
|
||||
14. Send `ENTERGAME`.
|
||||
15. Verify `MAIN_CHARACTER`, `PHASE_GAME`, `TIME`, and `CHANNEL`.
|
||||
16. Send `/mall_password 000000` through the encrypted chat path.
|
||||
17. Verify `MALL_OPEN`.
|
||||
|
||||
This is an end-to-end gameplay-path verification, not just a TCP port check.
|
||||
|
||||
@@ -42,12 +50,12 @@ This is an end-to-end gameplay-path verification, not just a TCP port check.
|
||||
|
||||
`metin-login-healthcheck.sh` does the following:
|
||||
|
||||
- creates a temporary account in MariaDB
|
||||
- lets `metin_login_smoke` create a temporary character when the account is empty
|
||||
- runs `metin_login_smoke`
|
||||
- verifies a successful auth + channel + `ENTERGAME` flow
|
||||
- creates two temporary accounts in MariaDB
|
||||
- runs `metin_login_smoke` once in create/delete mode on the select screen
|
||||
- runs `metin_login_smoke` again for the full auth + channel + `ENTERGAME` flow
|
||||
- uses separate temporary accounts because the server enforces a per-account character-create cooldown
|
||||
- verifies that the shared safebox/mall DB load bootstrap can open the mall with the default empty password
|
||||
- deletes the temporary account and temporary character rows on exit
|
||||
- deletes both temporary accounts and any temporary character rows on exit
|
||||
- passes the configured client version expected by the server
|
||||
|
||||
It is intended for manual admin use on the VPS.
|
||||
@@ -96,6 +104,8 @@ Useful direct flags:
|
||||
treats an auth failure such as `NOID` or `WRONGPWD` as a successful negative test
|
||||
- `--expect-channel-failure=STATUS`
|
||||
treats a channel failure as a successful negative test
|
||||
- `--delete-private-code=CODE`
|
||||
creates or reuses a character slot, sends `CHARACTER_DELETE`, and verifies `PLAYER_DELETE_SUCCESS`
|
||||
- `--mall-password=PASSWORD`
|
||||
after `ENTERGAME`, opens the in-game mall via encrypted chat command and verifies `MALL_OPEN`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user