summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2021-12-15 17:37:42 +0000
committerjsing <>2021-12-15 17:37:42 +0000
commit928185f8e7c4d32c9ffc92c013923547eb3c6371 (patch)
tree94c53c5e6d83efbd5705f124ac4efae8e81960bc
parent3f6877b440d5d44fc0c6d366d1b5d5fdeead626c (diff)
downloadopenbsd-928185f8e7c4d32c9ffc92c013923547eb3c6371.tar.gz
openbsd-928185f8e7c4d32c9ffc92c013923547eb3c6371.tar.bz2
openbsd-928185f8e7c4d32c9ffc92c013923547eb3c6371.zip
Add coverage for CBS additions.
-rw-r--r--src/regress/lib/libssl/bytestring/bytestringtest.c52
1 files changed, 50 insertions, 2 deletions
diff --git a/src/regress/lib/libssl/bytestring/bytestringtest.c b/src/regress/lib/libssl/bytestring/bytestringtest.c
index 040667ede9..a29dc982a8 100644
--- a/src/regress/lib/libssl/bytestring/bytestringtest.c
+++ b/src/regress/lib/libssl/bytestring/bytestringtest.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bytestringtest.c,v 1.14 2021/04/04 19:55:46 tb Exp $ */ 1/* $OpenBSD: bytestringtest.c,v 1.15 2021/12/15 17:37:42 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2014, Google Inc. 3 * Copyright (c) 2014, Google Inc.
4 * 4 *
@@ -63,10 +63,14 @@ test_skip(void)
63static int 63static int
64test_get_u(void) 64test_get_u(void)
65{ 65{
66 static const uint8_t kData[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 66 static const uint8_t kData[] = {
67 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
68 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
69 };
67 uint8_t u8; 70 uint8_t u8;
68 uint16_t u16; 71 uint16_t u16;
69 uint32_t u32; 72 uint32_t u32;
73 uint64_t u64;
70 CBS data; 74 CBS data;
71 75
72 CBS_init(&data, kData, sizeof(kData)); 76 CBS_init(&data, kData, sizeof(kData));
@@ -79,7 +83,14 @@ test_get_u(void)
79 CHECK(u32 == 0x40506); 83 CHECK(u32 == 0x40506);
80 CHECK(CBS_get_u32(&data, &u32)); 84 CHECK(CBS_get_u32(&data, &u32));
81 CHECK(u32 == 0x708090a); 85 CHECK(u32 == 0x708090a);
86 CHECK(CBS_get_u64(&data, &u64));
87 CHECK(u64 == 0x0b0c0d0e0f101112U);
88 CHECK(CBS_get_last_u8(&data, &u8));
89 CHECK(u8 == 20);
90 CHECK(CBS_get_last_u8(&data, &u8));
91 CHECK(u8 == 19);
82 CHECK(!CBS_get_u8(&data, &u8)); 92 CHECK(!CBS_get_u8(&data, &u8));
93 CHECK(!CBS_get_last_u8(&data, &u8));
83 94
84 return 1; 95 return 1;
85} 96}
@@ -132,6 +143,42 @@ test_get_prefixed_bad(void)
132} 143}
133 144
134static int 145static int
146test_peek_u(void)
147{
148 static const uint8_t kData[] = {
149 1, 2, 3, 4, 5, 6, 7, 8, 9,
150 };
151 uint8_t u8;
152 uint16_t u16;
153 uint32_t u32;
154 CBS data;
155
156 CBS_init(&data, kData, sizeof(kData));
157
158 CHECK(CBS_peek_u8(&data, &u8));
159 CHECK(u8 == 1);
160 CHECK(CBS_peek_u16(&data, &u16));
161 CHECK(u16 == 0x102);
162 CHECK(CBS_peek_u24(&data, &u32));
163 CHECK(u32 == 0x10203);
164 CHECK(CBS_peek_u32(&data, &u32));
165 CHECK(u32 == 0x1020304);
166 CHECK(CBS_get_u32(&data, &u32));
167 CHECK(u32 == 0x1020304);
168 CHECK(CBS_peek_last_u8(&data, &u8));
169 CHECK(u8 == 9);
170 CHECK(CBS_peek_u32(&data, &u32));
171 CHECK(u32 == 0x5060708);
172 CHECK(CBS_get_u32(&data, &u32));
173 CHECK(u32 == 0x5060708);
174 CHECK(CBS_get_u8(&data, &u8));
175 CHECK(u8 == 9);
176 CHECK(!CBS_get_u8(&data, &u8));
177
178 return 1;
179}
180
181static int
135test_get_asn1(void) 182test_get_asn1(void)
136{ 183{
137 static const uint8_t kData1[] = {0x30, 2, 1, 2}; 184 static const uint8_t kData1[] = {0x30, 2, 1, 2};
@@ -894,6 +941,7 @@ main(void)
894 failed |= !test_get_u(); 941 failed |= !test_get_u();
895 failed |= !test_get_prefixed(); 942 failed |= !test_get_prefixed();
896 failed |= !test_get_prefixed_bad(); 943 failed |= !test_get_prefixed_bad();
944 failed |= !test_peek_u();
897 failed |= !test_get_asn1(); 945 failed |= !test_get_asn1();
898 failed |= !test_cbb_basic(); 946 failed |= !test_cbb_basic();
899 failed |= !test_cbb_add_space(); 947 failed |= !test_cbb_add_space();