diff --git a/tests/bitvec/bitvec_test.c b/tests/bitvec/bitvec_test.c
index fbf5c5d..b4764e6 100644
--- a/tests/bitvec/bitvec_test.c
+++ b/tests/bitvec/bitvec_test.c
@@ -222,6 +222,45 @@
 	}
 }
 
+static void test_bitvec_read_field(void)
+{
+	uint8_t data[8] = { 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xeb, 0xda, 0xed };
+	struct bitvec bv = {
+		.data_len = sizeof(data),
+		.data = data,
+		.cur_bit = 0,
+	};
+
+	unsigned int readIndex;
+	uint64_t field;
+
+#define _bitvec_read_field(idx, len) \
+	readIndex = idx; \
+	field = bitvec_read_field(&bv, &readIndex, len); \
+	printf("bitvec_read_field(idx=%u, len=%u) => %" PRIx64 "\n", idx, len, field);
+
+	_bitvec_read_field(0, 64);
+	_bitvec_read_field(0, 32);
+	_bitvec_read_field(0, 16);
+	_bitvec_read_field(0, 8);
+	_bitvec_read_field(0, 0);
+
+	_bitvec_read_field(8, 8);
+	_bitvec_read_field(8, 4);
+	_bitvec_read_field(8, 0);
+
+	_bitvec_read_field(10, 9);
+	_bitvec_read_field(10, 7);
+	_bitvec_read_field(10, 5);
+	_bitvec_read_field(10, 3);
+	_bitvec_read_field(10, 1);
+
+	/* Out of bounds (see OS#4388) */
+	_bitvec_read_field(8 * 8 * 8, 16); /* index too far */
+	_bitvec_read_field(0, 8 * 8 + 1); /* too many bits */
+	_bitvec_read_field(8 * 8, 16); /* 16 bits past */
+}
+
 int main(int argc, char **argv)
 {
 	struct bitvec bv;
@@ -331,6 +370,9 @@
 	test_used_bytes();
 	test_tailroom();
 
+	printf("\ntest bitvec_read_field():\n");
+	test_bitvec_read_field();
+
 	printf("\nbitvec ok.\n");
 	return 0;
 }
diff --git a/tests/bitvec/bitvec_test.ok b/tests/bitvec/bitvec_test.ok
index a48912d..2974554 100644
--- a/tests/bitvec/bitvec_test.ok
+++ b/tests/bitvec/bitvec_test.ok
@@ -170,4 +170,22 @@
 
 bitvec bytes used.
 
+test bitvec_read_field():
+bitvec_read_field(idx=0, len=64) => deadbeeffeebdaed
+bitvec_read_field(idx=0, len=32) => deadbeef
+bitvec_read_field(idx=0, len=16) => dead
+bitvec_read_field(idx=0, len=8) => de
+bitvec_read_field(idx=0, len=0) => 0
+bitvec_read_field(idx=8, len=8) => ad
+bitvec_read_field(idx=8, len=4) => a
+bitvec_read_field(idx=8, len=0) => 0
+bitvec_read_field(idx=10, len=9) => 16d
+bitvec_read_field(idx=10, len=7) => 5b
+bitvec_read_field(idx=10, len=5) => 16
+bitvec_read_field(idx=10, len=3) => 5
+bitvec_read_field(idx=10, len=1) => 1
+bitvec_read_field(idx=512, len=16) => ffffffffffffffea
+bitvec_read_field(idx=0, len=65) => ffffffffffffffea
+bitvec_read_field(idx=64, len=16) => ffffffffffffffea
+
 bitvec ok.
