freebsd-dev/tests/sys
Enji Cooper ffbc8cc0f2 Fix encoding issues with python 3
In python 3, the default encoding was switched from ascii character sets to
unicode character sets in order to support internationalization by default.
Some interfaces, like ioctls and packets, however, specify data in terms of
non-unicode encodings formats, either in host endian (`fcntl.ioctl`) or
network endian (`dpkt`) byte order/format.

This change alters assumptions made by previous code where it was all
data objects were assumed to be basestrings, when they should have been
treated as byte arrays. In order to achieve this the following are done:
* str objects with encodings needing to be encoded as ascii byte arrays are
  done so via `.encode("ascii")`. In order for this to work on python 3 in a
  type agnostic way (as it anecdotally varied depending on the caller), call
  `.encode("ascii")` only on str objects with python 3 to cast them to ascii
  byte arrays in a helper function name `str_to_ascii(..)`.
* `dpkt.Packet` objects needing to be passed in to `fcntl.ioctl(..)` are done
  so by casting them to byte arrays via `bytes()`, which calls
  `dpkt.Packet__str__` under the covers and does the necessary str to byte array
  conversion needed for the `dpkt` APIs and `struct` module.

In order to accomodate this change, apply the necessary typecasting for the
byte array literal in order to search `fop.name` for nul bytes.

This resolves all remaining python 2.x and python 3.x compatibility issues on
amd64. More work needs to be done for the tests to function with i386, in
general (this is a legacy issue).

PR:		237403
MFC after:	1 week
Tested with:	python 2.7.16 (amd64), python 3.6.8 (amd64)
2019-05-21 03:52:48 +00:00
..
acl Add a very basic regression test for setfacl -R with NFSv4 ACLs. 2018-10-26 21:20:04 +00:00
aio Revert r337929 2018-08-16 22:04:00 +00:00
audit Fix and simplify code by using ATF_REQUIRE_FEATURE macro 2019-04-01 14:21:32 +00:00
auditpipe Introduce test program for auditpipe(4) 2018-07-26 00:16:41 +00:00
capsicum Integrate capsicum-test into the FreeBSD test suite 2019-04-01 21:24:50 +00:00
cddl Remove duplicate ${PACKAGE}FILES+= cleanup.ksh line 2019-03-16 03:37:47 +00:00
common tests: Move common (vnet) test functions into a common file 2019-03-04 18:15:06 +00:00
fifo other: Fix several typos and minor errors 2017-12-27 03:23:58 +00:00
file Revert r337929 2018-08-16 22:04:00 +00:00
fs Fix sys.fs.tmpfs.mknod_test.{char, block} by reverting r321967 2018-07-21 20:14:01 +00:00
geom Skip test component_selection:run_latest_genid if gmirror/gnop GEOM classes 2019-04-23 21:07:47 +00:00
kern Fix sys.kern.coredump_phnum_test.coredump_phnum on i386 2019-04-22 11:21:20 +00:00
kqueue Temporarily skip flakey test cases 2018-12-06 09:22:35 +00:00
mac DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
mqueue DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
net tun tests: Test renaming and destroying a tun interface in a vnet jail 2019-03-05 15:49:30 +00:00
netinet Plug a trivial memory leak. 2018-11-20 18:13:18 +00:00
netipsec ipsec tests: Skip if ipsec.ko is not loaded 2019-05-16 02:18:57 +00:00
netmap netmap: add test cases for multiple host rings 2019-04-13 12:50:47 +00:00
netpfil pf tests: Fail the test if we can't set the rules 2019-04-18 10:54:08 +00:00
opencrypto Fix encoding issues with python 3 2019-05-21 03:52:48 +00:00
pjdfstest DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
posixshm Revert r337929 2018-08-16 22:04:00 +00:00
sys Improve tree(3) tests by using ATF_REQUIRE where applicable. 2019-05-20 18:35:23 +00:00
vfs vfs_lookup: Allow PATH_MAX-1 symlinks 2017-11-17 19:25:39 +00:00
vm Add a few regression tests for mlock(2). 2019-05-01 15:28:23 +00:00
Makefile tests: Move common (vnet) test functions into a common file 2019-03-04 18:15:06 +00:00
Makefile.depend DIRDEPS_BUILD: Connect MK_TESTS. 2016-03-09 22:46:01 +00:00
Makefile.inc Use MK_CHECK_USE_SANDBOX in tests/..., to deal with the fact that 2017-08-02 22:24:08 +00:00