This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: test_ioctl fails
Type: Stage:
Components: None Versions: Python 2.3
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: georg.brandl, mdavidoff, mwh, quiver, zooko
Priority: normal Keywords:

Created on 2003-07-25 23:25 by zooko, last changed 2022-04-10 16:10 by admin. This issue is now closed.

Messages (12)
msg17346 - (view) Author: Zooko O'Whielacronx (zooko) Date: 2003-07-25 23:25
test_ioctl
test test_ioctl failed -- errors occurred in
test.test_ioctl.IoctlTests

...
223 tests OK.
1 test failed:
    test_ioctl
31 tests skipped:
    test_aepack test_al test_bsddb185 test_bsddb3
test_bz2 test_cd
    test_cl test_curses test_dbm test_email_codecs
test_gdbm test_gl
    test_imgfile test_linuxaudiodev test_locale test_macfs
    test_macostools test_nis test_normalization
test_ossaudiodev
    test_pep277 test_plistlib test_scriptpackages
test_socket_ssl
    test_socketserver test_sunaudiodev test_timeout
test_unicode_file
    test_urllibnet test_winreg test_winsound
4 skips unexpected on linux2:
    test_dbm test_bz2 test_gdbm test_locale
make: *** [test] Error 1


My system:
 * Python from CVS: Python 2.3c1 (#1, Jul 23 2003,
08:31:24) 
 * Debian testing/unstable
 * Linux pion 2.4.21 #1 Sat Jul 19 10:21:24 EDT 2003
i686 unknown unknown GNU/Linux
 * gcc (GCC) 3.3.1 20030626 (Debian prerelease)
 * AMD Athlon XP 1600+
msg17347 - (view) Author: Zooko O'Whielacronx (zooko) Date: 2003-07-25 23:33
Logged In: YES 
user_id=52562

The stuff I posted when I opened this bug report was all
from running "make test".  I have now discovered the
"regrtest.py" file and am experimenting with it.  -s doesn't
seem to work for test_ioctl.py:

HACK pion:~/playground/python/python/dist/src$ ./python
./Lib/test/regrtest.py -v -s ./Lib/test/test_ioctl.py
./Lib/test/test_ioctl
test ./Lib/test/test_ioctl crashed -- exceptions.ValueError:
Empty module name
Traceback (most recent call last):
  File "./Lib/test/regrtest.py", line 394, in runtest
    the_package = __import__(abstest, globals(), locals(), [])
ValueError: Empty module name
1 test failed:
    ./Lib/test/test_ioctl
Traceback (most recent call last):
  File "./Lib/test/regrtest.py", line 1005, in ?
    main()
  File "./Lib/test/regrtest.py", line 332, in main
    os.unlink(filename)
OSError: [Errno 2] No such file or directory: '/tmp/pynexttest'


But running regrtest.py by itself runs a bunch of tests
including test_ioctl, apparently successfully:

HACK pion:~/playground/python/python/dist/src$ ./python
./Lib/test/regrtest.py
...
test_ioctl
...
224 tests OK.
31 tests skipped:
    test_aepack test_al test_bsddb185 test_bsddb3 test_bz2
test_cd
    test_cl test_curses test_dbm test_email_codecs test_gdbm
test_gl
    test_imgfile test_linuxaudiodev test_locale test_macfs
    test_macostools test_nis test_normalization test_ossaudiodev
    test_pep277 test_plistlib test_scriptpackages
test_socket_ssl
    test_socketserver test_sunaudiodev test_timeout
test_unicode_file
    test_urllibnet test_winreg test_winsound
4 skips unexpected on linux2:
    test_dbm test_bz2 test_gdbm test_locale


So I guess this is an "issue" in the make target rather than
in the ioctl code itself...
msg17348 - (view) Author: Michael Hudson (mwh) (Python committer) Date: 2003-07-25 23:33
Logged In: YES 
user_id=6656

Can you dig?  I.e. more info than "test_ioctl fails"... try running 
the code that test_ioctl runs and see what that does
msg17349 - (view) Author: Zooko O'Whielacronx (zooko) Date: 2003-07-25 23:44
Logged In: YES 
user_id=52562

I cut and pasted the unit test code and ran it, and it passed.
So I suppose it's a bug in how "make test" invokes the
test_ioctl unit test?
msg17350 - (view) Author: Michael Hudson (mwh) (Python committer) Date: 2003-07-25 23:52
Logged In: YES 
user_id=6656

Oh dear.

Could you hack 'make test' to pass -v to regrtest?
msg17351 - (view) Author: Zooko O'Whielacronx (zooko) Date: 2003-07-26 12:20
Logged In: YES 
user_id=52562

Okay, I added "-v" to TESTOPTS in Makefile.

test_ioctl
test_ioctl (test.test_ioctl.IoctlTests) ... FAIL
test_ioctl_mutate (test.test_ioctl.IoctlTests) ... FAIL

======================================================================
FAIL: test_ioctl (test.test_ioctl.IoctlTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File
"/home/zooko/playground/python/python/dist/src/Lib/test/test_ioctl.py",
line 22, in test_ioctl
    self.assertEquals(pgrp, struct.unpack("i", r)[0])
  File
"/home/zooko/playground/python/python/dist/src/Lib/unittest.py",
line 292, in failUnlessEqual
    raise self.failureException, \
AssertionError: 32261 != 28460

======================================================================
FAIL: test_ioctl_mutate (test.test_ioctl.IoctlTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File
"/home/zooko/playground/python/python/dist/src/Lib/test/test_ioctl.py",
line 31, in test_ioctl_mutate
    self.assertEquals(pgrp, buf[0])
  File
"/home/zooko/playground/python/python/dist/src/Lib/unittest.py",
line 292, in failUnlessEqual
    raise self.failureException, \
AssertionError: 32261 != 28460

----------------------------------------------------------------------
Ran 2 tests in 0.002s

FAILED (failures=2)
test test_ioctl failed -- errors occurred in
test.test_ioctl.IoctlTests
msg17352 - (view) Author: Michael Hudson (mwh) (Python committer) Date: 2003-07-28 14:54
Logged In: YES 
user_id=6656

This is deeply weird.

The most likely scenario that some *other* test (or combination of 
tests, sigh) is tickling a bug in glibc that test_ioctl is revealing.

Evidence for/against this could be acquired by adding '-r' to 
TESTOPTS and running make test a few times.  But I still don't 
understand why running regrtest.py from the shell passes.  Unless 
it's a Heisenbug, or just a flat out bug in the test.

Hmm.  Ten gets you one that it's test_fork1 that buggers it up.

It seems exceedingly unlikely that this points to a real problem in 
Python's ioctl code.  ioctl() is not the easiest thing in the world to 
write tests for...
msg17353 - (view) Author: Zooko O'Whielacronx (zooko) Date: 2003-07-28 15:00
Logged In: YES 
user_id=52562

It's always possible that I'm doing something very silly and
not reporting it.  But, as I am pressed for time, it would
be really good if you could get a failure like this running
on your own box.  Hm.  Maybe this means I should just
upgrade my glibc.

MAIN pion:~$ dpkg --status libc6 | grep ^Version
Version: 2.3.1-16

Hm.

Okay, I'll add -r to TESTOPTS and run lots of "make test".
msg17354 - (view) Author: Michael Hudson (mwh) (Python committer) Date: 2003-07-28 15:06
Logged In: YES 
user_id=6656

Heh, yes it certainly would be easier if I (or anyone else) could 
reproduce this.  However, this is the first I've heard of it, and I'd 
have thought/hoped that there are other people running the 
release candidates on Debian testing... glibc is very much a guess 
scapegoat, don't jeopardize your system just for me.

I suggested the '-r' thing because it's the sort of thing that can be 
done in the background.
msg17355 - (view) Author: George Yoshida (quiver) (Python committer) Date: 2005-03-19 18:05
Logged In: YES 
user_id=671362

On a linux box for my work, I had similar fail(test_ioctl and 
test_ioctl_mutate).

My System:
* Python : 2.3.3, 2.4
* kernel : 2.4.22
* GCC    : 2.95.3
* glibc  : 2.2

I don't know why but somehow test_ioctl.py seems to be 
invoked in the background on 'make test' process, which 
resuls in 2 fails.

Maybe the easiest way to make test_ioctl fail is :
  $ ./python ./Lib/test/regrtest.py test_ioctl &
msg17356 - (view) Author: Monte Davidoff (mdavidoff) Date: 2005-09-23 07:33
Logged In: YES 
user_id=1200009

The fix for this bug was included in Patch 1284289:

Lib/test/test_ioctl.py -- Fixed bug in import statement for
test.test_support. Fixed bug where the test would fail if
the test suite was being run in the backgroud. In this case,
the TIOCGPGRP ioctl on /dev/tty returns the session ID, not
the process group ID.

See also bug 780576.
msg17357 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2005-09-23 08:37
Logged In: YES 
user_id=1188172

I verified this. Closing accordingly
History
Date User Action Args
2022-04-10 16:10:14adminsetgithub: 38934
2003-07-25 23:25:25zookocreate