text: 
  import tests
  import re
  from common import TestCommon
  from results import PassFailResult
  
  @tests.add_test
  class RetypeTest(TestCommon):
      '''test new retype code'''
      name = "capops_retype"
  
      def get_modules(self, build, machine):
          modules = super(RetypeTest, self).get_modules(build, machine)
          modules.add_module("test_retype")
          return modules
  
      def get_finish_string(self):
          return "retype: result:"
  
      def process_data(self, testdir, rawiter):
          # the test passed iff the last line is the finish string
          passed = False
          for line in rawiter:
              if line.startswith(self.get_finish_string()):
                  _,_,results=line.split(':')
                  results = results.strip()
                  passed = results == "0"
          return PassFailResult(passed)
  
  @tests.add_test
  class RetypeMultiTest(TestCommon):
      '''test new retype code'''
      name = "capops_retype_multi"
  
      def setup(self,build,machine,testdir):
          super(RetypeMultiTest, self).setup(build,machine,testdir)
          self._ncores = machine.get_ncores()
          self._nseen = 0
  
      def get_modules(self, build, machine):
          modules = super(RetypeMultiTest, self).get_modules(build, machine)
          modules.add_module("test_retype", ["core=0-%d" % (machine.get_ncores()-1), "quiet"])
          return modules
  
      def is_finished(self, line):
          if line.startswith("retype: result:"):
              self._nseen += 1
          return self._nseen == self._ncores or super(RetypeMultiTest, self).is_finished(line)
  
      def process_data(self, testdir, rawiter):
          # the test passed iff the last line is the finish string
          nspawned = 0
          npassed = 0
          for line in rawiter:
              if re.match(r'.*pawning .*test_retype on core', line):
                  nspawned += 1
              if line.startswith("retype: result:"):
                  _,_,r=line.split(':')
                  r = r.strip()
                  if r == "0":
                      npassed += 1
          return PassFailResult(npassed == nspawned)
  
  @tests.add_test
  class RootCNResize(TestCommon):
      '''test root cnode resizing'''
      name = "capops_rootcn_resize"
  
      def get_modules(self, build, machine):
          modules = super(RootCNResize, self).get_modules(build, machine)
          modules.add_module("test_rootcn_resize")
          return modules
  
      def get_finish_string(self):
          return "test_rootcn_resize: "
  
      def process_data(self, testdir, rawiter):
          # the test passed iff the last line is the finish string
          passed = False
          for line in rawiter:
              if line.startswith(self.get_finish_string()):
                  results =line.split(':')
                  results = map(str.strip, results)
                  passed  = "passed" in results
          return PassFailResult(passed)
  
  @tests.add_test
  class CreateL1L2(TestCommon):
      '''test L1/L2 cnode creation'''
      name = "capops_create_l1l2"
  
      def get_modules(self, build, machine):
          modules = super(CreateL1L2, self).get_modules(build, machine)
          modules.add_module("test_create_l1l2_cnodes")
          return modules
  
      def get_finish_string(self):
          return "L1/L2 CNode creation: "
  
      def process_data(self, testdir, rawiter):
          # the test passed iff the last line is the finish string
          passed = False
          for line in rawiter:
              if line.startswith(self.get_finish_string()):
                  results =line.split(':')
                  results = map(str.strip, results)
                  passed  = "passed" in results
          return PassFailResult(passed)
  