]> Repositorios git - scryer-prolog.git/commitdiff
Close Stream bug files
authorAdrián Arroyo Calle <[email protected]>
Thu, 30 Sep 2021 20:59:15 +0000 (22:59 +0200)
committerAdrián Arroyo Calle <[email protected]>
Thu, 30 Sep 2021 20:59:15 +0000 (22:59 +0200)
tests-pl/issue1046-close-stream-client.pl [new file with mode: 0644]
tests-pl/issue1046-close-stream.pl [new file with mode: 0644]

diff --git a/tests-pl/issue1046-close-stream-client.pl b/tests-pl/issue1046-close-stream-client.pl
new file mode 100644 (file)
index 0000000..db192dd
--- /dev/null
@@ -0,0 +1,32 @@
+:- use_module(library(sockets)).
+:- use_module(library(time)).
+:- use_module(library(format)).
+:- use_module(library(charsio)).
+
+test :-
+    Addr = '0.0.0.0',
+    Port = 5000,
+    socket_client_open(Addr:Port, Stream, [type(binary)]),
+    read_line(Stream, Line),
+    write(Line),
+    close(Stream).
+
+
+read_line(Stream, Line) :-
+    get_byte(Stream, Char),
+    ( Char = -1 ->
+        Line = []
+    ; Char = 13 ->
+        read_line(Stream, Line)
+    ; Char = 10 ->
+        Line = []
+    ;   (read_line(Stream, Line0), Line = [Char|Line0])
+    ).
+
+read_message(Stream, [Cs|Message]) :-
+    read_line(Stream, Bs),
+    chars_utf8bytes(Cs, Bs),
+    ( Cs = "." ->
+        Message = []
+    ;   read_message(Stream, Message)
+    ).
diff --git a/tests-pl/issue1046-close-stream.pl b/tests-pl/issue1046-close-stream.pl
new file mode 100644 (file)
index 0000000..0ac47fc
--- /dev/null
@@ -0,0 +1,14 @@
+:- use_module(library(sockets)).
+:- use_module(library(time)).
+:- use_module(library(format)).
+
+test :-
+    Addr = '0.0.0.0',
+    Port = 5000,
+    once(socket_server_open(Addr:Port, Socket)),
+    format("Listening at port ~d\n", [Port]),
+    socket_server_accept(Socket, _Client, Stream, [type(binary)]),
+    format(Stream, "FIRST\r\n", []),
+    sleep(20),
+    format(Stream, "SECOND\r\n", []),
+    close(Stream).
\ No newline at end of file