def test_config_check_failure(self): '''Test that a missing config fails''' proc = test_base.TimeoutRunner([ self.binary, "--config_check", "--database_path=%s" % (self.dbpath), "--config_path=/this/path/does/not/exist" ], SHELL_TIMEOUT) self.assertNotEqual(proc.stderr, "") print(proc.stdout) print(proc.stderr) self.assertEqual(proc.proc.poll(), 1) # Now with a valid path, but invalid content. proc = test_base.TimeoutRunner([ self.binary, "--config_check", "--database_path=%s" % (self.dbpath), "--config_path=%s/test.badconfig" % test_base.SCRIPT_DIR ], SHELL_TIMEOUT) self.assertEqual(proc.proc.poll(), 1) self.assertNotEqual(proc.stderr, "") # Finally with a missing config plugin proc = test_base.TimeoutRunner([ self.binary, "--config_check", "--database_path=%s" % (self.dbpath), "--config_plugin=does_not_exist" ], SHELL_TIMEOUT) self.assertNotEqual(proc.stderr, "") self.assertNotEqual(proc.proc.poll(), 0)
def test_config_check_failure_valid_path(self): # Now with a valid path, but invalid content. proc = test_base.TimeoutRunner([ self.binary, "--config_check", "--database_path=%s" % (self.dbpath), "--config_path=%s/test.badconfig" % test_base.SCRIPT_DIR ], SHELL_TIMEOUT) self.assertEqual(proc.proc.poll(), 1) self.assertNotEqual(proc.stderr, "")
def test_config_check_failure_missing_plugin(self): # Finally with a missing config plugin proc = test_base.TimeoutRunner([ self.binary, "--config_check", "--verbose", "--config_plugin=does_not_exist" ], SHELL_TIMEOUT) self.assertNotEqual(proc.stderr, "") self.assertNotEqual(proc.proc.poll(), 0) # Also do not accept a SIGSEG self.assertEqual(proc.proc.poll(), EXIT_CATASTROPHIC)
def test_config_check_success(self): '''Test that a 0-config passes''' proc = test_base.TimeoutRunner([ self.binary, "--config_check", "--database_path=%s" % (self.dbpath), "--config_path=test.config" ], 2) self.assertEqual(proc.stdout, "") print(proc.stdout) print(proc.stderr) self.assertEqual(proc.proc.poll(), 0)
def test_config_check_failure_valid_path(self): # Now with a valid path, but invalid content. proc = test_base.TimeoutRunner([ self.binary, "--config_check", "--verbose", "--config_path=%s" % configFile("test.badconfig"), ], SHELL_TIMEOUT) self.assertEqual(proc.proc.poll(), 1) self.assertNotEqual(proc.stderr, "")
def test_config_check_failure_invalid_path(self): '''Test that a missing config fails''' proc = test_base.TimeoutRunner([ self.binary, "--config_check", "--verbose", "--config_path=/this/path/does/not/exist" ], SHELL_TIMEOUT) self.assertNotEqual(proc.stderr, "") print(proc.stdout) print(proc.stderr) self.assertEqual(proc.proc.poll(), 1)
def test_config_check_failure_valid_path(self): # Now with a valid path, but invalid content. proc = test_base.TimeoutRunner([ self.binary, "--config_check", "--extensions_autoload=", "--verbose", "--database_path=%s" % (self.dbpath), "--config_path=%s" % os.path.join(test_base.SCRIPT_DIR, "test.badconfig") ], SHELL_TIMEOUT) self.assertEqual(proc.proc.poll(), 1) self.assertNotEqual(proc.stderr, "")
def test_config_check_example(self): '''Test that the example config passes''' example_path = "deployment/osquery.example.conf" proc = test_base.TimeoutRunner([ self.binary, "--config_check", "--config_path=%s/../%s" % (test_base.SCRIPT_DIR, example_path) ], SHELL_TIMEOUT) self.assertEqual(proc.stdout, "") print(proc.stdout) print(proc.stderr) self.assertEqual(proc.proc.poll(), 0)
def test_config_dump(self): '''Test that config raw output is dumped when requested''' config = "%s/test_noninline_packs.conf" % test_base.SCRIPT_DIR proc = test_base.TimeoutRunner( [self.binary, "--config_dump", "--config_path=%s" % config], SHELL_TIMEOUT) content = "" with open(config, 'r') as fh: content = fh.read() self.assertEqual(proc.stdout, "{\"%s\": %s}\n" % (config, content)) print(proc.stderr) self.assertEqual(proc.proc.poll(), 0)
def test_config_check_success(self): '''Test that a 0-config passes''' proc = test_base.TimeoutRunner([ self.binary, "--config_check", "--config_path=%s" % configFile("test.config"), "--verbose", ], SHELL_TIMEOUT) self.assertEqual(proc.stdout, b"") print(proc.stdout) print(proc.stderr) self.assertEqual(proc.proc.poll(), 0)
def test_config_check_example(self): '''Test that the example config passes''' proc = test_base.TimeoutRunner([ self.binary, "--config_check", "--config_path=%s" % configFile("osquery.example.conf"), "--verbose", ], SHELL_TIMEOUT) self.assertEqual(proc.stdout, b"") print(proc.stdout) print(proc.stderr) self.assertEqual(proc.proc.poll(), 0)
def test_config_check_success(self): '''Test that a 0-config passes''' proc = test_base.TimeoutRunner([ self.binary, "--config_check", "--database_path=%s" % (self.dbpath), "--config_path=%s/test.config" % test_base.SCRIPT_DIR, "--extensions_autoload=", "--verbose", ], SHELL_TIMEOUT) self.assertEqual(proc.stdout, "") print(proc.stdout) print(proc.stderr) self.assertEqual(proc.proc.poll(), 0)
def test_json_output(self): '''Test that the output of --json is valid json''' proc = test_base.TimeoutRunner([ self.binary, "select 0", "--json", ], SHELL_TIMEOUT) if os.name == "nt": self.assertEqual(proc.stdout, b"[\r\n {\"0\":\"0\"}\r\n]\r\n") else: self.assertEqual(proc.stdout, b"[\n {\"0\":\"0\"}\n]\n") print(proc.stdout) print(proc.stderr) self.assertEqual(proc.proc.poll(), 0)
def test_config_check_example(self): '''Test that the example config passes''' example_path = os.path.join("deployment", "osquery.example.conf") proc = test_base.TimeoutRunner([ self.binary, "--config_check", "--config_path=%s" % os.path.join(test_base.SCRIPT_DIR, "..", example_path), "--extensions_autoload=", "--verbose", ], SHELL_TIMEOUT) self.assertEqual(proc.stdout, "") print(proc.stdout) print(proc.stderr) self.assertEqual(proc.proc.poll(), 0)
def test_config_dump(self): '''Test that config raw output is dumped when requested''' config = os.path.join(test_base.SCRIPT_DIR, "test_noninline_packs.conf") proc = test_base.TimeoutRunner( [self.binary, "--config_dump", "--config_path=%s" % config], SHELL_TIMEOUT) content = "" with open(config, 'r') as fh: content = fh.read() actual = proc.stdout if os.name == "nt": actual = actual.replace('\r', '') self.assertEqual(actual, '{"%s": %s}\n' % (config, content)) print(proc.stderr) self.assertEqual(proc.proc.poll(), 0)
def test_config_dump(self): '''Test that config raw output is dumped when requested''' config = configFile("test_noninline_packs.conf") proc = test_base.TimeoutRunner([ self.binary, "--config_dump", "--config_path=%s" % config, "--extensions_autoload=", "--verbose", ], SHELL_TIMEOUT) content = "" with open(config, 'r') as fh: content = fh.read() actual = proc.stdout.decode('utf-8') if os.name == "nt": actual = actual.replace('\r', '') self.assertEqual(actual, '{"%s": %s}\n' % (config, content)) print(proc.stderr) self.assertEqual(proc.proc.poll(), 0)