| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | 
							- #!/usr/bin/env python2
 
- import os, sys, mmap
 
- from regression import Regression
 
- loader = os.environ['PAL_LOADER']
 
- try:
 
-     sgx = os.environ['SGX_RUN']
 
- except KeyError:
 
-     sgx = 0
 
- regression = Regression(loader, "Memory")
 
- regression.add_check(name="Memory Allocation",
 
-     check=lambda res: "Memory Allocation OK" in res[0].log)
 
- regression.add_check(name="Memory Allocation with Address",
 
-     check=lambda res: "Memory Allocation with Address OK" in res[0].log)
 
- # SGX1 does not support unmapping a page or changing its permission after
 
- # enclave init. Therefore the memory protection and deallocation tests will
 
- # fail. By utilizing SGX2 it's possibile to fix this.
 
- regression.add_check(name="Memory Protection", ignore_failure = sgx,
 
-     check=lambda res: "Memory Allocation Protection (RW) OK" in res[0].log and
 
-                       "Memory Protection (R) OK" in res[0].log)
 
- regression.add_check(name="Memory Deallocation", ignore_failure = sgx,
 
-     check=lambda res: "Memory Deallocation OK" in res[0].log)
 
- def check_quota(res):
 
-     for line in res[0].log:
 
-         if line.startswith("Total Memory:"):
 
-             return line != "Total Memory: 0"
 
-     return False
 
- regression.add_check(name="Get Memory Total Quota", check=check_quota)
 
- regression.add_check(name="Get Memory Available Quota",
 
-     check=lambda res: "Get Memory Available Quota OK" in res[0].log)
 
- rv = regression.run_checks()
 
- if rv: sys.exit(rv)
 
 
  |