home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / nsprpub / pr / tests / op_2long.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  2.4 KB  |  97 lines

  1. /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2. /*
  3.  * The contents of this file are subject to the Netscape Public License
  4.  * Version 1.0 (the "NPL"); you may not use this file except in
  5.  * compliance with the NPL.  You may obtain a copy of the NPL at
  6.  * http://www.mozilla.org/NPL/
  7.  * 
  8.  * Software distributed under the NPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
  10.  * for the specific language governing rights and limitations under the
  11.  * NPL.
  12.  * 
  13.  * The Initial Developer of this code under the NPL is Netscape
  14.  * Communications Corporation.  Portions created by Netscape are
  15.  * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
  16.  * Reserved.
  17.  */
  18.  
  19. /***********************************************************************
  20. **
  21. ** Name: op_2long.c
  22. **
  23. ** Description: Test Program to verify the PR_NAME_TOO_LONG_ERROR
  24. **
  25. ** Modification History:
  26. ** 03-June-97 AGarcia- Initial version
  27. ***********************************************************************/
  28.  
  29. /***********************************************************************
  30. ** Includes
  31. ***********************************************************************/
  32. /* Used to get the command line option */
  33. #include "prinit.h"
  34. #include "prmem.h"
  35. #include "prio.h"
  36. #include "prerror.h"
  37. #include <stdio.h>
  38. #include "plerror.h"
  39. #include "plgetopt.h"
  40.  
  41. #ifdef XP_MAC
  42. #include "prlog.h"
  43. #define printf PR_LogPrint
  44. #else
  45. #endif
  46.  
  47. static PRFileDesc *t1;
  48. PRIntn error_code;
  49.  
  50. /*
  51.  * 4096 should exceed any system's maximum file name length
  52.  */
  53. #define TOO_LONG 4096
  54.  
  55. int main(int argc, char **argv)
  56. {
  57.     char nameTooLong[TOO_LONG];
  58.     int i;
  59.  
  60.     /* Generate a really long pathname */
  61.     for (i = 0; i < TOO_LONG - 1; i++) {
  62.         if (i % 10 == 0) {
  63.             nameTooLong[i] = '/';
  64.         } else {
  65.             nameTooLong[i] = 'a';
  66.         }
  67.     }
  68.     nameTooLong[TOO_LONG - 1] = 0;
  69.  
  70. #ifdef XP_MAC
  71.     SetupMacPrintfLog("pr_open_re.log");
  72. #endif
  73.     
  74.     PR_STDIO_INIT();
  75.     t1 = PR_Open(nameTooLong, PR_RDWR, 0666);
  76.     if (t1 == NULL) {
  77.         if (PR_GetError() == PR_NAME_TOO_LONG_ERROR) {
  78.             PL_PrintError("error code is");
  79.             printf ("PASS\n");
  80.             return 0;
  81.         }
  82.         else {
  83.             PL_PrintError("error code is");
  84.             printf ("FAIL\n");
  85.             return 1;
  86.         }
  87.     }
  88.     
  89.         else {
  90.             printf ("Test passed\n");
  91.             return 0;
  92.         }
  93.     
  94.  
  95.  
  96. }            
  97.