[Python-Dev] tests failing on irix65

Thomas Wouters thomas@xs4all.net
Wed, 21 Mar 2001 14:07:04 +0100


On Tue, Mar 20, 2001 at 11:37:00PM -0800, Flying Cougar Burnette wrote:

> ------------%< snip %<----------------------%< snip %<------------

> test_pty
> The actual stdout doesn't match the expected stdout.
> This much did match (between asterisk lines):
> **********************************************************************
> test_pty
> **********************************************************************
> Then ...
> We expected (repr): 'I'
> But instead we got: '\n'
> test test_pty failed -- Writing: '\n', expected: 'I'
> 
> 
> importing test_pty into an interactive interpreter gives this:
> 
> Python 2.1b2 (#27, Mar 20 2001, 23:21:17) [C] on irix6
> Type "copyright", "credits" or "license" for more information.
> >>> import test.test_pty
> Calling master_open()
> Got master_fd '4', slave_name '/dev/ttyq6'
> Calling slave_open('/dev/ttyq6')
> Got slave_fd '5'
> Writing to slave_fd
> 
> I wish to buy a fish license.For my pet fish, Eric.
> calling pty.fork()
> Waiting for child (16654) to finish.
> Child (16654) exited with status 1024.
> >>> 

Hmm. This is probably my test that is a bit gaga. It tries to test the pty
module, but since I can't find any guarantees on how pty's should work, it
probably relies on platform-specific accidents. It does the following:

---
TEST_STRING_1 = "I wish to buy a fish license."
TEST_STRING_2 = "For my pet fish, Eric."

[..]

debug("Writing to slave_fd")
os.write(slave_fd, TEST_STRING_1) # should check return value
print os.read(master_fd, 1024)

os.write(slave_fd, TEST_STRING_2[:5])
os.write(slave_fd, TEST_STRING_2[5:])
print os.read(master_fd, 1024)
---

Apparently, irix buffers the first write somewhere. Can you test if the
following works better:

---
TEST_STRING_1 = "I wish to buy a fish license.\n"
TEST_STRING_2 = "For my pet fish, Eric.\n"

[..]

debug("Writing to slave_fd")
os.write(slave_fd, TEST_STRING_1) # should check return value
sys.stdout.write(os.read(master_fd, 1024))

os.write(slave_fd, TEST_STRING_2[:5])
os.write(slave_fd, TEST_STRING_2[5:])
sys.stdout.write(os.read(master_fd, 1024))
---

(There should be no need to regenerate the output file, but if it still
fails on the same spot, try running it in verbose and see if you still have
the blank line after 'writing to slave_fd'.)

Note that the pty module is working fine, it's just the test that is screwed
up. Out of curiosity, is the test_openpty test working, or is it skipped ?

I see I also need to fix some other stuff in there, but I'll wait with that
until I hear that this works better :)

-- 
Thomas Wouters <thomas@xs4all.net>

Hi! I'm a .signature virus! copy me into your .signature file to help me spread!