OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-cogserver commits / b73b2cc

Extend the unit test to test three servers.
b73b2cccd558d98525efcf8358e02416a551c88d
by Linas Vepstas <linasvepstas@gmail.com> · 2025-12-14T08:28:42.000Z

Changed files (1) +61 -0

tests/scm/cog-server-test.scm +61 -0
……@@ -184,6 +184,67 @@
184184(test-assert "three-C-web-closed"
185185 (not (can-connect-to-port? s3-web)))
186186
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
187248;; -------------------------------------------------------
188249(test-end tname)
189250