|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
1 | 2 | /*
|
2 | 3 | * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
|
3 | 4 | *
|
4 |
| - * This program is free software; you can redistribute it and/or modify it |
5 |
| - * under the terms of version 2 of the GNU General Public License as |
6 |
| - * published by the Free Software Foundation. |
7 |
| - * |
8 |
| - * This program is distributed in the hope that it would be useful, but |
9 |
| - * WITHOUT ANY WARRANTY; without even the implied warranty of |
10 |
| - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
11 |
| - * |
12 |
| - * Further, this software is distributed without any warranty that it is |
13 |
| - * free of the rightful claim of any third person regarding infringement |
14 |
| - * or the like. Any license provided herein, whether implied or |
15 |
| - * otherwise, applies only to this software file. Patent licenses, if |
16 |
| - * any, provided herein do not apply to combinations of this program with |
17 |
| - * other software, or any other product whatsoever. |
18 |
| - * |
19 |
| - * You should have received a copy of the GNU General Public License along |
20 |
| - * with this program; if not, write the Free Software Foundation, Inc., |
21 |
| - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
22 |
| - * |
23 |
| - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, |
24 |
| - * Mountain View, CA 94043, or: |
25 |
| - * |
26 |
| - * http://www.sgi.com |
27 |
| - * |
28 |
| - * For further information regarding this notice, see: |
29 |
| - * |
30 |
| - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ |
| 5 | + * Basic test for uname(2): |
| 6 | + * Calling uname() succeeded and got correct sysname. |
31 | 7 | *
|
32 | 8 | */
|
33 |
| -/* $Id: uname01.c,v 1.6 2009/11/02 13:57:19 subrata_modak Exp $ */ |
34 |
| -/********************************************************** |
35 |
| - * |
36 |
| - * OS Test - Silicon Graphics, Inc. |
37 |
| - * |
38 |
| - * TEST IDENTIFIER : uname01 |
39 |
| - * |
40 |
| - * EXECUTED BY : anyone |
41 |
| - * |
42 |
| - * TEST TITLE : Basic test for uname(2) |
43 |
| - * |
44 |
| - * PARENT DOCUMENT : usctpl01 |
45 |
| - * |
46 |
| - * TEST CASE TOTAL : 1 |
47 |
| - * |
48 |
| - * WALL CLOCK TIME : 1 |
49 |
| - * |
50 |
| - * CPU TYPES : ALL |
51 |
| - * |
52 |
| - * AUTHOR : William Roske |
53 |
| - * |
54 |
| - * CO-PILOT : Dave Fenner |
55 |
| - * |
56 |
| - * DATE STARTED : 03/30/92 |
57 |
| - * |
58 |
| - * INITIAL RELEASE : UNICOS 7.0 |
59 |
| - * |
60 |
| - * TEST CASES |
61 |
| - * |
62 |
| - * 1.) uname(2) returns...(See Description) |
63 |
| - * |
64 |
| - * INPUT SPECIFICATIONS |
65 |
| - * The standard options for system call tests are accepted. |
66 |
| - * (See the parse_opts(3) man page). |
67 |
| - * |
68 |
| - * OUTPUT SPECIFICATIONS |
69 |
| - *$ |
70 |
| - * DURATION |
71 |
| - * Terminates - with frequency and infinite modes. |
72 |
| - * |
73 |
| - * SIGNALS |
74 |
| - * Uses SIGUSR1 to pause before test if option set. |
75 |
| - * (See the parse_opts(3) man page). |
76 |
| - * |
77 |
| - * RESOURCES |
78 |
| - * None |
79 |
| - * |
80 |
| - * ENVIRONMENTAL NEEDS |
81 |
| - * No run-time environmental needs. |
82 |
| - * |
83 |
| - * SPECIAL PROCEDURAL REQUIREMENTS |
84 |
| - * None |
85 |
| - * |
86 |
| - * INTERCASE DEPENDENCIES |
87 |
| - * None |
88 |
| - * |
89 |
| - * DETAILED DESCRIPTION |
90 |
| - * This is a Phase I test for the uname(2) system call. It is intended |
91 |
| - * to provide a limited exposure of the system call, for now. It |
92 |
| - * should/will be extended when full functional tests are written for |
93 |
| - * uname(2). |
94 |
| - * |
95 |
| - * Setup: |
96 |
| - * Setup signal handling. |
97 |
| - * Pause for SIGUSR1 if option specified. |
98 |
| - * |
99 |
| - * Test: |
100 |
| - * Loop if the proper options are given. |
101 |
| - * Execute system call |
102 |
| - * Check return code, if system call failed (return=-1) |
103 |
| - * Log the errno and Issue a FAIL message. |
104 |
| - * Otherwise, Issue a PASS message. |
105 |
| - * |
106 |
| - * Cleanup: |
107 |
| - * Print errno log and/or timing stats if options given |
108 |
| - * |
109 |
| - * |
110 |
| - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ |
111 | 9 |
|
112 | 10 | #include <sys/utsname.h>
|
113 | 11 | #include <errno.h>
|
114 | 12 | #include <string.h>
|
115 |
| -#include <signal.h> |
116 |
| -#include "test.h" |
117 |
| - |
118 |
| -void setup(); |
119 |
| -void cleanup(); |
120 |
| - |
121 |
| -char *TCID = "uname01"; |
122 |
| -int TST_TOTAL = 1; |
123 |
| - |
124 |
| -struct utsname un; |
| 13 | +#include "tst_test.h" |
125 | 14 |
|
126 |
| -int main(int ac, char **av) |
| 15 | +static void verify_uname(void) |
127 | 16 | {
|
128 |
| - int lc; |
| 17 | + struct utsname un; |
129 | 18 |
|
130 |
| - tst_parse_opts(ac, av, NULL, NULL); |
131 |
| - |
132 |
| - setup(); |
133 |
| - |
134 |
| - for (lc = 0; TEST_LOOPING(lc); lc++) { |
135 |
| - |
136 |
| - tst_count = 0; |
137 |
| - |
138 |
| - TEST(uname(&un)); |
139 |
| - |
140 |
| - if (TEST_RETURN == -1) |
141 |
| - tst_resm(TFAIL | TTERRNO, "uname failed"); |
142 |
| - else |
143 |
| - tst_resm(TPASS, "uname(&un) returned %ld", TEST_RETURN); |
| 19 | + memset(&un, 0, sizeof(un)); |
144 | 20 |
|
| 21 | + TEST(uname(&un)); |
| 22 | + if (TST_RET == -1) { |
| 23 | + tst_res(TFAIL | TTERRNO, "uname() failed"); |
| 24 | + return; |
145 | 25 | }
|
146 | 26 |
|
147 |
| - cleanup(); |
148 |
| - tst_exit(); |
149 |
| -} |
150 |
| - |
151 |
| -void setup(void) |
152 |
| -{ |
153 |
| - void trapper(); |
| 27 | + if (TST_RET != 0) { |
| 28 | + tst_res(TFAIL | TTERRNO, |
| 29 | + "uname() returned invalid value %ld", TST_RET); |
| 30 | + return; |
| 31 | + } |
154 | 32 |
|
155 |
| - tst_sig(NOFORK, DEF_HANDLER, cleanup); |
| 33 | + if (strcmp(un.sysname, "Linux")) { |
| 34 | + tst_res(TFAIL, "sysname is not Linux"); |
| 35 | + return; |
| 36 | + } |
156 | 37 |
|
157 |
| - TEST_PAUSE; |
| 38 | + tst_res(TPASS, "uname() succeeded"); |
158 | 39 | }
|
159 | 40 |
|
160 |
| -void cleanup(void) |
161 |
| -{ |
162 |
| -} |
| 41 | +static struct tst_test test = { |
| 42 | + .test_all = verify_uname, |
| 43 | +}; |
0 commit comments