#!/usr/bin/env python ## $Id$ # This tests whether the most basic mechanisms are working # Also whether stderr output is reported correctly # Also tests if work buffer limits are working correctly from testbase import * class UserUC(User): def init(self): self.User.__init__() self.project_prefs = """ foobar """ self.global_prefs = """ 0 2 1 400000 """ class WorkUC(Work): def __init__(self, redundancy, **kwargs): Work.__init__(self, redundancy=redundancy) self.wu_template = "uc_wu_nodelete" self.result_template = "uc_result" self.input_files = ['input'] self.__dict__.update(kwargs) class ResultUC(ExpectedResult): def __init__(self): ExpectedResult.__init__(self) self.stderr_out = MATCH_REGEXPS([ "", "APP: upper_case: starting, argc \\d+", "APP: upper_case: argv[[]0[]] is upper_case", "APP: upper_case ending, wrote \\d+ chars"]) class ResultComputeErrorUC(ExpectedResultComputeError): def __init__(self): ExpectedResultComputeError.__init__(self) self.stderr_out = MATCH_REGEXPS([ """ APP: upper_case: starting, argc \\d+"""]) ## TODO: check that uc_wu_%d_0 matches uc_correct_output BEFORE deleted by ## file deleter! class ProjectUC(TestProject): def __init__(self, num_wu=None, redundancy=None, expect_success=True, works=None, users=None, hosts=None, short_name=None, long_name=None, resource_share=1): (num_wu, redundancy) = get_redundancy_args(num_wu, redundancy) TestProject.__init__(self, appname = 'upper_case', num_wu=num_wu, redundancy=redundancy, expected_result = (expect_success and ResultUC() or ResultComputeErrorUC()), works = works or [WorkUC(redundancy=redundancy)], users = users or [UserUC()], hosts = hosts, short_name=short_name, long_name=long_name, resource_share=resource_share ) if __name__ == '__main__': test_msg("standard upper_case application"); ProjectUC() run_check_all()