diff --git a/skeletons/tests/check-OCTET_STRING.c b/skeletons/tests/check-OCTET_STRING.c
index 0a8d68e..51f6eb3 100644
--- a/skeletons/tests/check-OCTET_STRING.c
+++ b/skeletons/tests/check-OCTET_STRING.c
@@ -51,6 +51,36 @@
 	}
 }
 
+static char buf[1024];
+
+static int
+write_buf(const void *buffer, size_t size, void *key) {
+	size_t *off = key;
+	assert(*off + size < sizeof(buf));
+	memcpy(buf + *off, buffer, size);
+	*off += size;
+	return 0;
+}
+
+static void
+encode(char *orig, char *encoded) {
+	OCTET_STRING_t os;
+	size_t written = 0;
+	asn_enc_rval_t er;
+
+	memset(&os, 0, sizeof(os));
+
+	OCTET_STRING_fromString(&os, orig);
+
+	er = OCTET_STRING_encode_xer_utf8(&asn_DEF_OCTET_STRING, &os,
+			0, 0, write_buf, &written);
+	assert(er.encoded >= 0);
+	buf[er.encoded] = '\0';
+	printf("Orig: [%s], encoded: [%s], check [%s]\n",
+		orig, buf, encoded);
+	assert(strcmp(buf, encoded) == 0);
+}
+
 int
 main() {
 
@@ -104,6 +134,12 @@
 	check(UTF8, "z", "<z>a<soh/>b</z>", "a\001b");
 	check(UTF8, "z", "<z>a<bel/></z>", "a\007");
 
+	encode("", "");
+	encode("a", "a");
+	encode("a\nb", "a\nb");
+	encode("a\bc", "a<bs/>c");
+	encode("ab\01c\ndef\r\n", "ab<soh/>c\ndef\r\n");
+
 	return 0;
 }
 
