183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh# Helper script for test_tempfile.py.  argv[2] is the number of a file
283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh# descriptor which should _not_ be open.  Check this by attempting to
383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh# write to it -- if we succeed, something is wrong.
483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehimport sys
683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehimport os
783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehverbose = (sys.argv[1] == 'v')
983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehtry:
1083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    fd = int(sys.argv[2])
1183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
1283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    try:
1383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        os.write(fd, "blat")
1483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    except os.error:
1583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        # Success -- could not write to fd.
1683760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        sys.exit(0)
1783760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    else:
1883760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        if verbose:
1983760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh            sys.stderr.write("fd %d is open in child" % fd)
2083760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        sys.exit(1)
2183760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh
2283760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsiehexcept StandardError:
2383760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    if verbose:
2483760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh        raise
2583760d213fb3bec7b4117d266fcfbf6fe2ba14abAndrew Hsieh    sys.exit(1)
26