On Sunday 14 June 2009 12:03:45 pm Brad Hards wrote:
> In an attempt to improve coverage a little, I've added some unit tests that
> check for a NULL destination for some of the base types. These pass,
> although I didn't actually run the coverage checker locally to verify that
> we're now testing correctly.
Here is a few more, this time for base/text

Please apply.

Brad


=== modified file 'torture/unit/base/text/pdf-text-dup.c'
--- torture/unit/base/text/pdf-text-dup.c	2008-09-09 01:41:01 +0000
+++ torture/unit/base/text/pdf-text-dup.c	2009-06-14 02:32:27 +0000
@@ -231,6 +231,20 @@
 }
 END_TEST
 
+/*
+ * Test: pdf_text_dup_005
+ * Description:
+ *   Duplicate text without initializing the context
+ * Success conditions:
+ *   1. The call to @code{pdf_text_dup} should return a null pointer
+ */
+START_TEST(pdf_text_dup_005)
+{
+  pdf_text_t newtext = NULL;
+
+  fail_unless(pdf_text_dup (&newtext) == NULL);
+}
+END_TEST
 
 /*
  * Test case creation function
@@ -243,6 +257,7 @@
   tcase_add_test(tc, pdf_text_dup_002);
   tcase_add_test(tc, pdf_text_dup_003);
   tcase_add_test(tc, pdf_text_dup_004);
+  tcase_add_test(tc, pdf_text_dup_005);
   return tc;
 }
 

=== modified file 'torture/unit/base/text/pdf-text-new-destroy.c'
--- torture/unit/base/text/pdf-text-new-destroy.c	2008-09-09 01:41:01 +0000
+++ torture/unit/base/text/pdf-text-new-destroy.c	2009-06-14 02:24:18 +0000
@@ -66,7 +66,20 @@
 }
 END_TEST
 
+/*
+ * Test: pdf_text_new_destroy_002
+ * Description:
+ *   Create an text object without initializing the context
+ * Success conditions:
+ *   1. The call to @code{pdf_text_new} should return PDF_EBADCONTEXT
+ */
+START_TEST(pdf_text_new_destroy_002)
+{
+  pdf_text_t newtext = NULL;
 
+  fail_unless(pdf_text_new (&newtext) == PDF_EBADCONTEXT);
+}
+END_TEST
 
 /*
  * Test case creation function
@@ -76,6 +89,7 @@
 {
   TCase *tc = tcase_create("pdf_text_new_destroy");
   tcase_add_test(tc, pdf_text_new_destroy_001);
+  tcase_add_test(tc, pdf_text_new_destroy_002);
   return tc;
 }
 

=== modified file 'torture/unit/base/text/pdf-text-new-from-host.c'
--- torture/unit/base/text/pdf-text-new-from-host.c	2008-12-28 01:55:54 +0000
+++ torture/unit/base/text/pdf-text-new-from-host.c	2009-06-14 03:54:04 +0000
@@ -186,6 +186,61 @@
 }
 END_TEST
 
+/*
+ * Test: pdf_text_new_from_host_004
+ * Description:
+ *   Create a text object with invalid input string
+ * Success conditions:
+ *    1. The call to  pdf_text_new_from_host should return PDF_EBADDATA
+ */
+START_TEST(pdf_text_new_from_host_004)
+{
+  pdf_text_t text = NULL;
+  pdf_text_host_encoding_t host_enc;
+  const pdf_char_t *sample_usascii = NULL;
+
+  /* Create, without using the API, a valid pdf_text_host_encoding_t */
+#ifdef PDF_HOST_WIN32
+  strcpy((char *)(&(host_enc.name[0])), "CP20127"); /* us-ascii */
+#else
+  strcpy((char *)(&(host_enc.name[0])), "us-ascii");
+#endif
+
+  fail_unless(pdf_text_new_from_host(sample_usascii,
+                                     1,
+                                     host_enc,
+                                     &text) == PDF_EBADDATA);
+
+}
+END_TEST
+
+/*
+ * Test: pdf_text_new_from_host_005
+ * Description:
+ *   Create a text object with invalid input string length
+ * Success conditions:
+ *    1. The call to  pdf_text_new_from_host should return PDF_EBADDATA
+ */
+START_TEST(pdf_text_new_from_host_005)
+{
+  pdf_text_t text = NULL;
+  pdf_text_host_encoding_t host_enc;
+  const pdf_char_t *sample_usascii = (pdf_char_t *)"GNU's not Unix";
+
+  /* Create, without using the API, a valid pdf_text_host_encoding_t */
+#ifdef PDF_HOST_WIN32
+  strcpy((char *)(&(host_enc.name[0])), "CP20127"); /* us-ascii */
+#else
+  strcpy((char *)(&(host_enc.name[0])), "us-ascii");
+#endif
+
+  fail_unless(pdf_text_new_from_host(sample_usascii,
+                                     0,
+                                     host_enc,
+                                     &text) == PDF_EBADDATA);
+
+}
+END_TEST
 
 
 /*
@@ -198,6 +253,8 @@
   tcase_add_test(tc, pdf_text_new_from_host_001);
   tcase_add_test(tc, pdf_text_new_from_host_002);
   tcase_add_test(tc, pdf_text_new_from_host_003);
+  tcase_add_test(tc, pdf_text_new_from_host_004);
+  tcase_add_test(tc, pdf_text_new_from_host_005);
   return tc;
 }
 

Reply via email to