- if (!WPACKET_init(&pkt, buf)
- || !WPACKET_start_sub_packet_u8(&pkt)
- || !WPACKET_put_bytes_u8(&pkt, 0xff)
- || !WPACKET_close(&pkt)
- || !WPACKET_start_sub_packet_u8(&pkt)
- || !WPACKET_put_bytes_u8(&pkt, 0xff)
- || !WPACKET_close(&pkt)
- || !WPACKET_finish(&pkt)
- || !WPACKET_get_total_written(&pkt, &written)
- || written != sizeof(seqsub)
- || memcmp(buf->data, &seqsub, written) != 0) {
- testfail("test_WPACKET_start_sub_packet():4 failed\n", &pkt);
- return 0;
- }
+ if (!TEST_true(WPACKET_init(&pkt, buf))
+ || !TEST_true(WPACKET_start_sub_packet_u8(&pkt))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_start_sub_packet_u8(&pkt))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_finish(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, seqsub, sizeof(seqsub)))
+ return cleanup(&pkt);
+
+ /* Nested sub-packets with lengths filled before finish */
+ if (!TEST_true(WPACKET_init(&pkt, buf))
+ || !TEST_true(WPACKET_start_sub_packet_u8(&pkt))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_start_sub_packet_u8(&pkt))
+ || !TEST_true(WPACKET_put_bytes_u8(&pkt, 0xff))
+ || !TEST_true(WPACKET_get_length(&pkt, &len))
+ || !TEST_size_t_eq(len, 1)
+ || !TEST_true(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_get_length(&pkt, &len))
+ || !TEST_size_t_eq(len, 3)
+ || !TEST_true(WPACKET_close(&pkt))
+ || !TEST_true(WPACKET_fill_lengths(&pkt))
+ || !TEST_true(WPACKET_get_total_written(&pkt, &written))
+ || !TEST_mem_eq(buf->data, written, nestedsub, sizeof(nestedsub))
+ || !TEST_true(WPACKET_finish(&pkt)))
+ return cleanup(&pkt);