ptem01.c revision 354ebb48db8e66a853a58379a4808d5dcd1ceac3
1b87390939c55e574c5b4c66a341d80df3863762frobbiew/* 2b87390939c55e574c5b4c66a341d80df3863762frobbiew * 3b87390939c55e574c5b4c66a341d80df3863762frobbiew * Copyright (c) International Business Machines Corp., 2002 4b87390939c55e574c5b4c66a341d80df3863762frobbiew * 5b87390939c55e574c5b4c66a341d80df3863762frobbiew * This program is free software; you can redistribute it and/or modify 6b87390939c55e574c5b4c66a341d80df3863762frobbiew * it under the terms of the GNU General Public License as published by 7b87390939c55e574c5b4c66a341d80df3863762frobbiew * the Free Software Foundation; either version 2 of the License, or 8b87390939c55e574c5b4c66a341d80df3863762frobbiew * (at your option) any later version. 9b87390939c55e574c5b4c66a341d80df3863762frobbiew * 10b87390939c55e574c5b4c66a341d80df3863762frobbiew * This program is distributed in the hope that it will be useful, 11b87390939c55e574c5b4c66a341d80df3863762frobbiew * but WITHOUT ANY WARRANTY; without even the implied warranty of 12b87390939c55e574c5b4c66a341d80df3863762frobbiew * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 13b87390939c55e574c5b4c66a341d80df3863762frobbiew * the GNU General Public License for more details. 14b87390939c55e574c5b4c66a341d80df3863762frobbiew * 15b87390939c55e574c5b4c66a341d80df3863762frobbiew * You should have received a copy of the GNU General Public License 16b87390939c55e574c5b4c66a341d80df3863762frobbiew * along with this program; if not, write to the Free Software 174548c6cf9bcdd96d8303caa4130ab638b61f8a30Wanlong Gao * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18b87390939c55e574c5b4c66a341d80df3863762frobbiew */ 19b87390939c55e574c5b4c66a341d80df3863762frobbiew 20b87390939c55e574c5b4c66a341d80df3863762frobbiew/* 12/23/2002 Port to LTP robbiew@us.ibm.com */ 21b87390939c55e574c5b4c66a341d80df3863762frobbiew/* 06/30/2001 Port to Linux nsharoff@us.ibm.com */ 22b87390939c55e574c5b4c66a341d80df3863762frobbiew 23b87390939c55e574c5b4c66a341d80df3863762frobbiew#include <errno.h> 24b87390939c55e574c5b4c66a341d80df3863762frobbiew#include <stdio.h> 25b87390939c55e574c5b4c66a341d80df3863762frobbiew#include <stdlib.h> 26b87390939c55e574c5b4c66a341d80df3863762frobbiew#include <stdio.h> 27b87390939c55e574c5b4c66a341d80df3863762frobbiew#include <termio.h> 28b87390939c55e574c5b4c66a341d80df3863762frobbiew#include <sys/fcntl.h> 29b87390939c55e574c5b4c66a341d80df3863762frobbiew#include <sys/stat.h> 30b87390939c55e574c5b4c66a341d80df3863762frobbiew#include <sys/poll.h> 31b87390939c55e574c5b4c66a341d80df3863762frobbiew#include <sys/types.h> 32b87390939c55e574c5b4c66a341d80df3863762frobbiew 33b87390939c55e574c5b4c66a341d80df3863762frobbiew#ifndef _GNU_SOURCE 34b87390939c55e574c5b4c66a341d80df3863762frobbiew#define _GNU_SOURCE 1 35b87390939c55e574c5b4c66a341d80df3863762frobbiew#endif 36b87390939c55e574c5b4c66a341d80df3863762frobbiew 37b87390939c55e574c5b4c66a341d80df3863762frobbiew/** LTP Port **/ 38b87390939c55e574c5b4c66a341d80df3863762frobbiew#include "test.h" 39b87390939c55e574c5b4c66a341d80df3863762frobbiew#include "usctest.h" 40b87390939c55e574c5b4c66a341d80df3863762frobbiew 41354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gaochar *TCID = "ptem01"; /* Test program identifier. */ 42354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gaoint TST_TOTAL = 6; /* Total number of test cases. */ 43b87390939c55e574c5b4c66a341d80df3863762frobbiew/**************/ 44b87390939c55e574c5b4c66a341d80df3863762frobbiew 45b87390939c55e574c5b4c66a341d80df3863762frobbiew/* 46b87390939c55e574c5b4c66a341d80df3863762frobbiew * pty master clone device 47b87390939c55e574c5b4c66a341d80df3863762frobbiew */ 48b87390939c55e574c5b4c66a341d80df3863762frobbiew#define MASTERCLONE "/dev/ptmx" 49b87390939c55e574c5b4c66a341d80df3863762frobbiew 50b87390939c55e574c5b4c66a341d80df3863762frobbiew#define BUFSZ 4096 51b87390939c55e574c5b4c66a341d80df3863762frobbiew 52b87390939c55e574c5b4c66a341d80df3863762frobbiew/* 53b87390939c55e574c5b4c66a341d80df3863762frobbiew * test termio/termios ioctls 54b87390939c55e574c5b4c66a341d80df3863762frobbiew */ 55354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gaoint test1(void) 56b87390939c55e574c5b4c66a341d80df3863762frobbiew{ 57b87390939c55e574c5b4c66a341d80df3863762frobbiew int masterfd, slavefd; 58b87390939c55e574c5b4c66a341d80df3863762frobbiew char *slavename; 59b87390939c55e574c5b4c66a341d80df3863762frobbiew struct termio termio; 60b87390939c55e574c5b4c66a341d80df3863762frobbiew struct termios termios; 61b87390939c55e574c5b4c66a341d80df3863762frobbiew 62b87390939c55e574c5b4c66a341d80df3863762frobbiew masterfd = open(MASTERCLONE, O_RDWR); 63b87390939c55e574c5b4c66a341d80df3863762frobbiew if (masterfd < 0) { 64354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "%s", MASTERCLONE); 65b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 66b87390939c55e574c5b4c66a341d80df3863762frobbiew } 67bdbaec51a423e715c2b03ed9e497e9a1fba6103esubrata_modak 68b87390939c55e574c5b4c66a341d80df3863762frobbiew slavename = ptsname(masterfd); 690c74e7d7d4d4484b7605c417dc0e751a39260356Garrett Cooper if (slavename == NULL) { 70354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK | TERRNO, "ptsname() call failed"); 71b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 72b87390939c55e574c5b4c66a341d80df3863762frobbiew } 73b87390939c55e574c5b4c66a341d80df3863762frobbiew 74b87390939c55e574c5b4c66a341d80df3863762frobbiew if (grantpt(masterfd) != 0) { 75354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK | TERRNO, "grantpt() call failed"); 76b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 77b87390939c55e574c5b4c66a341d80df3863762frobbiew } 78b87390939c55e574c5b4c66a341d80df3863762frobbiew 79b87390939c55e574c5b4c66a341d80df3863762frobbiew if (unlockpt(masterfd) != 0) { 80354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "unlockpt() call failed"); 81b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 82b87390939c55e574c5b4c66a341d80df3863762frobbiew } 83b87390939c55e574c5b4c66a341d80df3863762frobbiew 84b87390939c55e574c5b4c66a341d80df3863762frobbiew if ((slavefd = open(slavename, O_RDWR)) < 0) { 85354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "Could not open %s", slavename); 86b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 87b87390939c55e574c5b4c66a341d80df3863762frobbiew } 88b87390939c55e574c5b4c66a341d80df3863762frobbiew 89b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(slavefd, TCGETS, &termios) != 0) { 90354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TCGETS"); 91b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 92b87390939c55e574c5b4c66a341d80df3863762frobbiew } 93b87390939c55e574c5b4c66a341d80df3863762frobbiew 94b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(slavefd, TCSETS, &termios) != 0) { 95354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TCSETS"); 96b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 97b87390939c55e574c5b4c66a341d80df3863762frobbiew } 98b87390939c55e574c5b4c66a341d80df3863762frobbiew 99b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(slavefd, TCSETSW, &termios) != 0) { 100354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TCSETSW"); 101b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 102b87390939c55e574c5b4c66a341d80df3863762frobbiew } 103b87390939c55e574c5b4c66a341d80df3863762frobbiew 104b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(slavefd, TCSETSF, &termios) != 0) { 105354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TCSETSF"); 106b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 107b87390939c55e574c5b4c66a341d80df3863762frobbiew } 108b87390939c55e574c5b4c66a341d80df3863762frobbiew 109b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(slavefd, TCSETS, &termios) != 0) { 110354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TCSETS"); 111b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 112b87390939c55e574c5b4c66a341d80df3863762frobbiew } 113b87390939c55e574c5b4c66a341d80df3863762frobbiew 114b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(slavefd, TCGETA, &termio) != 0) { 115354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TCGETA"); 116b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 117b87390939c55e574c5b4c66a341d80df3863762frobbiew } 118b87390939c55e574c5b4c66a341d80df3863762frobbiew 119b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(slavefd, TCSETA, &termio) != 0) { 120354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TCSETA"); 121b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 122b87390939c55e574c5b4c66a341d80df3863762frobbiew } 123b87390939c55e574c5b4c66a341d80df3863762frobbiew 124b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(slavefd, TCSETAW, &termio) != 0) { 125354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TCSETAW"); 126b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 127b87390939c55e574c5b4c66a341d80df3863762frobbiew } 128b87390939c55e574c5b4c66a341d80df3863762frobbiew 129b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(slavefd, TCSETAF, &termio) != 0) { 130354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TCSETAF"); 131b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 132b87390939c55e574c5b4c66a341d80df3863762frobbiew } 133b87390939c55e574c5b4c66a341d80df3863762frobbiew 134b87390939c55e574c5b4c66a341d80df3863762frobbiew if (close(slavefd) != 0) { 135354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "close slave"); 136b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 137b87390939c55e574c5b4c66a341d80df3863762frobbiew } 138b87390939c55e574c5b4c66a341d80df3863762frobbiew 139b87390939c55e574c5b4c66a341d80df3863762frobbiew if (close(masterfd) != 0) { 140354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "close master"); 141b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 142b87390939c55e574c5b4c66a341d80df3863762frobbiew } 143354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TPASS, "test1"); 144b87390939c55e574c5b4c66a341d80df3863762frobbiew 145b87390939c55e574c5b4c66a341d80df3863762frobbiew /** NOT REACHED **/ 146bdbaec51a423e715c2b03ed9e497e9a1fba6103esubrata_modak return 0; 147b87390939c55e574c5b4c66a341d80df3863762frobbiew} 148b87390939c55e574c5b4c66a341d80df3863762frobbiew 149b87390939c55e574c5b4c66a341d80df3863762frobbiew/* 150b87390939c55e574c5b4c66a341d80df3863762frobbiew * test window size setting and getting 151b87390939c55e574c5b4c66a341d80df3863762frobbiew */ 152354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gaoint test2(void) 153b87390939c55e574c5b4c66a341d80df3863762frobbiew{ 154b87390939c55e574c5b4c66a341d80df3863762frobbiew int masterfd, slavefd; 155b87390939c55e574c5b4c66a341d80df3863762frobbiew char *slavename; 156b87390939c55e574c5b4c66a341d80df3863762frobbiew struct winsize wsz; 157354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao struct winsize wsz1 = { 24, 80, 5, 10 }; 158354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao struct winsize wsz2 = { 60, 100, 11, 777 }; 159b87390939c55e574c5b4c66a341d80df3863762frobbiew 160b87390939c55e574c5b4c66a341d80df3863762frobbiew masterfd = open(MASTERCLONE, O_RDWR); 161b87390939c55e574c5b4c66a341d80df3863762frobbiew if (masterfd < 0) { 162354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "%s", MASTERCLONE); 163b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 164b87390939c55e574c5b4c66a341d80df3863762frobbiew } 165bdbaec51a423e715c2b03ed9e497e9a1fba6103esubrata_modak 166b87390939c55e574c5b4c66a341d80df3863762frobbiew slavename = ptsname(masterfd); 1670c74e7d7d4d4484b7605c417dc0e751a39260356Garrett Cooper if (slavename == NULL) { 168354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK | TERRNO, "ptsname() call failed"); 169b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 170b87390939c55e574c5b4c66a341d80df3863762frobbiew } 171b87390939c55e574c5b4c66a341d80df3863762frobbiew 172b87390939c55e574c5b4c66a341d80df3863762frobbiew if (grantpt(masterfd) != 0) { 173354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK | TERRNO, "grantpt() call failed"); 174b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 175b87390939c55e574c5b4c66a341d80df3863762frobbiew } 176b87390939c55e574c5b4c66a341d80df3863762frobbiew 177b87390939c55e574c5b4c66a341d80df3863762frobbiew if (unlockpt(masterfd) != 0) { 178354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "unlockpt() call failed"); 179b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 180b87390939c55e574c5b4c66a341d80df3863762frobbiew } 181b87390939c55e574c5b4c66a341d80df3863762frobbiew 182b87390939c55e574c5b4c66a341d80df3863762frobbiew if ((slavefd = open(slavename, O_RDWR)) < 0) { 183354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "Could not open %s", slavename); 184b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 185b87390939c55e574c5b4c66a341d80df3863762frobbiew } 186b87390939c55e574c5b4c66a341d80df3863762frobbiew 187b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(masterfd, TIOCSWINSZ, &wsz1) != 0) { 188354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TIOCSWINSZ"); 189b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 190b87390939c55e574c5b4c66a341d80df3863762frobbiew } 191b87390939c55e574c5b4c66a341d80df3863762frobbiew 192b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(slavefd, TIOCGWINSZ, &wsz) != 0) { 193354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TIOCGWINSZ"); 194b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 195b87390939c55e574c5b4c66a341d80df3863762frobbiew } 196b87390939c55e574c5b4c66a341d80df3863762frobbiew 197b87390939c55e574c5b4c66a341d80df3863762frobbiew if (wsz.ws_row != wsz1.ws_row || wsz.ws_col != wsz1.ws_col || 198b87390939c55e574c5b4c66a341d80df3863762frobbiew wsz.ws_xpixel != wsz1.ws_xpixel || 199b87390939c55e574c5b4c66a341d80df3863762frobbiew wsz.ws_ypixel != wsz1.ws_ypixel) { 200b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_resm(TFAIL, "unexpected window size returned"); 201b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 202b87390939c55e574c5b4c66a341d80df3863762frobbiew } 203b87390939c55e574c5b4c66a341d80df3863762frobbiew 204b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(masterfd, TIOCGWINSZ, &wsz) != 0) { 205354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TIOCGWINSZ"); 206b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 207b87390939c55e574c5b4c66a341d80df3863762frobbiew } 208b87390939c55e574c5b4c66a341d80df3863762frobbiew 209b87390939c55e574c5b4c66a341d80df3863762frobbiew if (wsz.ws_row != wsz1.ws_row || wsz.ws_col != wsz1.ws_col || 210b87390939c55e574c5b4c66a341d80df3863762frobbiew wsz.ws_xpixel != wsz1.ws_xpixel || 211b87390939c55e574c5b4c66a341d80df3863762frobbiew wsz.ws_ypixel != wsz1.ws_ypixel) { 212cff4af016805c764c391c473d4c95b999dcdf148vapier tst_resm(TFAIL, "unexpected window size returned"); 213b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 214b87390939c55e574c5b4c66a341d80df3863762frobbiew } 215b87390939c55e574c5b4c66a341d80df3863762frobbiew 216b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(slavefd, TIOCSWINSZ, &wsz2) != 0) { 217354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TIOCSWINSZ"); 218b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 219b87390939c55e574c5b4c66a341d80df3863762frobbiew } 220b87390939c55e574c5b4c66a341d80df3863762frobbiew 221b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(slavefd, TIOCGWINSZ, &wsz) != 0) { 222354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TIOCGWINSZ"); 223b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 224b87390939c55e574c5b4c66a341d80df3863762frobbiew } 225b87390939c55e574c5b4c66a341d80df3863762frobbiew 226b87390939c55e574c5b4c66a341d80df3863762frobbiew if (wsz.ws_row != wsz2.ws_row || wsz.ws_col != wsz2.ws_col || 227b87390939c55e574c5b4c66a341d80df3863762frobbiew wsz.ws_xpixel != wsz2.ws_xpixel || 228b87390939c55e574c5b4c66a341d80df3863762frobbiew wsz.ws_ypixel != wsz2.ws_ypixel) { 229cff4af016805c764c391c473d4c95b999dcdf148vapier tst_resm(TFAIL, "unexpected window size returned"); 230b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 231b87390939c55e574c5b4c66a341d80df3863762frobbiew } 232b87390939c55e574c5b4c66a341d80df3863762frobbiew 233b87390939c55e574c5b4c66a341d80df3863762frobbiew if (close(slavefd) != 0) { 234354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "close"); 235b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 236b87390939c55e574c5b4c66a341d80df3863762frobbiew } 237b87390939c55e574c5b4c66a341d80df3863762frobbiew 238b87390939c55e574c5b4c66a341d80df3863762frobbiew if (close(masterfd) != 0) { 239354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "close"); 240b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 241b87390939c55e574c5b4c66a341d80df3863762frobbiew } 242354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TPASS, "test2"); 243b87390939c55e574c5b4c66a341d80df3863762frobbiew 244b87390939c55e574c5b4c66a341d80df3863762frobbiew /** NOT REACHED **/ 245bdbaec51a423e715c2b03ed9e497e9a1fba6103esubrata_modak return 0; 246b87390939c55e574c5b4c66a341d80df3863762frobbiew} 247b87390939c55e574c5b4c66a341d80df3863762frobbiew 248b87390939c55e574c5b4c66a341d80df3863762frobbiew/* 249b87390939c55e574c5b4c66a341d80df3863762frobbiew * test sending a break 250b87390939c55e574c5b4c66a341d80df3863762frobbiew */ 251354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gaoint test3(void) 252b87390939c55e574c5b4c66a341d80df3863762frobbiew{ 253b87390939c55e574c5b4c66a341d80df3863762frobbiew int masterfd, slavefd; 254b87390939c55e574c5b4c66a341d80df3863762frobbiew char *slavename; 255b87390939c55e574c5b4c66a341d80df3863762frobbiew 256b87390939c55e574c5b4c66a341d80df3863762frobbiew masterfd = open(MASTERCLONE, O_RDWR); 257b87390939c55e574c5b4c66a341d80df3863762frobbiew if (masterfd < 0) { 258354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "%s", MASTERCLONE); 259b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 260b87390939c55e574c5b4c66a341d80df3863762frobbiew } 261bdbaec51a423e715c2b03ed9e497e9a1fba6103esubrata_modak 262b87390939c55e574c5b4c66a341d80df3863762frobbiew slavename = ptsname(masterfd); 2630c74e7d7d4d4484b7605c417dc0e751a39260356Garrett Cooper if (slavename == NULL) { 264354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK | TERRNO, "ptsname() call failed"); 265b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 266b87390939c55e574c5b4c66a341d80df3863762frobbiew } 267b87390939c55e574c5b4c66a341d80df3863762frobbiew 268b87390939c55e574c5b4c66a341d80df3863762frobbiew if (grantpt(masterfd) != 0) { 269354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK | TERRNO, "grantpt() call failed"); 270b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 271b87390939c55e574c5b4c66a341d80df3863762frobbiew } 272b87390939c55e574c5b4c66a341d80df3863762frobbiew 273b87390939c55e574c5b4c66a341d80df3863762frobbiew if (unlockpt(masterfd) != 0) { 274354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "unlockpt() call failed"); 275b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 276b87390939c55e574c5b4c66a341d80df3863762frobbiew } 277b87390939c55e574c5b4c66a341d80df3863762frobbiew 278b87390939c55e574c5b4c66a341d80df3863762frobbiew if ((slavefd = open(slavename, O_RDWR)) < 0) { 279354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "Could not open %s", slavename); 280b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 281b87390939c55e574c5b4c66a341d80df3863762frobbiew } 282b87390939c55e574c5b4c66a341d80df3863762frobbiew 283b87390939c55e574c5b4c66a341d80df3863762frobbiew if (tcsendbreak(masterfd, 10) != 0) { 284354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "tcsendbreak"); 285b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 286b87390939c55e574c5b4c66a341d80df3863762frobbiew } 287b87390939c55e574c5b4c66a341d80df3863762frobbiew 288b87390939c55e574c5b4c66a341d80df3863762frobbiew if (tcsendbreak(slavefd, 10) != 0) { 289354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "tcsendbreak"); 290b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 291b87390939c55e574c5b4c66a341d80df3863762frobbiew } 292b87390939c55e574c5b4c66a341d80df3863762frobbiew 293b87390939c55e574c5b4c66a341d80df3863762frobbiew if (close(slavefd) != 0) { 294354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "close slave"); 295b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 296b87390939c55e574c5b4c66a341d80df3863762frobbiew } 297b87390939c55e574c5b4c66a341d80df3863762frobbiew 298b87390939c55e574c5b4c66a341d80df3863762frobbiew if (close(masterfd) != 0) { 299354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "close master"); 300b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 301b87390939c55e574c5b4c66a341d80df3863762frobbiew } 302354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TPASS, "test3"); 303b87390939c55e574c5b4c66a341d80df3863762frobbiew 304b87390939c55e574c5b4c66a341d80df3863762frobbiew /** NOT REACHED **/ 305bdbaec51a423e715c2b03ed9e497e9a1fba6103esubrata_modak return 0; 306b87390939c55e574c5b4c66a341d80df3863762frobbiew} 307b87390939c55e574c5b4c66a341d80df3863762frobbiew 308b87390939c55e574c5b4c66a341d80df3863762frobbiew/* 309b87390939c55e574c5b4c66a341d80df3863762frobbiew * test multiple opens of slave side 310b87390939c55e574c5b4c66a341d80df3863762frobbiew */ 311354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gaoint test4(void) 312b87390939c55e574c5b4c66a341d80df3863762frobbiew{ 313b87390939c55e574c5b4c66a341d80df3863762frobbiew int masterfd, slavefd, slavefd2, slavefd3; 314b87390939c55e574c5b4c66a341d80df3863762frobbiew char *slavename; 315b87390939c55e574c5b4c66a341d80df3863762frobbiew 316b87390939c55e574c5b4c66a341d80df3863762frobbiew masterfd = open(MASTERCLONE, O_RDWR); 317b87390939c55e574c5b4c66a341d80df3863762frobbiew if (masterfd < 0) { 318354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "%s", MASTERCLONE); 319b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 320b87390939c55e574c5b4c66a341d80df3863762frobbiew } 321b87390939c55e574c5b4c66a341d80df3863762frobbiew 322b87390939c55e574c5b4c66a341d80df3863762frobbiew slavename = ptsname(masterfd); 3230c74e7d7d4d4484b7605c417dc0e751a39260356Garrett Cooper if (slavename == NULL) { 324354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK | TERRNO, "ptsname() call failed"); 325b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 326b87390939c55e574c5b4c66a341d80df3863762frobbiew } 327b87390939c55e574c5b4c66a341d80df3863762frobbiew 328b87390939c55e574c5b4c66a341d80df3863762frobbiew if (grantpt(masterfd) != 0) { 329354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK | TERRNO, "grantpt() call failed"); 330b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 331b87390939c55e574c5b4c66a341d80df3863762frobbiew } 332b87390939c55e574c5b4c66a341d80df3863762frobbiew 333b87390939c55e574c5b4c66a341d80df3863762frobbiew if (unlockpt(masterfd) != 0) { 334354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "unlockpt() call failed"); 335b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 336b87390939c55e574c5b4c66a341d80df3863762frobbiew } 337b87390939c55e574c5b4c66a341d80df3863762frobbiew 338b87390939c55e574c5b4c66a341d80df3863762frobbiew if ((slavefd = open(slavename, O_RDWR)) < 0) { 339354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "Could not open %s", slavename); 340b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 341b87390939c55e574c5b4c66a341d80df3863762frobbiew } 342b87390939c55e574c5b4c66a341d80df3863762frobbiew 343b87390939c55e574c5b4c66a341d80df3863762frobbiew if ((slavefd2 = open(slavename, O_RDWR)) < 0) { 344354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "Could not open %s (again)", slavename); 345b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 346b87390939c55e574c5b4c66a341d80df3863762frobbiew } 347b87390939c55e574c5b4c66a341d80df3863762frobbiew 348b87390939c55e574c5b4c66a341d80df3863762frobbiew if ((slavefd3 = open(slavename, O_RDWR)) < 0) { 349354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "Could not open %s (once more)", slavename); 350b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 351b87390939c55e574c5b4c66a341d80df3863762frobbiew } 352b87390939c55e574c5b4c66a341d80df3863762frobbiew 353b87390939c55e574c5b4c66a341d80df3863762frobbiew if (close(slavefd) != 0) { 354354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "close slave"); 355b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 356b87390939c55e574c5b4c66a341d80df3863762frobbiew } 357b87390939c55e574c5b4c66a341d80df3863762frobbiew if (close(slavefd2) != 0) { 358354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "close slave again"); 359b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 360b87390939c55e574c5b4c66a341d80df3863762frobbiew } 361b87390939c55e574c5b4c66a341d80df3863762frobbiew if (close(slavefd3) != 0) { 362354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "close slave once more"); 363b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 364b87390939c55e574c5b4c66a341d80df3863762frobbiew } 365b87390939c55e574c5b4c66a341d80df3863762frobbiew if (close(masterfd) != 0) { 366354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "close master"); 367b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 368b87390939c55e574c5b4c66a341d80df3863762frobbiew } 369354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TPASS, "test4"); 370b87390939c55e574c5b4c66a341d80df3863762frobbiew 371b87390939c55e574c5b4c66a341d80df3863762frobbiew /** NOT REACHED **/ 37243337a3cf6f8809647cf9fc6c0054241f44b1fb1subrata_modak return 0; 373b87390939c55e574c5b4c66a341d80df3863762frobbiew} 374b87390939c55e574c5b4c66a341d80df3863762frobbiew 375b87390939c55e574c5b4c66a341d80df3863762frobbiew#define NUMOPENS 6 376b87390939c55e574c5b4c66a341d80df3863762frobbiew 377b87390939c55e574c5b4c66a341d80df3863762frobbiew/* 378b87390939c55e574c5b4c66a341d80df3863762frobbiew * test several simultaneous opens 379b87390939c55e574c5b4c66a341d80df3863762frobbiew */ 380354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gaoint test5(void) 381b87390939c55e574c5b4c66a341d80df3863762frobbiew{ 382b87390939c55e574c5b4c66a341d80df3863762frobbiew static int masterfd[NUMOPENS]; 383b87390939c55e574c5b4c66a341d80df3863762frobbiew static int slavefd[NUMOPENS]; 384b87390939c55e574c5b4c66a341d80df3863762frobbiew char *slavename; 385b87390939c55e574c5b4c66a341d80df3863762frobbiew int i; 386b87390939c55e574c5b4c66a341d80df3863762frobbiew 387b87390939c55e574c5b4c66a341d80df3863762frobbiew for (i = 0; i < NUMOPENS; ++i) { 388b87390939c55e574c5b4c66a341d80df3863762frobbiew masterfd[i] = open(MASTERCLONE, O_RDWR); 389b87390939c55e574c5b4c66a341d80df3863762frobbiew if (masterfd[i] < 0) { 390354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "%s", MASTERCLONE); 391b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_resm(TBROK, "out of ptys"); 392b87390939c55e574c5b4c66a341d80df3863762frobbiew for (i = 0; i < NUMOPENS; ++i) { 393b87390939c55e574c5b4c66a341d80df3863762frobbiew if (masterfd[i] != 0) { 394354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao (void)close(masterfd[i]); 395b87390939c55e574c5b4c66a341d80df3863762frobbiew } 396b87390939c55e574c5b4c66a341d80df3863762frobbiew if (slavefd[i] != 0) { 397354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao (void)close(slavefd[i]); 398b87390939c55e574c5b4c66a341d80df3863762frobbiew } 399b87390939c55e574c5b4c66a341d80df3863762frobbiew } 400b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 401b87390939c55e574c5b4c66a341d80df3863762frobbiew } 402b87390939c55e574c5b4c66a341d80df3863762frobbiew 403b87390939c55e574c5b4c66a341d80df3863762frobbiew slavename = ptsname(masterfd[i]); 4040c74e7d7d4d4484b7605c417dc0e751a39260356Garrett Cooper if (slavename == NULL) { 405354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK | TERRNO, "ptsname() call failed"); 406b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 407b87390939c55e574c5b4c66a341d80df3863762frobbiew } 408b87390939c55e574c5b4c66a341d80df3863762frobbiew 409b87390939c55e574c5b4c66a341d80df3863762frobbiew if (grantpt(masterfd[i]) != 0) { 410354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK | TERRNO, "grantpt() call failed"); 411b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 412b87390939c55e574c5b4c66a341d80df3863762frobbiew } 413b87390939c55e574c5b4c66a341d80df3863762frobbiew 414b87390939c55e574c5b4c66a341d80df3863762frobbiew if (unlockpt(masterfd[i]) != 0) { 415354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "unlockpt() call failed"); 416b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 417b87390939c55e574c5b4c66a341d80df3863762frobbiew } 418b87390939c55e574c5b4c66a341d80df3863762frobbiew 419b87390939c55e574c5b4c66a341d80df3863762frobbiew if ((slavefd[i] = open(slavename, O_RDWR)) < 0) { 420354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "Iteration %d: Could not open %s", i, 421354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao slavename); 422b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 423b87390939c55e574c5b4c66a341d80df3863762frobbiew } 424b87390939c55e574c5b4c66a341d80df3863762frobbiew 425b87390939c55e574c5b4c66a341d80df3863762frobbiew } 426b87390939c55e574c5b4c66a341d80df3863762frobbiew 427b87390939c55e574c5b4c66a341d80df3863762frobbiew for (i = 0; i < NUMOPENS; ++i) { 428b87390939c55e574c5b4c66a341d80df3863762frobbiew if (close(slavefd[i]) != 0) { 429354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "Iteration %d: close slave", i); 430b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 431b87390939c55e574c5b4c66a341d80df3863762frobbiew } 432b87390939c55e574c5b4c66a341d80df3863762frobbiew if (close(masterfd[i]) != 0) { 433354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "close master"); 434b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 435b87390939c55e574c5b4c66a341d80df3863762frobbiew } 436b87390939c55e574c5b4c66a341d80df3863762frobbiew } 437354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TPASS, "test5"); 438b87390939c55e574c5b4c66a341d80df3863762frobbiew 439b87390939c55e574c5b4c66a341d80df3863762frobbiew /** NOT REACHED **/ 44043337a3cf6f8809647cf9fc6c0054241f44b1fb1subrata_modak return 0; 441b87390939c55e574c5b4c66a341d80df3863762frobbiew} 442b87390939c55e574c5b4c66a341d80df3863762frobbiew 443b87390939c55e574c5b4c66a341d80df3863762frobbiew/* 444b87390939c55e574c5b4c66a341d80df3863762frobbiew * test hangup semantics 445b87390939c55e574c5b4c66a341d80df3863762frobbiew */ 446354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gaoint test6(void) 447b87390939c55e574c5b4c66a341d80df3863762frobbiew{ 448b87390939c55e574c5b4c66a341d80df3863762frobbiew static int masterfd; 449b87390939c55e574c5b4c66a341d80df3863762frobbiew static int slavefd; 450b87390939c55e574c5b4c66a341d80df3863762frobbiew char *slavename; 451b87390939c55e574c5b4c66a341d80df3863762frobbiew struct termios termios; 452b87390939c55e574c5b4c66a341d80df3863762frobbiew 453b87390939c55e574c5b4c66a341d80df3863762frobbiew masterfd = open(MASTERCLONE, O_RDWR); 454b87390939c55e574c5b4c66a341d80df3863762frobbiew if (masterfd < 0) { 455354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "%s", MASTERCLONE); 456b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 457b87390939c55e574c5b4c66a341d80df3863762frobbiew } 458b87390939c55e574c5b4c66a341d80df3863762frobbiew 459b87390939c55e574c5b4c66a341d80df3863762frobbiew slavename = ptsname(masterfd); 4600c74e7d7d4d4484b7605c417dc0e751a39260356Garrett Cooper if (slavename == NULL) { 461354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK | TERRNO, "ptsname() call failed"); 462b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 463b87390939c55e574c5b4c66a341d80df3863762frobbiew } 464bdbaec51a423e715c2b03ed9e497e9a1fba6103esubrata_modak 465b87390939c55e574c5b4c66a341d80df3863762frobbiew if (grantpt(masterfd) != 0) { 466354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK | TERRNO, "grantpt() call failed"); 467b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 468b87390939c55e574c5b4c66a341d80df3863762frobbiew } 469bdbaec51a423e715c2b03ed9e497e9a1fba6103esubrata_modak 470b87390939c55e574c5b4c66a341d80df3863762frobbiew if (unlockpt(masterfd) != 0) { 471354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "unlockpt() call failed"); 472b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 473b87390939c55e574c5b4c66a341d80df3863762frobbiew } 474bdbaec51a423e715c2b03ed9e497e9a1fba6103esubrata_modak 475b87390939c55e574c5b4c66a341d80df3863762frobbiew if ((slavefd = open(slavename, O_RDWR)) < 0) { 476354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "Could not open %s", slavename); 477b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 478b87390939c55e574c5b4c66a341d80df3863762frobbiew } 479b87390939c55e574c5b4c66a341d80df3863762frobbiew 480b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(slavefd, TCGETS, &termios) != 0) { 481354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TCGETS"); 482b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 483b87390939c55e574c5b4c66a341d80df3863762frobbiew } 484b87390939c55e574c5b4c66a341d80df3863762frobbiew 485b87390939c55e574c5b4c66a341d80df3863762frobbiew termios.c_cflag &= ~CBAUD; 486354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao termios.c_cflag |= B0 & CBAUD; 487b87390939c55e574c5b4c66a341d80df3863762frobbiew if (ioctl(slavefd, TCSETS, &termios) != 0) { 488354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TFAIL, "TCGETS"); 489b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 490b87390939c55e574c5b4c66a341d80df3863762frobbiew } 491b87390939c55e574c5b4c66a341d80df3863762frobbiew 492b87390939c55e574c5b4c66a341d80df3863762frobbiew if (close(slavefd) != 0) { 493354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "close"); 494b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 495b87390939c55e574c5b4c66a341d80df3863762frobbiew } 496b87390939c55e574c5b4c66a341d80df3863762frobbiew if (close(masterfd) != 0) { 497354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TBROK, "close"); 498b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 499b87390939c55e574c5b4c66a341d80df3863762frobbiew } 500354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao tst_resm(TPASS, "test6"); 501b87390939c55e574c5b4c66a341d80df3863762frobbiew 502b87390939c55e574c5b4c66a341d80df3863762frobbiew /** NOT REACHED **/ 50343337a3cf6f8809647cf9fc6c0054241f44b1fb1subrata_modak return 0; 504b87390939c55e574c5b4c66a341d80df3863762frobbiew} 505b87390939c55e574c5b4c66a341d80df3863762frobbiew 506b87390939c55e574c5b4c66a341d80df3863762frobbiew/* 507b87390939c55e574c5b4c66a341d80df3863762frobbiew * main test driver 508b87390939c55e574c5b4c66a341d80df3863762frobbiew */ 509354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gaoint main(int argc, char **argv) 510b87390939c55e574c5b4c66a341d80df3863762frobbiew{ 511b87390939c55e574c5b4c66a341d80df3863762frobbiew test1(); 512b87390939c55e574c5b4c66a341d80df3863762frobbiew test2(); 513b87390939c55e574c5b4c66a341d80df3863762frobbiew test3(); 514b87390939c55e574c5b4c66a341d80df3863762frobbiew test4(); 515b87390939c55e574c5b4c66a341d80df3863762frobbiew test5(); 516b87390939c55e574c5b4c66a341d80df3863762frobbiew test6(); 517b87390939c55e574c5b4c66a341d80df3863762frobbiew /* 518354ebb48db8e66a853a58379a4808d5dcd1ceac3Wanlong Gao * all done 519b87390939c55e574c5b4c66a341d80df3863762frobbiew */ 520b87390939c55e574c5b4c66a341d80df3863762frobbiew tst_exit(); 5212c28215423293e443469a07ae7011135d058b671Garrett Cooper 5222c28215423293e443469a07ae7011135d058b671Garrett Cooper tst_exit(); 523ec6edca7aa42b6affd989ef91b5897f96795e40fChris Dearman} 524