Path: blob/main/core/posix-node/src/netdb.test.ts
1396 views
import posix from "./index";12test("gethostbyname consistency checks", () => {3const hostent = posix.gethostbyname?.("example.com");4if (hostent == null) throw Error("fail");5expect(hostent.h_name).toBe("example.com");6expect(hostent.h_aliases.length).toBe(0);7expect(hostent.h_addrtype).toBe(2);8expect(hostent.h_length).toBe(4);9expect(hostent.h_addr_list.length).toBeGreaterThan(0);10expect(hostent.h_addr_list[0]).toContain(".");11});1213/*14Example:1516> require('.').gethostbyaddr("64.233.187.99")17{18h_name: 'tj-in-f99.1e100.net',19h_addrtype: 2,20h_length: 4,21h_addr_list: [ '64.233.187.99' ],22h_aliases: [ '99.187.233.64.in-addr.arpa' ]23}24*/2526test("gethostbyaddr check - v4", () => {27const hostent = posix.gethostbyaddr?.("64.233.187.99");28expect(hostent?.h_addr_list[0]).toContain(".");29expect(hostent?.h_addrtype).toBe(posix.constants?.AF_INET);30});3132test("gethostbyaddr check - v6", () => {33const hostent = posix.gethostbyaddr?.("2001:4860:4860::8888");34expect(hostent?.h_addr_list[0]).toContain(":");35expect(hostent?.h_addrtype).toBe(posix.constants?.AF_INET6);36// behavior depends on OS37// expect(hostent?.h_aliases[0]).toContain("8.8.8.8");38});3940test("getaddrinfo canonical name", () => {41const addrinfo = posix.getaddrinfo?.("example.com", "http", { flags: 2 });42if (addrinfo == null) throw Error("fail");43expect(addrinfo[0]?.ai_canonname).toEqual("example.com");44});4546test("getaddrinfo isn't random garbled nonsense", () => {47const addrinfo = posix.getaddrinfo?.("example.com", "http", { flags: 2 });48if (addrinfo == null) throw Error("fail");49const addrinfo2 = posix.getaddrinfo?.("example.com", "http", { flags: 2 });50if (addrinfo2 == null) throw Error("fail");51expect(addrinfo).toEqual(addrinfo2);52});5354// very OS dependent55test("getting error messages", () => {56expect(posix.gai_strerror?.(0)).toEqual("Unknown error");57});5859test("getaddrinfo error code", () => {60try {61posix.getaddrinfo?.("google.com", "x");62} catch (err) {63expect(err.code != null).toBe(true);64}65});666768