1#!/bin/bash 2# \ 3exec tclsh "$0" "$@" 4 5source tests/commands/common.tcl 6 7proc main {} { 8 global server client serverout clientout port 9 10 # set defaults 11 server "sv_globalspectatorchat 1" 12 server "map 1" 13 client "print_stdout 1" 14 client "cl_name Player" 15 16 wait 17 18 # reset sv_maxclients and sv_maxplayers 19 clear 20 server "sv_maxclients 2" 21 server "sv_maxplayers 2" 22 server "map 1" 23 client "disconnect" 24 client "reconnect" 25 wait 3 26 27 # kick client off the server 28 clear 29 server "sv_maxclients 0" 30 expect $serverout {sv_maxclients will be changed for next game.} 31 server "sv_maxplayers 0" 32 expect $serverout {sv_maxplayers will be changed for next game.} 33 server "map 1" 34 expect $serverout {Player disconnected. (SPECTATOR, 0 FRAGS, 0 DEATHS)} 35 expect $clientout {} 0 36 expect $clientout {=================================} 0 37 expect $clientout {MAP01: entryway} 0 38 expect $clientout {} 0 39 expect $clientout {Client limit reduced. Please try connecting again later.} 0 40 expect $clientout {} 0 41 expect $clientout {Server disconnected} 0 42 43 # try to connect 44 clear 45 client "disconnect" 46 client "reconnect" 47 expect $clientout "connecting to 127.0.0.1:$port" 0 48 wait 3 49 for {set i 0} {$i < 11} {incr i} { gets $clientout } 50 expect $clientout {Server is full} 0 51 52 # change sv_maxplayers (non-latched) 53 clear 54 server "sv_maxplayers 2" 55 expect $serverout {sv_maxplayers will be changed for next game.} 56 server "map 1" 57 58 # try to connect 59 clear 60 client "disconnect" 61 client "reconnect" 62 expect $clientout "connecting to 127.0.0.1:$port" 0 63 wait 3 64 for {set i 0} {$i < 11} {incr i} { gets $clientout } 65 expect $clientout {Server is full} 0 66 67 # change sv_maxplayers and sv_maxclients 68 clear 69 server "sv_maxclients 2" 70 expect $serverout {sv_maxclients will be changed for next game.} 71 server "sv_maxplayers 0" 72 expect $serverout {sv_maxplayers will be changed for next game.} 73 server "map 1" 74 clear 75 76 # try to connect 77 clear 78 client "disconnect" 79 client "reconnect" 80 expect $clientout "connecting to 127.0.0.1:$port" 0 81 wait 3 82 for {set i 0} {$i < 11} {incr i} { gets $clientout } 83 expect $clientout {} 0 84 expect $clientout {=================================} 0 85 expect $clientout {MAP01: entryway} 0 86 87 # try to join with sv_maxplayers 0 88 clear 89 client "+use" 90 wait 91 client "-use" 92 expect $serverout {} 93 94 # change sv_maxplayers 95 clear 96 server "sv_maxplayers 2" 97 expect $serverout {sv_maxplayers will be changed for next game.} 98 server "map 1" 99 100 # try to join 101 clear 102 client "+use" 103 wait 104 client "-use" 105 expect $serverout {Player joined the game.} 106 107 # change sv_maxplayers and player should become a spectator 108 clear 109 server "sv_maxplayers 0" 110 expect $serverout {sv_maxplayers will be changed for next game.} 111 server "map 1" 112 expect $serverout {Player became a spectator.} 113 expect $serverout {--- MAP01: entryway ---} 114} 115 116start 117 118set error [catch { main }] 119 120if { $error } { 121 puts "FAIL Test crashed!" 122} 123 124end 125