30_mmap.py 1.1 KB

1234567891011121314151617181920212223242526272829
  1. import os, sys, mmap
  2. from regression import Regression
  3. loader = sys.argv[1]
  4. sgx = os.environ.get('SGX_RUN') == '1'
  5. # Running Bootstrap
  6. regression = Regression(loader, "mmap-file", None, 60000)
  7. regression.add_check(name="Private mmap beyond file range",
  8. check=lambda res: "mmap test 6 passed" in res[0].out and \
  9. "mmap test 7 passed" in res[0].out)
  10. regression.add_check(name="Private mmap beyond file range (after fork)",
  11. check=lambda res: "mmap test 1 passed" in res[0].out and \
  12. "mmap test 2 passed" in res[0].out and \
  13. "mmap test 3 passed" in res[0].out and \
  14. "mmap test 4 passed" in res[0].out)
  15. # On SGX, SIGBUS isn't always implemented correctly, for lack
  16. # of memory protection. For now, some of these cases won't work.
  17. if not sgx:
  18. regression.add_check(name="SIGBUS test",
  19. check=lambda res: "mmap test 5 passed" in res[0].out and \
  20. "mmap test 8 passed" in res[0].out)
  21. rv = regression.run_checks()
  22. if rv: sys.exit(rv)