/* Conformance Test 15.1.0.1:  Verification of strcat, strncat functions */

#include <string.h>

int printf(const char *, ...);

int main (void)
  {
   char s1 [80] = "this is the first string argument";
   char s2 [80] = ", and this is the second string argument!";
   char s3 [160] = "";


   strcpy(s3, strcat (s1, s2));
   if (strlen (s3) != 74)
       goto Fail;
   if (strcmp (s3, "this is the first string argument, and this is the \
second string argument!"))
       goto Fail;

   strcpy(s1, "this is the first string argument");
   strcpy(s3, strncat (s1, s2, 17));
   if (strlen (s3) != 50)
       goto Fail;
   if (strcmp (s3, "this is the first string argument, and this is the"))
       goto Fail;

   strcpy(s1, "this is the first string argument");
   strcpy(s3, strncat (s1, s2, 50));
   if (strlen (s3) != 74)
       goto Fail;
   if (strcmp (s3, "this is the first string argument, and this is the \
second string argument!"))
       goto Fail;

   strcpy(s1, "this is the first string argument");
   strcpy(s1, strncat (s1, s2, 0));
   if (strcmp (s1, "this is the first string argument"))
       goto Fail;


   printf ("Passed Conformance Test 15.1.0.1\n");
   return 0;

Fail:
   printf ("Failed Conformance Test 15.1.0.1\n");
  }
