/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /*********************************************************************** ** ** Name: op_2long.c ** ** Description: Test Program to verify the PR_NAME_TOO_LONG_ERROR ** ** Modification History: ** 03-June-97 AGarcia- Initial version ***********************************************************************/ /*********************************************************************** ** Includes ***********************************************************************/ /* Used to get the command line option */ #include "prinit.h" #include "prmem.h" #include "prio.h" #include "prerror.h" #include <stdio.h> #include "plerror.h" #include "plgetopt.h" static PRFileDesc *t1; PRIntn error_code; /* * should exceed any system's maximum file name length * Note: was set at 4096. This is legal on some unix (Linux 2.1+) platforms. * */ #define TOO_LONG 5000 int main(int argc, char **argv) { char nameTooLong[TOO_LONG]; int i; /* Generate a really long pathname */ for (i = 0; i < TOO_LONG - 1; i++) { if (i % 10 == 0) { nameTooLong[i] = '/'; } else { nameTooLong[i] = 'a'; } } nameTooLong[TOO_LONG - 1] = 0; PR_STDIO_INIT(); t1 = PR_Open(nameTooLong, PR_RDWR, 0666); if (t1 == NULL) { if (PR_GetError() == PR_NAME_TOO_LONG_ERROR) { PL_PrintError("error code is"); printf ("PASS\n"); return 0; } else { PL_PrintError("error code is"); printf ("FAIL\n"); return 1; } } else { printf ("Test passed\n"); return 0; } }