| /* t-syserror.c - System error specific regression test. |
| Copyright (C) 2006 g10 Code GmbH |
| |
| This file is part of libgpg-error. |
| |
| libgpg-error is free software; you can redistribute it and/or |
| modify it under the terms of the GNU Lesser General Public License |
| as published by the Free Software Foundation; either version 2.1 of |
| the License, or (at your option) any later version. |
| |
| libgpg-error is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| Lesser General Public License for more details. |
| |
| You should have received a copy of the GNU Lesser General Public |
| License along with libgpgme-error; if not, write to the Free |
| Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
| 02110-1301, USA. */ |
| |
| |
| #if HAVE_CONFIG_H |
| #include <config.h> |
| #endif |
| |
| #include <stdio.h> |
| #if HAVE_STDLIB_H |
| #include <stdlib.h> |
| #endif |
| #include <errno.h> |
| |
| #include <gpg-error.h> |
| |
| int |
| main (int argc, char *argv[]) |
| { |
| FILE *fp; |
| int save_errno; |
| gpg_err_code_t ec; |
| |
| fp = fopen ("/does-not-exist/110761/nowhere.foo", "r"); |
| if (fp) |
| { |
| fclose (fp); |
| fp = fopen (" no this file does not exists foo 4711", "r"); |
| } |
| if (fp) |
| { |
| fprintf (stderr, "unable to run test\n"); |
| return 1; |
| } |
| save_errno = errno; |
| |
| ec = gpg_err_code_from_syserror (); |
| if (ec != GPG_ERR_ENOENT) |
| { |
| fprintf (stderr, "fopen failed with bad code: %d\n", save_errno); |
| return 1; |
| } |
| |
| if (ec != gpg_err_code_from_errno (save_errno)) |
| { |
| fprintf (stderr, "oops at %d\n",__LINE__); |
| return 1; |
| } |
| |
| gpg_err_set_errno (0); |
| |
| ec = gpg_err_code_from_syserror (); |
| if (ec != GPG_ERR_MISSING_ERRNO) |
| { |
| fprintf (stderr, "oops at %d\n",__LINE__); |
| return 1; |
| } |
| |
| if ( gpg_err_code_from_errno (0) ) |
| { |
| fprintf (stderr, "oops at %d\n",__LINE__); |
| return 1; |
| } |
| |
| |
| return 0; |
| } |