diff --git a/tests/tests-randomized/Makefile.am b/tests/tests-randomized/Makefile.am
index 605b64f..4e6415f 100644
--- a/tests/tests-randomized/Makefile.am
+++ b/tests/tests-randomized/Makefile.am
@@ -34,6 +34,8 @@
 TESTS += bundles/08-OBJECT-IDENTIFIER-bundle.txt
 TESTS += bundles/09-RELATIVE-OID-bundle.txt
 TESTS += bundles/10-UTF8String-bundle.txt
+TESTS += bundles/11-UTCTime-bundle.txt
+TESTS += bundles/12-GeneralizedTime-bundle.txt
 
 EXTRA_DIST =                    \
     random-test-driver.c        \
diff --git a/tests/tests-randomized/bundles/11-UTCTime-bundle.txt b/tests/tests-randomized/bundles/11-UTCTime-bundle.txt
new file mode 100644
index 0000000..8676f98
--- /dev/null
+++ b/tests/tests-randomized/bundles/11-UTCTime-bundle.txt
@@ -0,0 +1 @@
+UTCTime
diff --git a/tests/tests-randomized/bundles/12-GeneralizedTime-bundle.txt b/tests/tests-randomized/bundles/12-GeneralizedTime-bundle.txt
new file mode 100644
index 0000000..3a261cc
--- /dev/null
+++ b/tests/tests-randomized/bundles/12-GeneralizedTime-bundle.txt
@@ -0,0 +1 @@
+GeneralizedTime
diff --git a/tests/tests-skeletons/check-GeneralizedTime.c b/tests/tests-skeletons/check-GeneralizedTime.c
index 0aa74b9..21ea725 100644
--- a/tests/tests-skeletons/check-GeneralizedTime.c
+++ b/tests/tests-skeletons/check-GeneralizedTime.c
@@ -188,6 +188,21 @@
 	FREEMEM(gt);
 }
 
+static void
+compare(int lineno, int cmp_control, const char *astr, const char *bstr) {
+    GeneralizedTime_t a = {(uint8_t *)strdup(astr), strlen(astr)};
+    GeneralizedTime_t b = {(uint8_t *)strdup(bstr), strlen(bstr)};
+    int cmp_result = asn_DEF_GeneralizedTime.op->compare_struct(
+        &asn_DEF_GeneralizedTime, &a, &b);
+    if(cmp_result != cmp_control) {
+        fprintf(stderr, "%03d: [%s] == [%s] = %d, expected %d\n", lineno, astr,
+                bstr, cmp_result, cmp_control);
+        assert(cmp_result == cmp_control);
+    }
+    ASN_STRUCT_RESET(asn_DEF_GeneralizedTime, &a);
+    ASN_STRUCT_RESET(asn_DEF_GeneralizedTime, &b);
+}
+
 int
 main(int ac, char **av) {
 	char *tz = getenv("TZ");
@@ -264,6 +279,16 @@
 	RECODE("20050702123312.0080010+1056", "20050702013712.008001Z");
 #endif
 
+    compare(__LINE__, 0, "20040125093007", "20040125093007");
+    compare(__LINE__, 0, "20040125093007-0000", "20040125093007Z");
+    compare(__LINE__, 1, "20040125093008", "20040125093007");
+    compare(__LINE__, 1, "20040125093008-0000", "20040125093007-0000");
+    compare(__LINE__, 0, "20040125093008-0000", "20040125093008-0000");
+    compare(__LINE__, 1, "20040125093008-0000", "20040125093007Z");
+    compare(__LINE__, 0, "20040125093007-0000", "20040125093007+0000");
+    compare(__LINE__, 1, "20040125093007-0030", "20040125093007Z");
+    compare(__LINE__, -1, "20040125093007+0030", "20040125093007Z");
+
 	return 0;
 }
 
diff --git a/tests/tests-skeletons/check-UTCTime.c b/tests/tests-skeletons/check-UTCTime.c
index e1c2556..8f85b55 100644
--- a/tests/tests-skeletons/check-UTCTime.c
+++ b/tests/tests-skeletons/check-UTCTime.c
@@ -33,6 +33,21 @@
 	if(as_gmt) check(time_str, sample, as_gmt);
 }
 
+static void
+compare(int lineno, int cmp_control, const char *astr, const char *bstr) {
+    UTCTime_t a = {(uint8_t *)strdup(astr), strlen(astr)};
+    UTCTime_t b = {(uint8_t *)strdup(bstr), strlen(bstr)};
+    int cmp_result =
+        asn_DEF_UTCTime.op->compare_struct(&asn_DEF_UTCTime, &a, &b);
+    if(cmp_result != cmp_control) {
+        fprintf(stderr, "%03d: [%s] == [%s] = %d, expected %d\n", lineno, astr,
+                bstr, cmp_result, cmp_control);
+        assert(cmp_result == cmp_control);
+    }
+    ASN_STRUCT_RESET(asn_DEF_UTCTime, &a);
+    ASN_STRUCT_RESET(asn_DEF_UTCTime, &b);
+}
+
 int
 main(int ac, char **av) {
 
@@ -57,6 +72,16 @@
 		check("040125093000,1234", 1075051800, 0);
 	}
 
+    compare(__LINE__, 0, "040125093007", "040125093007");
+    compare(__LINE__, 0, "040125093007-0000", "040125093007Z");
+    compare(__LINE__, 1, "040125093008", "040125093007");
+    compare(__LINE__, 1, "040125093008-0000", "040125093007-0000");
+    compare(__LINE__, 0, "040125093008-0000", "040125093008-0000");
+    compare(__LINE__, 1, "040125093008-0000", "040125093007Z");
+    compare(__LINE__, 0, "040125093007-0000", "040125093007+0000");
+    compare(__LINE__, 1, "040125093007-0030", "040125093007Z");
+    compare(__LINE__, -1, "040125093007+0030", "040125093007Z");
+
 	return 0;
 }
 
