Procházet zdrojové kódy

Don't build ttyemu and run tty I/O test if grantpt is not available.

* configure.ac (TAR_COND_GRANTPT): Define conditional depending
on whether grantpt is available.
* gnulib.modules: Remove grantpt. It relies upon a helper binary
pt_chown which it installs and which is useless in the testsuite.
* tests/Makefile.am [TAR_COND_GRANTPT]: Build ttyemu
* tests/iotty.at: Skip test if ttyemu is not build.
* tests/ttyemu.c (noecho): Fix error message
(main): Use TIOCSCTTY if it is defined.
Sergey Poznyakoff před 10 roky
rodič
revize
a5db4ba5cb
5 změnil soubory, kde provedl 11 přidání a 5 odebrání
  1. 2 1
      configure.ac
  2. 0 1
      gnulib.modules
  3. 5 1
      tests/Makefile.am
  4. 1 0
      tests/iotty.at
  5. 3 2
      tests/ttyemu.c

+ 2 - 1
configure.ac

@@ -204,7 +204,8 @@ fi
 
 TAR_HEADERS_ATTR_XATTR_H
 
-AC_CHECK_FUNCS_ONCE([fchmod fchown fsync lstat mkfifo readlink symlink])
+AC_CHECK_FUNCS_ONCE([fchmod fchown fsync lstat mkfifo readlink symlink grantpt])
+AM_CONDITIONAL([TAR_COND_GRANTPT], [test $ac_cv_func_grantpt = yes])
 
 AC_CHECK_DECLS([getgrgid],,, [#include <grp.h>])
 AC_CHECK_DECLS([getpwuid],,, [#include <pwd.h>])

+ 0 - 1
gnulib.modules

@@ -50,7 +50,6 @@ getpagesize
 gettext
 gettime
 gitlog-to-changelog
-grantpt
 hash
 human
 inttostr

+ 5 - 1
tests/Makefile.am

@@ -263,7 +263,11 @@ installcheck-local:
 ## genfile      ##
 ## ------------ ##
 
-check_PROGRAMS = genfile ttyemu
+check_PROGRAMS = genfile
+
+if TAR_COND_GRANTPT
+check_PROGRAMS += ttyemu
+endif
 
 genfile_SOURCES = genfile.c argcv.c argcv.h
 

+ 1 - 0
tests/iotty.at

@@ -27,6 +27,7 @@ AT_SETUP([terminal input])
 AT_KEYWORDS([options iotty])
 
 AT_TAR_CHECK([
+test -x $abs_builddir/ttyemu || AT_SKIP_TEST
 TAPE=-
 export TAPE
 ttyemu -t5 -i/dev/null tar -x

+ 3 - 2
tests/ttyemu.c

@@ -188,7 +188,7 @@ noecho (int fd)
   to.c_cc[VEOF] = C_EOT;
   if (tcsetattr (fd, TCSAFLUSH | TCSASOFT, &to))
     {
-      perror ("tcgetattr");
+      perror ("tcsetattr");
       exit (EX_ERR);
     }
 }
@@ -349,8 +349,9 @@ main (int argc, char **argv)
 	close (i);
 
       setsid ();
+#ifdef TIOCSCTTY
       ioctl (0, TIOCSCTTY, 1);
-      
+#endif      
       execvp (argv[0], argv);
       perror (argv[0]);
       _exit (EX_EXEC);