12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #!/usr/bin/env python2
- import os, sys, mmap
- from regression import Regression
- loader = sys.argv[1]
- # Running Bootstrap
- regression = Regression(loader, "bootstrap")
- regression.add_check(name="Basic Bootstrapping",
- check=lambda res: "User Program Started" in res[0].out)
- regression.add_check(name="One Argument Given",
- check=lambda res: "# of Arguments: 1" in res[0].out and \
- "argv[0] = file:bootstrap" in res[0].out)
- regression.add_check(name="Five Arguments Given",
- args = ['a', 'b', 'c', 'd'],
- check=lambda res: "# of Arguments: 5" in res[0].out and \
- "argv[0] = file:bootstrap" in res[0].out and \
- "argv[1] = a" in res[0].out and "argv[2] = b" in res[0].out and \
- "argv[3] = c" in res[0].out and "argv[4] = d" in res[0].out)
- rv = regression.run_checks()
- if rv: sys.exit(rv)
- # Running Exec
- regression = Regression(loader, "exec")
- regression.add_check(name="2 page child binary",
- check=lambda res: "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 " in res[0].out)
- rv = regression.run_checks()
- if rv: sys.exit(rv)
- # Shared Object Test
- regression = Regression(loader, "shared_object")
- regression.add_check(name="Shared Object",
- check=lambda res: "Hello world" in res[0].out)
- rv = regression.run_checks()
- if rv: sys.exit(rv)
- regression = Regression(loader, "exit")
- regression.add_check(name="Exit Code Propagation",
- check=lambda res: 113 == res[0].code)
- rv = regression.run_checks()
- if rv: sys.exit(rv)
|