Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:24:37

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /**
0004  *  @file
0005  *  @brief Test suite for confstr method
0006  */
0007 
0008 /*
0009  * Copyright (C) 2020 Eshan Dhawan
0010  *
0011  * Redistribution and use in source and binary forms, with or without
0012  * modification, are permitted provided that the following conditions
0013  * are met:
0014  * 1. Redistributions of source code must retain the above copyright
0015  *    notice, this list of conditions and the following disclaimer.
0016  * 2. Redistributions in binary form must reproduce the above copyright
0017  *    notice, this list of conditions and the following disclaimer in the
0018  *    documentation and/or other materials provided with the distribution.
0019  *
0020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0022  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0023  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0024  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0025  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0026  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0027  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0028  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0029  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0030  * POSSIBILITY OF SUCH DAMAGE.
0031  */
0032 
0033 #ifdef HAVE_CONFIG_H
0034 #include "config.h"
0035 #endif
0036 
0037 #include <errno.h>
0038 #include <stdio.h>
0039 #include <string.h>
0040 #include <unistd.h>
0041 
0042 #include <rtems/test.h>
0043 #include <rtems/test-info.h>
0044 
0045 const char rtems_test_name[] = "PSXCONFSTR";
0046 
0047 T_TEST_CASE(confstr)
0048 {
0049 
0050   int r;
0051   const char UPE[] = "unsupported programming environment";
0052   char buf[sizeof(UPE)];
0053   size_t len1;
0054 
0055   len1 = sizeof(UPE);
0056 
0057   r = confstr(_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, buf, sizeof(buf));
0058   T_eq_sz(r, len1);
0059 
0060   r = confstr(_CS_POSIX_V6_LP64_OFF64_LDFLAGS, buf, sizeof(buf));
0061   T_eq_sz(r, len1);
0062 
0063   r = confstr(_CS_POSIX_V7_ILP32_OFF32_CFLAGS, buf, sizeof(buf));
0064   T_eq_sz(r, len1);
0065 
0066   r = confstr(_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, buf, sizeof(buf));
0067   T_eq_sz(r, len1);
0068 
0069   r = confstr(_CS_POSIX_V7_LP64_OFF64_LIBS, buf, sizeof(buf));
0070   T_eq_sz(r, len1);
0071 
0072   r = confstr(_CS_POSIX_V6_LP64_OFF64_CFLAGS, buf, sizeof(buf));
0073   T_eq_sz(r, len1);
0074 
0075   errno = 0;
0076   r = confstr(_CS_PATH, buf, sizeof(buf));
0077   T_eq_sz(r, 0);
0078   T_eq_int(errno, EINVAL);
0079 }
0080 
0081 static rtems_task Init(rtems_task_argument ignored)
0082 {
0083   rtems_test_run(ignored, TEST_STATE);
0084 }
0085 #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
0086 #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
0087 
0088 #define CONFIGURE_MAXIMUM_TASKS 1
0089 
0090 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
0091 
0092 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
0093 #define CONFIGURE_INIT
0094 
0095 #include <rtems/confdefs.h>
0096 /* end of file */