diff --git a/cli/js/lib.deno.ns.d.ts b/cli/js/lib.deno.ns.d.ts index b73ad4c201..db89ed97fa 100644 --- a/cli/js/lib.deno.ns.d.ts +++ b/cli/js/lib.deno.ns.d.ts @@ -1899,11 +1899,12 @@ declare namespace Deno { readonly remoteAddr: Addr; /** The resource ID of the connection. */ readonly rid: number; - /** Shuts down (`shutdown(2)`) the reading side of the TCP connection. Most - * callers should just use `close()`. */ - closeRead(): void; /** Shuts down (`shutdown(2)`) the writing side of the TCP connection. Most - * callers should just use `close()`. */ + * callers should just use `close()`. + * + * **Unstable** because of lack of testing and because Deno.shutdown is also + * unstable. + * */ closeWrite(): void; } diff --git a/cli/js/net.ts b/cli/js/net.ts index 3ca1219e6a..05503b232c 100644 --- a/cli/js/net.ts +++ b/cli/js/net.ts @@ -48,10 +48,6 @@ export class ConnImpl implements Conn { close(this.rid); } - closeRead(): void { - netOps.shutdown(this.rid, netOps.ShutdownMode.Read); - } - closeWrite(): void { netOps.shutdown(this.rid, netOps.ShutdownMode.Write); } @@ -130,7 +126,6 @@ export interface Conn extends Reader, Writer, Closer { localAddr: Addr; remoteAddr: Addr; rid: number; - closeRead(): void; closeWrite(): void; } diff --git a/cli/js/tests/net_test.ts b/cli/js/tests/net_test.ts index ef3cd833de..fc1802792f 100644 --- a/cli/js/tests/net_test.ts +++ b/cli/js/tests/net_test.ts @@ -368,75 +368,6 @@ unitTest( } ); -unitTest( - { - // FIXME(bartlomieju) - ignore: true, - perms: { net: true }, - }, - async function netCloseReadSuccess() { - const addr = { hostname: "127.0.0.1", port: 4500 }; - const listener = Deno.listen(addr); - const closeDeferred = createResolvable(); - const closeReadDeferred = createResolvable(); - listener.accept().then(async (conn) => { - await closeReadDeferred; - await conn.write(new Uint8Array([1, 2, 3])); - const buf = new Uint8Array(1024); - const readResult = await conn.read(buf); - assertEquals(3, readResult); - assertEquals(4, buf[0]); - assertEquals(5, buf[1]); - assertEquals(6, buf[2]); - conn.close(); - closeDeferred.resolve(); - }); - const conn = await Deno.connect(addr); - conn.closeRead(); // closing read - closeReadDeferred.resolve(); - const buf = new Uint8Array(1024); - const readResult = await conn.read(buf); - assertEquals(readResult, null); // with immediate EOF - // Ensure closeRead does not impact write - await conn.write(new Uint8Array([4, 5, 6])); - await closeDeferred; - listener.close(); - conn.close(); - } -); - -unitTest( - { - // FIXME(bartlomieju) - ignore: true, - perms: { net: true }, - }, - async function netDoubleCloseRead() { - const addr = { hostname: "127.0.0.1", port: 4500 }; - const listener = Deno.listen(addr); - const closeDeferred = createResolvable(); - listener.accept().then(async (conn) => { - await conn.write(new Uint8Array([1, 2, 3])); - await closeDeferred; - conn.close(); - }); - const conn = await Deno.connect(addr); - conn.closeRead(); // closing read - let err; - try { - // Duplicated close should throw error - conn.closeRead(); - } catch (e) { - err = e; - } - assert(!!err); - assert(err instanceof Deno.errors.NotConnected); - closeDeferred.resolve(); - listener.close(); - conn.close(); - } -); - unitTest( { // FIXME(bartlomieju) diff --git a/std/http/mock.ts b/std/http/mock.ts index f373b42147..be07ede24a 100644 --- a/std/http/mock.ts +++ b/std/http/mock.ts @@ -12,7 +12,6 @@ export function mockConn(base: Partial = {}): Deno.Conn { port: 0, }, rid: -1, - closeRead: (): void => {}, closeWrite: (): void => {}, read: (): Promise => { return Promise.resolve(0); diff --git a/std/ws/test.ts b/std/ws/test.ts index 0d4541f62c..c6e74dadcb 100644 --- a/std/ws/test.ts +++ b/std/ws/test.ts @@ -276,7 +276,6 @@ test("[ws] ws.close() should use 1000 as close code", async () => { function dummyConn(r: Reader, w: Writer): Conn { return { rid: -1, - closeRead: (): void => {}, closeWrite: (): void => {}, read: (x): Promise => r.read(x), write: (x): Promise => w.write(x),