TEST_START
TEST_START("sshauthopt_parse invalid " label); \
TEST_START("sshauthopt_parse empty");
TEST_START("sshauthopt_parse trailing whitespace");
TEST_START("sshauthopt_parse restrict");
TEST_START("sshauthopt_parse tunnel explicit");
TEST_START("sshauthopt_parse tunnel any");
TEST_START("sshauthopt_parse " keyword); \
TEST_START("sshauthopt_parse " keyword); \
TEST_START("sshauthopt_parse " label); \
TEST_START("sshauthopt_from_cert no_" keybase); \
TEST_START("sshauthopt_from_cert only_" keybase); \
TEST_START("sshauthopt_from_cert all permitted");
TEST_START("sshauthopt_from_cert nothing permitted");
TEST_START("sshauthopt_from_cert force-command");
TEST_START("sshauthopt_from_cert source-address");
TEST_START("sshauthopt_from_cert " keybase); \
TEST_START("sshauthopt_merge " label); \
TEST_START("bitmap_new");
TEST_START("bitmap_set_bit / bitmap_test_bit");
TEST_START("conversion_convtime");
TEST_START("hostkeys_iterate specify IPv6");
TEST_START("hostkeys_iterate match IPv4");
TEST_START("hostkeys_iterate match IPv6");
TEST_START("hostkeys_iterate specify addr missing");
TEST_START("hostkeys_iterate match addr missing");
TEST_START("hostkeys_iterate specify host 2 and IPv4");
TEST_START("hostkeys_iterate match host 1 and IPv6");
TEST_START("hostkeys_iterate specify host 2 and IPv4 w/ key parse");
TEST_START("hostkeys_iterate match host 1 and IPv6 w/ key parse");
TEST_START("hostkeys_iterate all with key parse");
TEST_START("hostkeys_iterate all without key parse");
TEST_START("hostkeys_iterate specify host 1");
TEST_START("hostkeys_iterate specify host 2");
TEST_START("hostkeys_iterate match host 1");
TEST_START("hostkeys_iterate match host 2");
TEST_START("hostkeys_iterate specify host missing");
TEST_START("hostkeys_iterate match host missing");
TEST_START("hostkeys_iterate specify IPv4");
TEST_START("ssh_add_hostkey");
TEST_START("kex");
TEST_START("rekeying client");
TEST_START("rekeying server");
TEST_START("ssh_packet_get_state");
TEST_START("ssh_packet_set_state");
TEST_START("rekeying server2");
TEST_START("cleanup");
TEST_START("sshkey_generate");
TEST_START("sshkey_from_private");
TEST_START("ssh_init");
TEST_START("compat_kex_proposal_populate");
TEST_START("compat_kex_proposal");
TEST_START("match_filter_list");
TEST_START("match_pattern");
TEST_START("match_pattern wildcard");
TEST_START("match_pattern_list");
TEST_START("match_pattern_list lowercase");
TEST_START("addr_match_list");
TEST_START("quoted escaped");
TEST_START("comments");
TEST_START("empty args");
TEST_START("trivial args");
TEST_START("quoted");
TEST_START("escaped");
TEST_START("misc_convtime");
TEST_START("misc_parse_absolute_time");
TEST_START("dollar_expand");
TEST_START("percent_expand");
TEST_START("percent_dollar_expand");
TEST_START("hpdelim host only");
TEST_START("hpdelim :port");
TEST_START("hpdelim host:port");
TEST_START("hpdelim [host]:port");
TEST_START("hpdelim missing ] error");
TEST_START("misc_parse_user_host_path");
TEST_START("misc_parse_user_ipv4_path");
TEST_START("misc_parse_user_[ipv4]_path");
TEST_START("misc_parse_user_[ipv4]_nopath");
TEST_START("misc_parse_user_ipv6_path");
TEST_START("misc_parse_uri");
TEST_START("ptimeout_init");
TEST_START("ptimeout_deadline_sec");
TEST_START("ptimeout_deadline_ms");
TEST_START("ptimeout zero");
TEST_START("ptimeout_deadline_monotime");
TEST_START("ptimeout_deadline_monotime past");
TEST_START("multi too many equals");
TEST_START("multi equals strdelimw");
TEST_START("quoted");
TEST_START("quoted multi");
TEST_START("quoted multi reverse");
TEST_START("quoted multi middle");
TEST_START("badquote");
TEST_START("oops quote");
TEST_START("empty");
TEST_START("whitespace");
TEST_START("trivial");
TEST_START("trivial whitespace");
TEST_START("multi");
TEST_START("multi whitespace");
TEST_START("multi equals");
TEST_START("sshbuf_len on filled buffer");
TEST_START("sshbuf_ptr on filled buffer");
TEST_START("consume on filled buffer");
TEST_START("consume_end on filled buffer");
TEST_START("fill limited buffer");
TEST_START("consume and force compaction");
TEST_START("resize full buffer");
TEST_START("alloc chunking");
TEST_START("reset buffer");
TEST_START("allocate sshbuf");
TEST_START("max size on fresh buffer");
TEST_START("available on fresh buffer");
TEST_START("len = 0 on empty buffer");
TEST_START("set valid max size");
TEST_START("available on limited buffer");
TEST_START("free");
TEST_START("consume on empty buffer");
TEST_START("consume_end on empty buffer");
TEST_START("reserve space");
TEST_START("sshbuf_froms");
TEST_START("sshbuf_from");
TEST_START("sshbuf_from data");
TEST_START("sshbuf_fromb ");
TEST_START("fuzz alloc/dealloc");
TEST_START("sshbuf_put truncated");
TEST_START("sshbuf_get_u64");
TEST_START("sshbuf_get_u64 truncated");
TEST_START("sshbuf_get_u32");
TEST_START("sshbuf_get_u32 truncated");
TEST_START("sshbuf_get_u16");
TEST_START("sshbuf_get_u16 truncated");
TEST_START("sshbuf_get_u8");
TEST_START("sshbuf_get_u8 truncated");
TEST_START("sshbuf_put_u64");
TEST_START("sshbuf_put_u64 exact");
TEST_START("sshbuf_put_u64 limited");
TEST_START("sshbuf_put_u32");
TEST_START("sshbuf_put_u32 exact");
TEST_START("sshbuf_put_u32 limited");
TEST_START("sshbuf_put_u16");
TEST_START("sshbuf_put_u16");
TEST_START("sshbuf_put_u16 limited");
TEST_START("sshbuf_get_string");
TEST_START("sshbuf_get_string exact");
TEST_START("sshbuf_get_string truncated");
TEST_START("sshbuf_get_string giant");
TEST_START("sshbuf_get_cstring giant");
TEST_START("sshbuf_get_cstring embedded \\0");
TEST_START("sshbuf_get_cstring trailing \\0");
TEST_START("sshbuf_put_string");
TEST_START("sshbuf_put_string limited");
TEST_START("sshbuf_put_string giant");
TEST_START("sshbuf_putf");
TEST_START("sshbuf_putb");
TEST_START("sshbuf_put_bignum2_bytes empty buf");
TEST_START("sshbuf_put_bignum2_bytes all zeroes");
TEST_START("sshbuf_put_bignum2_bytes simple");
TEST_START("sshbuf_put_bignum2_bytes leading zero");
TEST_START("PEEK_U64");
TEST_START("sshbuf_put_bignum2_bytes neg");
TEST_START("sshbuf_put_bignum2_bytes neg and leading zero");
TEST_START("sshbuf_peek_u64");
TEST_START("PEEK_U32");
TEST_START("sshbuf_peek_u32");
TEST_START("sshbuf_peek_u16");
TEST_START("sshbuf_peek_u8");
TEST_START("PEEK_U16");
TEST_START("sshbuf_poke_u64");
TEST_START("POKE_U64");
TEST_START("sshbuf_poke_u32");
TEST_START("sshbuf_poke_u16");
TEST_START("POKE_U32");
TEST_START("sshbuf_poke_u8");
TEST_START("sshbuf_poke");
TEST_START("POKE_U16");
TEST_START("sshbuf_put");
TEST_START("sshbuf_get");
TEST_START("sshbuf_get truncated");
TEST_START("sshbuf_put_bignum2 bn2");
TEST_START("sshbuf_put_bignum2 bn2 limited");
TEST_START("sshbuf_get_bignum2");
TEST_START("sshbuf_get_bignum2 truncated");
TEST_START("sshbuf_get_bignum2 giant");
TEST_START("sshbuf_get_bignum2 bn2");
TEST_START("sshbuf_get_bignum2 bn2 truncated");
TEST_START("sshbuf_get_bignum2 bn2 negative");
TEST_START("sshbuf_put_ec");
TEST_START("sshbuf_get_ec");
TEST_START("sshbuf_put_bignum2");
TEST_START("sshbuf_put_bignum2 limited");
TEST_START("fuzz blob parsing");
TEST_START("sshbuf_b64tod len 1");
TEST_START("sshbuf_b64tod len 2");
TEST_START("sshbuf_b64tod len 4");
TEST_START("sshbuf_dup_string");
TEST_START("sshbuf_cmp");
TEST_START("sshbuf_find");
TEST_START("sshbuf_dump");
TEST_START("sshbuf_dtob16");
TEST_START("sshbuf_dtob64_string len 1");
TEST_START("sshbuf_dtob64_string len 2");
TEST_START("sshbuf_dtob64_string len 3");
TEST_START("sshbuf_dtob64_string len 8191");
TEST_START("load RSA from public");
TEST_START("load RSA cert with SHA1 signature");
TEST_START("load RSA cert with SHA512 signature");
TEST_START("load RSA cert");
TEST_START("RSA key hex fingerprint");
TEST_START("RSA cert hex fingerprint");
TEST_START("RSA key bubblebabble fingerprint");
TEST_START("parse DSA from private");
TEST_START("parse DSA from private w/ passphrase");
TEST_START("parse DSA from new-format");
TEST_START("parse DSA from new-format w/ passphrase");
TEST_START("load DSA from public");
TEST_START("load DSA cert");
TEST_START("DSA key hex fingerprint");
TEST_START("DSA cert hex fingerprint");
TEST_START("DSA key bubblebabble fingerprint");
TEST_START("parse ECDSA from private");
TEST_START("parse ECDSA from private w/ passphrase");
TEST_START("parse ECDSA from new-format");
TEST_START("parse ECDSA from new-format w/ passphrase");
TEST_START("load ECDSA from public");
TEST_START("load ECDSA cert");
TEST_START("ECDSA key hex fingerprint");
TEST_START("ECDSA cert hex fingerprint");
TEST_START("ECDSA key bubblebabble fingerprint");
TEST_START("parse Ed25519 from private");
TEST_START("parse Ed25519 from private w/ passphrase");
TEST_START("load Ed25519 from public");
TEST_START("load Ed25519 cert");
TEST_START("Ed25519 key hex fingerprint");
TEST_START("Ed25519 cert hex fingerprint");
TEST_START("Ed25519 key bubblebabble fingerprint");
TEST_START("parse ECDSA-SK from private");
TEST_START("parse ECDSA-SK from private w/ passphrase");
TEST_START("load ECDSA-SK from public");
TEST_START("load ECDSA-SK cert");
TEST_START("ECDSA-SK key hex fingerprint");
TEST_START("ECDSA-SK cert hex fingerprint");
TEST_START("ECDSA-SK key bubblebabble fingerprint");
TEST_START("parse Ed25519-SK from private");
TEST_START("parse Ed25519-SK from private w/ passphrase");
TEST_START("load Ed25519-SK from public");
TEST_START("load Ed25519-SK cert");
TEST_START("load passphrase");
TEST_START("Ed25519-SK key hex fingerprint");
TEST_START("Ed25519-SK cert hex fingerprint");
TEST_START("Ed25519-SK key bubblebabble fingerprint");
TEST_START("parse RSA from private");
TEST_START("parse RSA from private w/ passphrase");
TEST_START("parse RSA from new-format");
TEST_START("parse RSA from new-format w/ passphrase");
TEST_START("fuzz RSA private");
TEST_START("fuzz RSA new-format private");
TEST_START("fuzz DSA private");
TEST_START("fuzz DSA new-format private");
TEST_START("fuzz ECDSA private");
TEST_START("fuzz ECDSA new-format private");
TEST_START("fuzz Ed25519 private");
TEST_START("fuzz RSA public");
TEST_START("fuzz RSA cert");
TEST_START("fuzz DSA public");
TEST_START("fuzz DSA cert");
TEST_START("fuzz ECDSA public");
TEST_START("fuzz ECDSA cert");
TEST_START("fuzz Ed25519 public");
TEST_START("fuzz Ed25519 cert");
TEST_START("fuzz RSA sig");
TEST_START("fuzz RSA SHA256 sig");
TEST_START("fuzz RSA SHA512 sig");
TEST_START("fuzz DSA sig");
TEST_START("fuzz ECDSA sig");
TEST_START("fuzz Ed25519 sig");
TEST_START("new invalid");
TEST_START("new/free KEY_UNSPEC");
TEST_START("new/free KEY_RSA");
TEST_START("new/free KEY_DSA");
TEST_START("new/free KEY_ECDSA");
TEST_START("new/free KEY_ED25519");
TEST_START("generate KEY_RSA too small modulus");
TEST_START("generate KEY_RSA too large modulus");
TEST_START("generate KEY_DSA wrong bits");
TEST_START("generate KEY_ECDSA wrong bits");
TEST_START("generate KEY_RSA");
TEST_START("generate KEY_DSA");
TEST_START("generate KEY_ECDSA");
TEST_START("generate KEY_ED25519");
TEST_START("demote KEY_RSA");
TEST_START("equal KEY_RSA/demoted KEY_RSA");
TEST_START("demote KEY_DSA");
TEST_START("equal KEY_DSA/demoted KEY_DSA");
TEST_START("demote KEY_ECDSA");
TEST_START("equal KEY_ECDSA/demoted KEY_ECDSA");
TEST_START("demote KEY_ED25519");
TEST_START("equal KEY_ED25519/demoted KEY_ED25519");
TEST_START("equal mismatched key types");
TEST_START("equal different keys");
TEST_START("certify key");
TEST_START("sign and verify RSA");
TEST_START("sign and verify RSA-SHA256");
TEST_START("sign and verify RSA-SHA512");
TEST_START("sign and verify DSA");
TEST_START("sign and verify ECDSA");
TEST_START("sign and verify ED25519");
TEST_START("nested certificate");
TEST_START("check RSA signature");
TEST_START("check DSA signature");
TEST_START("check ECDSA signature");
TEST_START("check ED25519 signature");
TEST_START("check ECDSA-SK signature");
TEST_START("check ED25519-SK signature");
TEST_START("check ECDSA-SK webauthn signature");
TEST_START("load data");
TEST_START("utf8_badarg");
TEST_START(buf);
TEST_START("utf8_setlocale");
TEST_START("C_setlocale");