static void parse() { struct Sockaddr_storage test; Assert_always(Sockaddr_asNative(&test.addr) == ((uint8_t*)&test) + Sockaddr_OVERHEAD); expectSuccess("0.0.0.0"); expectSuccess("111.111.111.111"); expectSuccess("111.111.111.111:12345"); expectFailure("111.111.111.111:99999"); expectFailure("[111.111.111.111]"); expectFailure("[fc00::"); expectConvert("[fc00::]", "fc00::"); expectSuccess("fc00::"); expectSuccess("::"); expectSuccess("1::1"); expectSuccess("1::1"); expectSuccess("[1::1]:12345"); expectFailure("[1::1]:99999"); expectSuccess("[ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:12345"); expectFailure("[ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:12345"); expectFailure("[:]:12345"); expectFailure("[0]:12345"); expectFailure("0"); expectFailure("1.0.0."); }
TEST(JSONCompilationDatabase, ErrsOnInvalidFormat) { expectFailure("", "Empty database"); expectFailure("{", "Invalid JSON"); expectFailure("[[]]", "Array instead of object"); expectFailure("[{\"a\":[]}]", "Array instead of value"); expectFailure("[{\"a\":\"b\"}]", "Unknown key"); expectFailure("[{[]:\"\"}]", "Incorrectly typed entry"); expectFailure("[{}]", "Empty entry"); expectFailure("[{\"directory\":\"\",\"command\":\"\"}]", "Missing file"); expectFailure("[{\"directory\":\"\",\"file\":\"\"}]", "Missing command"); expectFailure("[{\"command\":\"\",\"file\":\"\"}]", "Missing directory"); }