~ubuntu-branches/ubuntu/oneiric/libvirt/oneiric-updates

« back to all changes in this revision

Viewing changes to gnulib/tests/test-pipe2.c

  • Committer: Package Import Robot
  • Author(s): Serge Hallyn
  • Date: 2011-05-11 12:29:51 UTC
  • mfrom: (1.2.10) (3.4.30 sid)
  • Revision ID: package-import@ubuntu.com-20110511122951-ku5fk1tv37o5aymm
Tags: 0.9.1-1ubuntu1
* Resynchronize and merge from Debian unstable (LP: #794378). Remaining
  changes:
  - debian/control:
    * set X-Python-Version to 2.7, as 2.6 is not in oneiric.
    * set ubuntu maintainer
    * Build-Depends:
      - remove [linux-any] from all dependencies
      - remove [!linux-any] deps
      - swap libxen to libxen3, qemu to qemu-kvm, and open-iscsi to
        open-iscsi-utils in Build-Depends
      - remove virtualbox-ose Build-Depends
      - add parted and libapparmor-dev Build-Depends
    * convert Vcs-Git to Xs-Debian-Vcs-Git
    * libvirt-bin Depends: move netcat-openbsd, bridge-utils, dnsmasq-base
      (>= 2.46-1), and iptables from Recommends to Depends
    * libvirt-bin Recommends: move qemu to Suggests
    * libvirt-bin Suggests: add apparmor
    * libvirt0 Recommands: move lvm2 to Suggests
  - keep debian/libvirt-bin.apport
  - keep debian/libvirt-bin.cron.daily
  - debian/libvirt-bin.dirs:
    * add apparmor, cron.daily, and apport dirs
  - debian/libvirt-bin.examples:
    * add debian/libvirt-suspendonreboot
  - debian/libvirt-bin.install:
    * add /etc/apparmor.d files
    * add apport hook
  - debian/libvirt-bin.manpages:
    * add debian/libvirt-migrate-qemu-disks.1
  - debian/libvirt-bin.postinst:
    * replace libvirt groupname with libvirtd
    * add each admin user to libvirtd group
    * call apparmor_parser on usr.sbin.libvirtd and
      usr.lib.libvirt.virt-aa-helper
    * call 'libvirt-migrate-qemu-disks -a' after
      libvirt-bin has started if migrating from
      older than 0.8.3-1ubuntu1
  - debian/libvirt-bin.postrm:
    * replace libvirt groupname with libvirtd
    * remove usr.sbin.libvirtd and
      usr.lib.libvirt.virt-aa-helper
  - keep added files under debian/:
    * libvirt-bin.upstart
    * libvirt-migrate-qemu-disks
    * libvirt-migrate-qemu-disks.1
    * libvirt-suspendonreboot
    * apparmor profiles
  - debian/README.Debian:
    * add 'Apparmor Profile' section
    * add 'Disk migration' section
  - debian/rules:
    * move include of debhelper.mk to top of file so DEB_HOST_ARCH_OS
      is defined.
    * don't build with vbox since virtualbox-ose is in universe
      - remove WITH_VBOX, add explicit --without-vbox
    * add --with-apparmor to DEB_CONFIGURE_EXTRA_FLAGS
    * set DEB_DH_INSTALLINIT_ARGS to '--upstart-only'
    * remove unneeded binary-install/libvirt-bin:: and clean::
      sections (they only deal with sysvinit stuff)
    * add build/libvirt-bin:: section to install
      - apparmor files
      - apport hooks
      - libvirt-migrate-qemu-disks
* debian/patches/series:
  - don't apply Disable-CHECKSUM-rule.patch: our iptables can do this
  - don't apply Debian-specific Debianize-libvirt-guests.patch (sysvinit only)
  - don't apply Disable qemu-disable-network.diff.patch
* debian/patches:
  - drop 9007-fix-daemon-conf-ftbfs.patch (looks like it may be fixed)
  - drop patches applied upstream:
    * 9022-drop-booton-when-kernel-specified.patch
    * 9023-fix-lxc-console-hangup.patch
    * 9024-fix-broken-commandtest.patch
    * 9025-Pass-virSecurityManagerPtr-to-virSecurityDAC-Set-Res.patch
    * 9026-security-avoid-memory-leak.patch
    * 9027-CVE-2011-1146.patch
  - keep patches:
    * 9000-delayed_iff_up_bridge.patch
    * 9001-dont_clobber_existing_bridges.patch
    * 9002-better_default_uri_virsh.patch
    * 9003-better-default-arch.patch
    * 9004-libvirtd-group-name.patch
    * 9005-increase-unix-socket-timeout.patch
    * 9006-default-config-test-case.patch
    * 9011-move-ebtables-script.patch (refreshed)
    * 9014-skip-nodeinfotest.patch (modified to make it apply)
    * 9020-lp545795.patch (modified to make it still apply)
    * 9021-fix-uint64_t.patch
    * 9022-allows-lxc-containers-with-lxcguest.patch (renamed, modified
      to make it still apply, and added DEP-3 tags).
  - new patches:
    * 9023-disable-test-poll.patch - don't run broken test-poll

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* -*- buffer-read-only: t -*- vi: set ro: */
 
2
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 
3
/* Test of pipe2.
 
4
   Copyright (C) 2009-2011 Free Software Foundation, Inc.
 
5
 
 
6
   This program is free software; you can redistribute it and/or modify
 
7
   it under the terms of the GNU General Public License as published by
 
8
   the Free Software Foundation; either version 3, or (at your option)
 
9
   any later version.
 
10
 
 
11
   This program is distributed in the hope that it will be useful,
 
12
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
   GNU General Public License for more details.
 
15
 
 
16
   You should have received a copy of the GNU General Public License
 
17
   along with this program; if not, write to the Free Software Foundation,
 
18
   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
19
 
 
20
#include <config.h>
 
21
 
 
22
#include <unistd.h>
 
23
 
 
24
#include "signature.h"
 
25
SIGNATURE_CHECK (pipe2, int, (int[2], int));
 
26
 
 
27
#include <fcntl.h>
 
28
#include <stdbool.h>
 
29
 
 
30
#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 
31
/* Get declarations of the Win32 API functions.  */
 
32
# define WIN32_LEAN_AND_MEAN
 
33
# include <windows.h>
 
34
#endif
 
35
 
 
36
#include "binary-io.h"
 
37
#include "macros.h"
 
38
#include "nonblocking.h"
 
39
 
 
40
/* Return true if FD is open.  */
 
41
static bool
 
42
is_open (int fd)
 
43
{
 
44
#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 
45
  /* On Win32, the initial state of unassigned standard file
 
46
     descriptors is that they are open but point to an
 
47
     INVALID_HANDLE_VALUE, and there is no fcntl.  */
 
48
  return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE;
 
49
#else
 
50
# ifndef F_GETFL
 
51
#  error Please port fcntl to your platform
 
52
# endif
 
53
  return 0 <= fcntl (fd, F_GETFL);
 
54
#endif
 
55
}
 
56
 
 
57
/* Return true if FD is not inherited to child processes.  */
 
58
static bool
 
59
is_cloexec (int fd)
 
60
{
 
61
#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 
62
  HANDLE h = (HANDLE) _get_osfhandle (fd);
 
63
  DWORD flags;
 
64
  ASSERT (GetHandleInformation (h, &flags));
 
65
  return (flags & HANDLE_FLAG_INHERIT) == 0;
 
66
#else
 
67
  int flags;
 
68
  ASSERT ((flags = fcntl (fd, F_GETFD)) >= 0);
 
69
  return (flags & FD_CLOEXEC) != 0;
 
70
#endif
 
71
}
 
72
 
 
73
int
 
74
main ()
 
75
{
 
76
  int use_nonblocking;
 
77
  int use_cloexec;
 
78
 
 
79
  for (use_nonblocking = 0; use_nonblocking <= 1; use_nonblocking++)
 
80
    for (use_cloexec = 0; use_cloexec <= !!O_CLOEXEC; use_cloexec++)
 
81
      {
 
82
        int o_flags;
 
83
        int fd[2];
 
84
 
 
85
        o_flags = 0;
 
86
        if (use_nonblocking)
 
87
          o_flags |= O_NONBLOCK;
 
88
        if (use_cloexec)
 
89
          o_flags |= O_CLOEXEC;
 
90
 
 
91
        fd[0] = -1;
 
92
        fd[1] = -1;
 
93
        ASSERT (pipe2 (fd, o_flags) >= 0);
 
94
        ASSERT (fd[0] >= 0);
 
95
        ASSERT (fd[1] >= 0);
 
96
        ASSERT (fd[0] != fd[1]);
 
97
        ASSERT (is_open (fd[0]));
 
98
        ASSERT (is_open (fd[1]));
 
99
        if (use_cloexec)
 
100
          {
 
101
            ASSERT (is_cloexec (fd[0]));
 
102
            ASSERT (is_cloexec (fd[1]));
 
103
          }
 
104
        else
 
105
          {
 
106
            ASSERT (!is_cloexec (fd[0]));
 
107
            ASSERT (!is_cloexec (fd[1]));
 
108
          }
 
109
        if (use_nonblocking)
 
110
          {
 
111
            ASSERT (get_nonblocking_flag (fd[0]) == 1);
 
112
            ASSERT (get_nonblocking_flag (fd[1]) == 1);
 
113
          }
 
114
        else
 
115
          {
 
116
            ASSERT (get_nonblocking_flag (fd[0]) == 0);
 
117
            ASSERT (get_nonblocking_flag (fd[1]) == 0);
 
118
          }
 
119
 
 
120
        ASSERT (close (fd[0]) == 0);
 
121
        ASSERT (close (fd[1]) == 0);
 
122
      }
 
123
 
 
124
  return 0;
 
125
}