コード例 #1
0
    def do_one_test(self, ssl=True):
        conf = Settings.get()
        conf.set_bool('/settings/nscp/test_nscp_server', 'use ssl', ssl)
        conf.set_bool('/settings/nscp/test_nscp_server', 'allow arguments',
                      True)
        # TODO: conf.set_string('/settings/nscp/test_nscp_server', 'certificate', ssl)
        core.reload('test_nscp_server')

        conf.set_string('/settings/nscp/test_nscp_client/targets/default',
                        'address', 'nscp://127.0.0.1:35668')
        conf.set_bool('/settings/nscp/test_nscp_client/targets/default',
                      'use ssl', not ssl)

        conf.set_string('/settings/nscp/test_nscp_client/targets/invalid',
                        'address', 'nscp://127.0.0.1:25668')
        conf.set_bool('/settings/nscp/test_nscp_client/targets/invalid',
                      'use ssl', not ssl)

        conf.set_string('/settings/nscp/test_nscp_client/targets/valid',
                        'address', 'nscp://127.0.0.1:15668')
        conf.set_bool('/settings/nscp/test_nscp_client/targets/valid',
                      'use ssl', ssl)
        core.reload('test_nscp_client')

        result = TestResult()
        #result.add_message(isOpen('127.0.0.1', 15668), 'Checking that port is open (server is up)')
        #result.add(self.test_one(ssl, length, state = status.UNKNOWN, tag = 'unknown'))
        result.add(self.test_one(ssl, state=status.OK, tag='ok'))
        #result.add(self.test_one(ssl, length, state = status.WARNING, tag = 'warn'))
        #result.add(self.test_one(ssl, length, state = status.CRITICAL, tag = 'crit'))
        return result
コード例 #2
0
ファイル: test_eventlog.py プロジェクト: r1se/nscp
 def test_w_expected(self, filter, syntax, expected):
     result = TestResult('Validating filter: %s' % filter)
     (res, msg, perf) = Core.get().simple_query('CheckEventLog', [
         'file=Application', 'debug=true',
         'warn=ne:%d' % expected,
         'crit=ne:%d' % expected,
         'filter=%s' % filter,
         'syntax=%s' % syntax
     ])
     result.assert_equals(res, status.OK,
                          "Validate status OK for %s" % filter)
     (res, msg, perf) = Core.get().simple_query('CheckEventLog', [
         'file=Application', 'debug=true',
         'warn=eq:%d' % expected,
         'crit=ne:%d' % expected,
         'filter=%s' % filter,
         'syntax=%s' % syntax
     ])
     result.assert_equals(res, status.WARNING,
                          "Validate status OK for %s" % filter)
     (res, msg, perf) = Core.get().simple_query('CheckEventLog', [
         'file=Application', 'debug=true',
         'warn=eq:%d' % expected,
         'crit=eq:%d' % expected,
         'filter=%s' % filter,
         'syntax=%s' % syntax
     ])
     result.assert_equals(res, status.CRITICAL,
                          "Validate status CRIT for %s" % filter)
     return result
コード例 #3
0
	def run_test(self):
		result = TestResult('Testing W32 file systems')
		result.add(self.check_cli_ns())
		result.add(self.check_cli_ls(None, 'Win32_Processor', 'LogFileEventConsumer'))
		result.add(self.check_cli_ls('root\subscription', 'LogFileEventConsumer', 'Win32_Processor'))
		result.add(self.check_cli_query('SELECT DeviceId, AddressWidth, Caption, Name FROM Win32_Processor', lambda x:x>1, lambda x:'CPU0' in x))
		return result
コード例 #4
0
    def run_test(self, cases=None):
        result = TestResult()
        cryptos = [
            "none", "xor", "des", "3des", "cast128", "xtea", "blowfish",
            "twofish", "rc2", "aes", "aes256", "aes192", "aes128", "serpent",
            "gost", "3way"
        ]
        for c in cryptos:
            run_l = None
            run_this = False
            if cases:
                tmp_l = None
                for case in cases:
                    if '-' in case:
                        (run_c, tmp_l) = case.split('-', 2)
                    else:
                        run_c = case
                    if c == run_c:
                        run_l = int(tmp_l) if tmp_l else None
                        run_this = True
                if not run_this:
                    result.add_message(True, 'Ignoring: %s-*' % c)
                    continue
            for l in [128, 512, 1024, 4096]:
                if not run_l or run_l == l:
                    result.add(self.test_one_crypto(c, l))
                else:
                    result.add_message(True, 'Ignoring: %s-%s' % (c, l))

        return result
コード例 #5
0
ファイル: test_eventlog.py プロジェクト: tips-of-mine/ansible
 def test_create(self, source, id, level, severity, category, facility,
                 arguments):
     result = TestResult(
         'Creating log message: i:%d, l:%s, s:%s, c:%d, f:%d' %
         (id, level, severity, category, facility))
     args = [
         '--source',
         source,
         '--id',
         id,  # Any number (corresponds with message identifier)								-- Identifies message
         '--level',
         level,  # error(1), warning(2), success(0), info(4), auditSuccess(8), auditFailure(10)	-- Loglevel severity (ie log level)
         '--severity',
         severity,  # success(0), informational(1), warning(2), error(3) 							-- Developer severity (ie classification)
         '--category',
         category,  #
         '--facility',
         facility  #
     ]
     for f in arguments:
         args.append('--argument')
         args.append(f)
     (ret, msg) = self.core.simple_exec('eventlog', 'insert', args)
     result.assert_equals(ret, 0, 'return code')
     result.assert_equals(len(msg), 1, 'Message length')
     if len(msg) == 1:
         result.assert_equals(msg[0], 'Message reported successfully',
                              'Status message')
     return result
コード例 #6
0
    def do_one_test(self,
                    script,
                    expected=status.OK,
                    message="Foo Bar",
                    args=[],
                    cleanup=True):
        result = TestResult('%s (%s)' % (script, args))
        (ret, msg, perf) = self.core.simple_query(script, args)
        if cleanup and os.name != 'nt':
            message = message.replace('"', '')
            message = message.replace('$ARG1$', '$')
            message = message.replace('$ARG2$', '$')
            message = message.replace('$ARG3$', '$')

        message = message.replace('\r', '\n')
        message = message.replace('\n\n', '\n')
        msg = msg.replace('\r', '\n')
        msg = msg.replace('\n\n', '\n')

        result.assert_equals(ret, expected,
                             'Validate return code for %s' % script)
        result.assert_equals(msg, message,
                             'Validate return message for %s' % script)
        if msg != message:
            diff = difflib.ndiff(msg.splitlines(1), message.splitlines(1))
            for l in diff:
                log_error(l)
        return result
コード例 #7
0
ファイル: test_eventlog.py プロジェクト: tips-of-mine/ansible
 def test_w_expected(self, filter, syntax, expected):
     result = TestResult('Validating filter: %s (%d)' % (filter, expected))
     (res, msg, perf) = self.core.simple_query('CheckEventLog', [
         'file=Application', 'debug=false',
         'warn=gt:%d' % expected,
         'crit=gt:%d' % expected,
         'filter=%s' % filter,
         'syntax=%s' % syntax, 'scan-range=-10m',
         'top-syntax=${status} ${count}==%d: ${list}' % expected
     ])
     result.assert_equals(res, status.OK,
                          "Validate status OK for %s" % filter)
     (res, msg, perf) = self.core.simple_query('CheckEventLog', [
         'file=Application', 'debug=false',
         'warn=eq:%d' % expected,
         'crit=gt:%d' % expected,
         'filter=%s' % filter,
         'syntax=%s' % syntax, 'scan-range=-10m',
         'top-syntax=${status} ${count}==%d: ${list}' % expected
     ])
     result.assert_equals(res, status.WARNING,
                          "Validate status OK for %s" % filter)
     (res, msg, perf) = self.core.simple_query('CheckEventLog', [
         'file=Application', 'debug=false',
         'warn=eq:%d' % expected,
         'crit=eq:%d' % expected,
         'filter=%s' % filter,
         'syntax=%s' % syntax, 'scan-range=-10m',
         'top-syntax=${status} ${count}==%d: ${list}' % expected
     ])
     result.assert_equals(res, status.CRITICAL,
                          "Validate status CRIT for %s" % filter)
     return result
コード例 #8
0
    def run_boundry_test(self):
        result = TestResult('Boundry tests')
        result.add(
            self.check_bound('none', 'count > 1', 'none', status.WARNING))
        result.add(
            self.check_bound('none', 'none', 'count > 1', status.CRITICAL))
        result.add(
            self.check_bound('column1 > 5', 'count > 2', 'count > 5',
                             status.OK))
        result.add(
            self.check_bound('column1 > 4', 'count > 2', 'count > 5',
                             status.OK))
        result.add(
            self.check_bound('column1 > 3', 'count > 2', 'count > 5',
                             status.WARNING))
        result.add(
            self.check_bound('column1 > 2', 'count > 2', 'count > 5',
                             status.WARNING))
        result.add(
            self.check_bound('column1 > 1', 'count > 2', 'count > 5',
                             status.WARNING))
        result.add(
            self.check_bound('column1 > 0', 'count > 2', 'count > 5',
                             status.CRITICAL))

        result.add(
            self.check_bound('column1 > 5', 'column1 = 3', 'none', status.OK))
        result.add(
            self.check_bound('column1 > 0', 'column1 = 3', 'none',
                             status.WARNING))

        return result
コード例 #9
0
	def do_one_test(self, ssl=True, length=1024):
		conf = self.conf
		conf.set_int('/settings/NRPE/test_nrpe_server', 'payload length', length)
		conf.set_bool('/settings/NRPE/test_nrpe_server', 'use ssl', ssl)
		conf.set_bool('/settings/NRPE/test_nrpe_server', 'allow arguments', True)
		# TODO: conf.set_string('/settings/NRPE/test_nrpe_server', 'certificate', ssl)
		self.core.reload('test_nrpe_server')

		conf.set_string('/settings/NRPE/test_nrpe_client/targets/default', 'address', 'nrpe://127.0.0.1:35666')
		conf.set_bool('/settings/NRPE/test_nrpe_client/targets/default', 'use ssl', not ssl)
		conf.set_int('/settings/NRPE/test_nrpe_client/targets/default', 'payload length', length*3)

		conf.set_string('/settings/NRPE/test_nrpe_client/targets/invalid', 'address', 'nrpe://127.0.0.1:25666')
		conf.set_bool('/settings/NRPE/test_nrpe_client/targets/invalid', 'use ssl', not ssl)
		conf.set_int('/settings/NRPE/test_nrpe_client/targets/invalid', 'payload length', length*2)

		conf.set_string('/settings/NRPE/test_nrpe_client/targets/valid', 'address', 'nrpe://127.0.0.1:15666')
		conf.set_bool('/settings/NRPE/test_nrpe_client/targets/valid', 'use ssl', ssl)
		conf.set_int('/settings/NRPE/test_nrpe_client/targets/valid', 'payload length', length)
		self.core.reload('test_nrpe_client')
		
		result = TestResult('ssl=%s, length=%s'%(ssl, length))
		result.add_message(isOpen('127.0.0.1', 15666), 'Checking that port is open (server is up)')
		result.add(self.test_one(ssl, length, state = status.UNKNOWN, tag = 'unknown'))
		result.add(self.test_one(ssl, length, state = status.OK, tag = 'ok'))
		result.add(self.test_one(ssl, length, state = status.WARNING, tag = 'warn'))
		result.add(self.test_one(ssl, length, state = status.CRITICAL, tag = 'crit'))
		return result
コード例 #10
0
    def run_test_counters(self):
        result = TestResult('Checking CheckCounter')
        (result_code,
         result_message) = self.core.simple_exec('any', 'pdh',
                                                 ['--list', '--all'])
        count = 0
        data = []
        for m in result_message:
            data = m.splitlines()
            count = len(data)
        result.add_message(count > 0,
                           'Managed to retrieve counters: %d' % count)
        if len(data) == 0:
            result.add_message(False,
                               'Failed to find counters: %s' % result_message)
        counters = []

        (subres, name1) = self.check_and_lookup_index(4)
        result.add(subres)
        (subres, name2) = self.check_and_lookup_index(26)
        result.add(subres)

        result.add(self.check_counter('\\4\\26', ['ShowAll', 'MaxWarn=10']))
        result.add(
            self.check_counter('\\4\\26', ['index', 'ShowAll', 'MaxWarn=10']))
        result.add(
            self.check_counter('\\%s\\%s' % (name1, name2),
                               ['ShowAll', 'MaxWarn=10']))
        return result
コード例 #11
0
 def run_test(self):
     result = TestResult()
     result.add(
         self.test_simple('foobar', status.OK, 'qwerty', '', 'simple ok'))
     result.add(
         self.test_simple('foobar', status.WARNING, 'foobar', '',
                          'simple warning'))
     result.add(
         self.test_simple('foobar', status.CRITICAL, 'test', '',
                          'simple critical'))
     result.add(
         self.test_simple('foobar', status.UNKNOWN, '1234567890', '',
                          'simple unknown'))
     result.add(
         self.test_simple('foobar', status.OK, 'qwerty', "'foo'=5%",
                          'simple performance data 001'))
     result.add(
         self.test_simple('foobar', status.OK, 'qwerty', "'foo'=5%;10",
                          'simple performance data 002'))
     result.add(
         self.test_simple('foobar', status.OK, 'qwerty', "'foo'=5%;10;23",
                          'simple performance data 003'))
     result.add(
         self.test_simple('foobar', status.OK, 'qwerty',
                          "'foo'=5%;10;23;10;78",
                          'simple performance data 004'))
     result.add(
         self.test_simple('foobar', status.OK, 'qwerty',
                          "'foo'=5%;10;23;10;78 'bar'=1k;2;3",
                          'simple performance data 005'))
     return result
コード例 #12
0
    def check_files(self, filter, text, expected, extra_args):
        self.setup_files()
        alias = '%s: %s' % (text, filter)
        result = TestResult('Checking %s' % alias)
        args = [
            'path=%s' % self.work_path,
            'filter=%s' % filter, 'syntax=%filename%: %size% %write%',
            'warn=gt:1', 'crit=gt:3'
        ]
        args.extend(extra_args)
        (ret, msg, perf) = self.core.simple_query('CheckFiles', args)
        #log("Messge: %s"%msg)
        #log("Perf: %s"%perf)
        count = self.get_count(perf)
        result.add_message(
            count == expected, 'Check that we get correct number of files',
            'Invalid result: got %s expected %s' % (count, expected))
        if expected > 3:
            result.add_message(
                ret == status.CRITICAL,
                'Check that we get correct status back (CRIT)',
                'We did not get a CRIT back as expected: %s' % ret)
        elif expected > 1:
            result.add_message(
                ret == status.WARNING,
                'Check that we get correct status back (WARN)',
                'We did not get a WARN back as expected: %s' % ret)
        else:
            result.add_message(
                ret == status.OK, 'Check that we get correct status back (OK)',
                'We did not get a OK back as expected: %s' % ret)

        return result
コード例 #13
0
	def check_cli_ns(self):
		result = TestResult('Checking CLI list-ns')
		(ret, ns_msgs) = self.core.simple_exec('any', 'wmi', ['--list-all-ns', '--namespace', 'root'])
		result.assert_equals(ret, 1, 'Check that --list-all-ns returns ok')
		result.assert_equals(len(ns_msgs), 1, 'Check that --list-all-ns returns one entry')
		if len(ns_msgs) > 0:
			result.assert_contains(ns_msgs[0], 'CIMV2', 'Check that --list-all-ns contains cimv2')
		return result
コード例 #14
0
 def run_test(self):
     result = TestResult()
     result.add(self.do_one_test(ssl=True))
     result.add(self.do_one_test(ssl=False))
     result.add(self.do_one_test(ssl=True, length=4096))
     result.add(self.do_one_test(ssl=True, length=65536))
     result.add(self.do_one_test(ssl=True, length=1048576))
     return result
コード例 #15
0
    def test_one_crypto(self, crypto, length=512):
        log('Testing: %s %d' % (crypto, length))
        conf = self.conf
        conf.set_string('/settings/NSCA/test_nsca_server', 'encryption',
                        '%s' % crypto)
        conf.set_string('/settings/NSCA/test_nsca_server', 'password',
                        'pwd-%s' % crypto)
        conf.set_int('/settings/NSCA/test_nsca_server', 'payload length',
                     length)
        self.core.reload('test_nsca_server')

        conf.set_string('/settings/NSCA/test_nsca_client/targets/default',
                        'address', 'nsca://127.0.0.1:35667')
        conf.set_string('/settings/NSCA/test_nsca_client/targets/default',
                        'encryption', '%s' % crypto)
        conf.set_string('/settings/NSCA/test_nsca_client/targets/default',
                        'password', 'default-%s' % crypto)
        conf.set_int('/settings/NSCA/test_nsca_client/targets/default',
                     'payload length', length * 3)

        conf.set_string('/settings/NSCA/test_nsca_client/targets/invalid',
                        'address', 'nsca://127.0.0.1:25667')
        conf.set_string('/settings/NSCA/test_nsca_client/targets/invalid',
                        'encryption', 'none')
        conf.set_string('/settings/NSCA/test_nsca_client/targets/invalid',
                        'password', 'invalid-%s' % crypto)
        conf.set_int('/settings/NSCA/test_nsca_client/targets/invalid',
                     'payload length', length * 2)

        conf.set_string('/settings/NSCA/test_nsca_client/targets/valid',
                        'address', 'nsca://127.0.0.1:15667')
        conf.set_string('/settings/NSCA/test_nsca_client/targets/valid',
                        'encryption', '%s' % crypto)
        conf.set_string('/settings/NSCA/test_nsca_client/targets/valid',
                        'password', 'pwd-%s' % crypto)
        conf.set_int('/settings/NSCA/test_nsca_client/targets/valid',
                     'payload length', length)
        self.core.reload('test_nsca_client')

        result = TestResult('Testing: %s/%d' % (crypto, length))
        result.add_message(isOpen('localhost', 15667),
                           'Checking that port is open')
        for target in ['valid', 'test_rp', 'invalid']:
            result.add(
                self.test_one_crypto_full(crypto, status.UNKNOWN, 'unknown',
                                          target, length))
            result.add(
                self.test_one_crypto_full(crypto, status.OK, 'ok', target,
                                          length))
            result.add(
                self.test_one_crypto_full(crypto, status.WARNING, 'warn',
                                          target, length))
            result.add(
                self.test_one_crypto_full(crypto, status.CRITICAL, 'crit',
                                          target, length))
        return result
コード例 #16
0
 def test_one(self, ssl=True, state=status.UNKNOWN, tag='TODO'):
     result = TestResult('Testing NSCP: %s/%s with various targets' %
                         (ssl, tag))
     #for t in ['valid', 'test_rp', 'invalid']:
     for t in ['valid']:
         result.add(
             self.submit_payload('%s/%s' % (ssl, tag), ssl,
                                 '%ssrc%s' % (tag, tag), state,
                                 '%smsg%s' % (tag, tag), '', t))
     return result
コード例 #17
0
ファイル: test_eventlog.py プロジェクト: tips-of-mine/ansible
 def test_syntax(self, filter, syntax, expected):
     result = TestResult('Validating syntax: %s' % syntax)
     (res, msg, perf) = self.core.simple_query('CheckEventLog', [
         'file=Application', 'warn=ne:1',
         'filter=%s' % filter,
         'syntax=%s' % syntax, 'descriptions', 'scan-range=-10m'
     ])
     result.assert_equals(msg, expected,
                          "Validate message rendering syntax: %s" % msg)
     return result
コード例 #18
0
	def submit_payload(self, alias, ssl, length, source, status, msg, perf, target):
		message = plugin_pb2.QueryRequestMessage()
		
		message.header.destination_id = target
		message.header.command = 'nrpe_forward'
		host = message.header.hosts.add()
		host.address = "127.0.0.1:15666"
		host.id = target
		if (target == 'valid'):
			pass
		else:
			enc = host.metadata.add()
			enc.key = "use ssl"
			enc.value = '%s'%ssl
			enc = host.metadata.add()
			enc.key = "payload length"
			enc.value = '%d'%length
		enc = host.metadata.add()
		enc.key = "timeout"
		enc.value = '5'

		uid = str(uuid.uuid4())
		payload = message.payload.add()
		payload.command = 'check_py_nrpe_test_s'
		payload.arguments.append(uid)
		rmsg = self.get_request(uid)
		rmsg.status = status
		rmsg.message = msg
		rmsg.perfdata = perf
		self.set_request(rmsg)
		(result_code, response) = self.core.query('ignored', message.SerializeToString())
		response_message = plugin_pb2.QueryResponseMessage()
		response_message.ParseFromString(response)
		result = TestResult('Testing NRPE: %s for %s'%(alias, target))
		
		found = False
		for i in range(0,10):
			if self.has_response(uid):
				rmsg = self.get_response(uid)
				#result.add_message(rmsg.got_response, 'Testing to recieve message using %s'%alias)
				result.add_message(rmsg.got_simple_response, 'Testing to recieve simple message using %s'%alias)
				result.add_message(len(response_message.payload) == 1, 'Verify that we only get one payload response for %s'%alias, '%s != 1'%len(response_message.payload))
				if len(response_message.payload) == 1 and len(response_message.payload[0].lines) == 1:
					result.assert_equals(response_message.payload[0].result, status, 'Verify that status is sent through %s'%alias)
					result.assert_equals(response_message.payload[0].lines[0].message, msg, 'Verify that message is sent through %s'%alias)
					#result.assert_equals(rmsg.perfdata, perf, 'Verify that performance data is sent through')
				self.del_response(uid)
				found = True
				break
			else:
				log('Waiting for %s (%s/%s)'%(uid,alias,target))
				sleep(500)
		if not found:
			result.add_message(False, 'Testing to recieve message using %s'%alias)
		return result
コード例 #19
0
    def run_test_counters(self):
        result = TestResult('Checking CheckCounter')
        (result_code,
         result_message) = core.simple_exec('any', 'pdh',
                                            ['--list', '--porcelain'])
        count = 0
        data = []
        for m in result_message:
            data = m.splitlines()
            count = len(data)
        result.add_message(count > 0,
                           'Managed to retrieve counters: %d' % count)
        if len(data) == 0:
            result.add_message(False,
                               'Failed to find counters: %s' % result_message)
        counters = []
        for x in range(1, 10):
            try:
                str = random.choice(data)
                (alias, counter, message) = str.split(',', 2)
                (retcode, retmessage,
                 retperf) = core.simple_query('CheckCounter', [
                     'index', 'ShowAll', 'MaxWarn=10',
                     'Counter:001=%s' % counter
                 ])
                result.add_message(retcode != status.UNKNOWN,
                                   'Queried normal: %s' % counter)
                result.add_message(
                    len(retmessage) > 0,
                    'Queried normal (got message): %s' % retmessage)
                result.add_message(
                    len(retperf) > 0,
                    'Queried normal (got perf): %s' % retperf)
                if retcode != status.UNKNOWN:
                    counters.append('Counter:%d=%s' % (x, counter))
            except Exception as e:
                result.add_message(False,
                                   'Invalid counter found "%s": %s' % (str, e))

        args = ['index', 'ShowAll', 'MaxWarn=10']
        args.extend(counters)
        (retcode, retmessage,
         retperf) = core.simple_query('CheckCounter', args)
        result.add_message(
            retcode != status.UNKNOWN,
            'Queried normal list of %d counters' % len(counters))
        result.add_message(
            len(retmessage) > 0,
            'Queried normal (got message): %s' % retmessage)
        result.add_message(
            len(retperf) > 0, 'Queried normal (got perf): %s' % retperf)
        result.add_message(
            len(counters) == len(retperf.split(' ')),
            'Got all responses: %d' % len(counters))
        return result
コード例 #20
0
 def check_counter(self, counter, args):
     result = TestResult('Checking counter: %s' % counter)
     args.append('Counter=%s' % counter)
     (retcode, retmessage,
      retperf) = self.core.simple_query('CheckCounter', args)
     result.add_message(retcode != status.UNKNOWN,
                        'Return code: %s' % retcode)
     result.add_message(
         len(retmessage) > 0, 'Returned message: %s' % retmessage)
     result.add_message(len(retperf) > 0, 'Performance data: %s' % retperf)
     return result
コード例 #21
0
    def run_test(self):
        result = TestResult('Testing W32 file systems')

        # Check size
        result.add(self.check_files('size gt 0b', 'Count all files', 10, []))
        result.add(self.check_files('size gt 4b', 'Count all files', 2, []))
        result.add(self.check_files('size lt 4b', 'Count all files', 11, []))
        result.add(self.check_files('size eq 4b', 'Count all files', 8, []))
        result.add(self.check_files('size ne 4b', 'Count all files', 13, []))
        result.add(self.check_files('size eq 0b', 'Count all folders', 11, []))

        # Check flags (recursive, pattern)
        result.add(
            self.check_files('size eq 0b',
                             'Count all folders (non recursivly)', 3,
                             ['max-dir-depth=0']))
        result.add(
            self.check_files('size eq 0b', 'Count all folders (recurse 1)', 6,
                             ['max-dir-depth=1']))
        result.add(
            self.check_files('size gt 0b', 'Count all files (*.txt)', 9,
                             ['pattern=*.txt']))
        result.add(
            self.check_files('size gt 0b', 'Count all files (*.txt)', 0,
                             ['pattern=*.foo']))

        # Check dates
        result.add(
            self.check_files('written ge -5m', 'Count all files (*.txt, >-5m)',
                             7, ['pattern=*.txt']))
        result.add(
            self.check_files('written le -5m', 'Count all files (*.txt, <-5m)',
                             4, ['pattern=*.txt']))
        result.add(
            self.check_files('written lt -9m', 'Count all files (*.txt, <-9m)',
                             2, ['pattern=*.txt']))
        result.add(
            self.check_files('written gt -9m', 'Count all files (*.txt, >-9m)',
                             7, ['pattern=*.txt']))
        result.add(
            self.check_files('written lt -1m', 'Count all files (*.txt, <-1m)',
                             4, ['pattern=*.txt']))
        result.add(
            self.check_files('written gt -9m and written lt -1m',
                             'Count all files (*.txt, >-10m<-5m)', 2,
                             ['pattern=*.txt']))
        result.add(
            self.check_files('written gt 0m', 'Count all files (*.txt, >0m)',
                             4, ['pattern=*.txt']))

        self.cleanup_files()

        return result
コード例 #22
0
ファイル: test_pb.py プロジェクト: tips-of-mine/ansible
	def test_simple(self, command, code, message, perf, tag):
		result = TestResult()
		core = Core.get()
		self.reset_last()
		(ret, msg) = core.simple_submit(self.channel, '%s'%command, code, '%s'%message, '%s'%perf)
		result.add_message(ret, 'Testing channels: %s'%tag, msg)
		r1 = TestResult()
		r1.assert_equals(self.last_status, code, 'Return code')
		r1.assert_equals(self.last_message, message, 'Message')
		r1.assert_equals(self.last_perf, perf, 'Performance data')
		result.add(r1)
		
		self.set_last('', '', code, message, perf)
		(retcode, retmessage, retperf) = core.simple_query(self.channel, [])
		result.add_message(True, 'Testing queries: %s'%tag)
		r2 = TestResult()
		r2.assert_equals(self.last_status, code, 'Return code')
		r2.assert_equals(self.last_message, message, 'Message')
		r2.assert_equals(self.last_perf, perf, 'Performance data')
		result.add(r2)
		return result
コード例 #23
0
	def check_cli_ls(self, ns, expected, missing):
		result = TestResult('Checking CLI list-classes %s'%ns)
		args = ['--list-classes', '--simple']
		if ns != None:
			args.extend(['--namespace', ns])
		(ret, ns_msgs) = self.core.simple_exec('any', 'wmi', args)
		result.assert_equals(ret, 1, 'Check that --list-classes returns ok')
		result.assert_equals(len(ns_msgs), 1, 'Check that --list-classes returns one entry')
		if len(ns_msgs) > 0:
			result.assert_contains(ns_msgs[0], expected, 'Check that --list-classes contains %s'%expected)
			result.assert_not_contains(ns_msgs[0], missing, 'Check that --list-classes does not contains %s'%missing)
		return result
コード例 #24
0
	def check_cli_query(self, query, count, check, ns = None):
		result = TestResult('Checking CLI query %s'%query)
		args = ['--select', query, '--simple']
		if ns != None:
			args.extend(['--namespace', ns])
		(ret, ns_msgs) = self.core.simple_exec('any', 'wmi', args)
		result.assert_equals(ret, 1, 'Check that --select returns ok')
		result.assert_equals(len(ns_msgs), 1, 'Check that --select returns one entry')
		if len(ns_msgs) > 0:
			result.add_message(count(ns_msgs[0].splitlines()), 'Check that it contains the right number of rows')
			result.add_message(check(ns_msgs[0]), 'Check that it contains the right data')
		return result
コード例 #25
0
    def run_test(self):
        result = TestResult()
        cryptos = [
            "none", "xor", "des", "3des", "cast128", "xtea", "blowfish",
            "twofish", "rc2", "aes", "aes256", "aes192", "aes128", "serpent",
            "gost", "3way"
        ]
        for c in cryptos:
            for l in [128, 512, 1024, 4096]:
                result.add(self.test_one_crypto(c, l))
            #result.add(self.test_one_crypto(c))

        return result
コード例 #26
0
 def test_one_crypto_full(self, encryption, state, key, target, length):
     result = TestResult('Testing %s/%s' % (encryption, key))
     result.add(
         self.submit_payload(
             encryption, target, length, '%ssrc%s' % (key, key), state,
             '%smsg%s' % (key, key), '',
             '%s/%s/%d/%s' % (state, encryption, length, target)))
     result.add(
         self.submit_via_exec(
             encryption, target, length, '%ssrc%s' % (key, key), state,
             '%smsg%s' % (key, key), '',
             '%s/%s/%d/%s' % (state, encryption, length, target)))
     return result
コード例 #27
0
    def run_test_proc(self):
        master = TestResult('Checking check_process')

        result = TestResult('0 notepads running')
        for j in range(0, 3):
            result.append(self.test_one_proc_int('notepad.exe', 0, j))
        master.add(result)

        pids = []
        for i in range(1, 4):
            result = TestResult('%d notepads running' % i)
            log('Starting notepad...')
            handle = subprocess.Popen('notepad.exe', shell=False)
            sleep(500)
            pids.append(handle.pid)
            for j in range(0, 3):
                result.append(self.test_one_proc_int('notepad.exe', i, j))
            master.add(result)

        for p in pids:
            subprocess.Popen("taskkill /F /T /PID %i" % p, shell=True)

        return master
コード例 #28
0
    def check_no_files(self):
        self.setup_files()
        result = TestResult('Checking no files')
        args = ['path=%s\\aaa.txt' % self.work_path]
        (ret, msg, perf) = self.core.simple_query('check_files', args)
        #log("Messge: %s"%msg)
        #log("Perf: %s"%perf)
        result.add_message(ret == status.UNKNOWN,
                           'Check that we get correct status back',
                           'Return status was wrong: %s' % ret)
        #count = self.get_count(perf)
        result.assert_equals(msg, 'No files found', 'Validate return message')

        return result
コード例 #29
0
 def test_one_proc_int(self, proc, actual, asked):
     result = TestResult('Checking one state %d/%d' % (actual, asked))
     for s in ['eq', 'gt', 'lt', 'ne']:
         (retcode, retmessage,
          retperf) = self.core.simple_query('check_process', [
              'empty-state=OK', 'show-all',
              'crit=count %s %d' % (s, asked),
              "filter=exe='%s'" % proc
          ])
         expected = self.get_expected_state(actual, s, asked)
         result.add_message(
             retcode == expected, 'Process: %s (%d %s %d): %s' %
             (proc, actual, s, asked, retmessage),
             '%s != %s' % (retcode, expected))
     return result
コード例 #30
0
 def check_ts_query(self, task, code):
     result = TestResult('Checking task %s'%task)
     for i in [0, 1, 2, 3, 4]:
         # check_tasksched "filter=title = 'NSCPSample_CRIT'" "warn=exit_code != 3"
         args = ["filter=title = 'NSCPSample_%s'"%task, 
             "warn=exit_code = %d"%i]
         log_debug(', '.join(args))
         (ret, msg, perf) = self.core.simple_query('check_tasksched', args)
         
         if i == code:
             result.assert_equals(ret, status.WARNING, 'Verify WARN result: %s'%msg)
         else:
             result.assert_equals(ret, status.OK, 'Verify OK result: %s'%msg)
         
     return result