-
Notifications
You must be signed in to change notification settings - Fork 311
Description
The sendrecvt2 failure is due to yaksa uses assignment in packing/unpacking, and assignment of long double - nominal 16-byte but actually 12-byte - does not copy data byte by byte. The test compares the result byte-by-byte, and fails at one of dummy bytes of a long double depending on the history of the register/memory.
If we hack yaksa to use memcpy instead, it will pass the tests. I don't know why ch3/tcp and ch4 tests does not trigger the failure. Potentially this is a memory state issue - if the variable being assigned to has zeroed before, it will retain the zero values as the test expects.
The error/truncmsg2 test sends 3 non-contig char to 3 contig int. The test expected to receive error due to type mismatch, but somehow it didn't with ch3:sock + yaksa. We rely on yaksa unpack to return error (actual_unpack_bytes to be 0). Is it because the sock channel didn't check actual_unpack_bytes ?
