| … | … | @@ -184,6 +184,67 @@ |
| 184 | 184 | (test-assert "three-C-web-closed" |
| 185 | 185 | (not (can-connect-to-port? s3-web))) |
| 186 | 186 | |
| 187 | ;; ------------------------------------------------------- |
| 188 | ;; ===== Three cogservers using (start-cogserver) ===== |
| 189 | ;; Test that three servers can run simultaneously and respond correctly. |
| 190 | |
| 191 | (define tri-1-telnet 17301) (define tri-1-web 18381) |
| 192 | (define tri-2-telnet 17302) (define tri-2-web 18382) |
| 193 | (define tri-3-telnet 17303) (define tri-3-web 18383) |
| 194 | |
| 195 | (define tri-csn-1 (start-cogserver #:port tri-1-telnet #:web tri-1-web #:mcp 0)) |
| 196 | (define tri-csn-2 (start-cogserver #:port tri-2-telnet #:web tri-2-web #:mcp 0)) |
| 197 | (define tri-csn-3 (start-cogserver #:port tri-3-telnet #:web tri-3-web #:mcp 0)) |
| 198 | |
| 199 | (test-assert "tri-start-1" (cog-atom? tri-csn-1)) |
| 200 | (test-assert "tri-start-2" (cog-atom? tri-csn-2)) |
| 201 | (test-assert "tri-start-3" (cog-atom? tri-csn-3)) |
| 202 | |
| 203 | ;; Verify all three have unique names |
| 204 | (test-assert "tri-unique-names" |
| 205 | (let ((n1 (cog-name tri-csn-1)) |
| 206 | (n2 (cog-name tri-csn-2)) |
| 207 | (n3 (cog-name tri-csn-3))) |
| 208 | (and (not (string=? n1 n2)) |
| 209 | (not (string=? n2 n3)) |
| 210 | (not (string=? n1 n3))))) |
| 211 | |
| 212 | ;; Test telnet: send scheme expression to each and verify result |
| 213 | (test-assert "tri-1-scheme" |
| 214 | (string-contains (send-recv tri-1-telnet "scm\n(+ 1 1)\n.\n") "2")) |
| 215 | |
| 216 | (test-assert "tri-2-scheme" |
| 217 | (string-contains (send-recv tri-2-telnet "scm\n(+ 2 2)\n.\n") "4")) |
| 218 | |
| 219 | (test-assert "tri-3-scheme" |
| 220 | (string-contains (send-recv tri-3-telnet "scm\n(+ 3 3)\n.\n") "6")) |
| 221 | |
| 222 | ;; Test HTTP: send GET /stats to each and verify 200 OK |
| 223 | (test-assert "tri-1-http" |
| 224 | (string-contains |
| 225 | (send-recv tri-1-web "GET /stats HTTP/1.1\r\nHost: localhost\r\n\r\n") |
| 226 | "200 OK")) |
| 227 | |
| 228 | (test-assert "tri-2-http" |
| 229 | (string-contains |
| 230 | (send-recv tri-2-web "GET /stats HTTP/1.1\r\nHost: localhost\r\n\r\n") |
| 231 | "200 OK")) |
| 232 | |
| 233 | (test-assert "tri-3-http" |
| 234 | (string-contains |
| 235 | (send-recv tri-3-web "GET /stats HTTP/1.1\r\nHost: localhost\r\n\r\n") |
| 236 | "200 OK")) |
| 237 | |
| 238 | ;; Stop all three using stop-cogserver with explicit argument |
| 239 | (stop-cogserver tri-csn-1) |
| 240 | (stop-cogserver tri-csn-2) |
| 241 | (stop-cogserver tri-csn-3) |
| 242 | |
| 243 | ;; Verify all ports are closed |
| 244 | (test-assert "tri-1-closed" (not (can-connect-to-port? tri-1-telnet))) |
| 245 | (test-assert "tri-2-closed" (not (can-connect-to-port? tri-2-telnet))) |
| 246 | (test-assert "tri-3-closed" (not (can-connect-to-port? tri-3-telnet))) |
| 247 | |
| 187 | 248 | ;; ------------------------------------------------------- |
| 188 | 249 | (test-end tname) |
| 189 | 250 | |